/* Hidrovex Bombas — folha única.
   Tema principal azul-marinho em :root; claro só com data-theme="light". Componentes usam sempre os tokens. */
:root{
  /* Azul-marinho é o tema principal (escolha do Cesar). Claro só com data-theme="light". */
  --ground:#0B1424; --ground-2:#0F1B30; --surface:#152341; --surface-2:#1A2A4B; --surface-3:#22345A;
  --line:#2B3D63; --line-soft:#223354;
  --ink:#E8EEF9; --ink-2:#BCC8E0; --muted:#8B9BBC; --faint:#6E7F9F;
  --pri:#4C86E0; --pri-ink:#8FB6F5; --pri-soft:#1B2E55; --pri-line:#2F4C80;
  --aqua:#2BC3D0; --aqua-soft:#0F3540;
  --amber:#E8A23A; --amber-soft:#3A2A10; --amber-line:#5C4420;
  --red:#EB6B6B; --red-soft:#3D1B1E; --red-line:#6A2E32;
  --green:#4BC27E; --green-soft:#123222; --green-line:#245A3C;
  --rail:#070E1C; --rail-ink:#AEBBD6; --rail-on:#2E6DD1;
  --sh-1:0 1px 2px rgba(0,0,0,.35),0 2px 6px rgba(0,0,0,.3);
  --sh-2:0 2px 4px rgba(0,0,0,.35),0 10px 24px rgba(0,0,0,.4);
  --sh-3:0 12px 32px rgba(0,0,0,.5),0 32px 64px rgba(0,0,0,.45);
  --sheen:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,0) 45%);
  --fundo-op:.14;

  --disp:'Sora','Segoe UI',system-ui,sans-serif;
  --body:'Nunito Sans','Segoe UI',system-ui,sans-serif;
  --mono:'JetBrains Mono',Consolas,ui-monospace,monospace;
  --r:14px; --r-sm:9px;
}
:root[data-theme="light"]{
  --ground:#EDF1F7; --ground-2:#E3E9F2; --surface:#FFFFFF; --surface-2:#F5F8FC; --surface-3:#E9EEF6;
  --line:#D5DDE9; --line-soft:#E6EBF3;
  --ink:#14213D; --ink-2:#3A4A6B; --muted:#6B7A99; --faint:#94A0B8;
  --pri:#1F5FBF; --pri-ink:#174A96; --pri-soft:#E4EDFB; --pri-line:#B9CDF0;
  --aqua:#0FA3B1; --aqua-soft:#E0F5F7;
  --amber:#C97B0C; --amber-soft:#FCF0DA; --amber-line:#F0D39A;
  --red:#C93A3A; --red-soft:#FBE5E5; --red-line:#F0B4B4;
  --green:#22884F; --green-soft:#E1F4E8; --green-line:#A9DEBC;
  --rail:#0F1E3D; --rail-ink:#C9D4EA; --rail-on:#1F5FBF;
  --sh-1:0 1px 2px rgba(20,33,61,.06),0 2px 6px rgba(20,33,61,.06);
  --sh-2:0 2px 4px rgba(20,33,61,.06),0 10px 24px rgba(20,33,61,.10);
  --sh-3:0 12px 32px rgba(20,33,61,.16),0 32px 64px rgba(20,33,61,.12);
  --sheen:linear-gradient(135deg,rgba(255,255,255,.75),rgba(255,255,255,0) 45%);
  --disp:'Sora','Segoe UI',system-ui,sans-serif;
  --body:'Nunito Sans','Segoe UI',system-ui,sans-serif;
  --mono:'JetBrains Mono',Consolas,ui-monospace,monospace;
  --r:14px; --r-sm:9px;

}

*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.45;
  -webkit-font-smoothing:antialiased}
/* fundo: casa de bombas em traço (reservatório, barrilete, bombas em alternância, quadro) — bem suave, atrás de tudo */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:var(--fundo-op,.09);
  background:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%201600%20700%22%20fill=%22none%22%20stroke=%22%231F5FBF%22%20stroke-width=%223%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%20%3Cpath%20d=%22M40%20620%20H1560%22%20stroke-width=%224%22/%3E%20%3Cpath%20d=%22M120%20620%20v18%20M1480%20620%20v18%22%20stroke-width=%222%22%20opacity=%22.6%22/%3E%20%3Crect%20x=%2280%22%20y=%22230%22%20width=%22300%22%20height=%22360%22%20rx=%2214%22/%3E%20%3Cpath%20d=%22M80%20330%20H380%22%20stroke-dasharray=%2210%2012%22%20opacity=%22.7%22/%3E%20%3Cpath%20d=%22M110%20365%20q35%20-18%2070%200%20t70%200%20t70%200%20t50%200%22%20opacity=%22.8%22/%3E%20%3Cpath%20d=%22M110%20405%20q35%20-18%2070%200%20t70%200%20t70%200%20t50%200%22%20opacity=%22.55%22/%3E%20%3Cpath%20d=%22M110%20445%20q35%20-18%2070%200%20t70%200%20t70%200%20t50%200%22%20opacity=%22.35%22/%3E%20%3Cpath%20d=%22M60%20230%20H400%22%20stroke-width=%225%22/%3E%20%3Ccircle%20cx=%22330%22%20cy=%22300%22%20r=%2214%22/%3E%3Cpath%20d=%22M330%20286%20V250%20H360%22/%3E%20%3Cpath%20d=%22M380%20520%20H470%20V560%20H560%22%20stroke-width=%228%22/%3E%20%3Cpath%20d=%22M445%20520%20V495%20M455%20520%20V495%22%20stroke-width=%223%22/%3E%20%3Cpath%20d=%22M470%20560%20l-12%20-12%2024%200%20z%22%20fill=%22%231F5FBF%22%20opacity=%22.5%22/%3E%20%3Cg%20transform=%22translate(560%20420)%22%3E%20%3Crect%20x=%220%22%20y=%22120%22%20width=%22260%22%20height=%2230%22%20rx=%226%22/%3E%20%3Crect%20x=%2220%22%20y=%22100%22%20width=%22220%22%20height=%2222%22%20rx=%224%22%20opacity=%22.6%22/%3E%20%3Crect%20x=%2260%22%20y=%2220%22%20width=%22140%22%20height=%2280%22%20rx=%2216%22/%3E%20%3Cpath%20d=%22M78%2020%20v80%20M96%2020%20v80%20M114%2020%20v80%20M132%2020%20v80%20M150%2020%20v80%20M168%2020%20v80%20M186%2020%20v80%22%20opacity=%22.45%22/%3E%20%3Crect%20x=%22200%22%20y=%2246%22%20width=%2214%22%20height=%2228%22/%3E%20%3Ccircle%20cx=%22256%22%20cy=%2260%22%20r=%2240%22/%3E%3Ccircle%20cx=%22256%22%20cy=%2260%22%20r=%2216%22/%3E%20%3Cpath%20d=%22M256%2020%20V-70%22%20stroke-width=%228%22/%3E%20%3Crect%20x=%2230%22%20y=%220%22%20width=%2230%22%20height=%22100%22%20rx=%226%22/%3E%20%3Cpath%20d=%22M45%200%20V-40%22%20stroke-width=%223%22/%3E%3Ccircle%20cx=%2245%22%20cy=%22-56%22%20r=%2214%22/%3E%3Cpath%20d=%22M45%20-56%20l8%20-8%22%20stroke-width=%222%22/%3E%20%3C/g%3E%20%3Cg%20transform=%22translate(900%20420)%22%3E%20%3Crect%20x=%220%22%20y=%22120%22%20width=%22260%22%20height=%2230%22%20rx=%226%22/%3E%20%3Crect%20x=%2220%22%20y=%22100%22%20width=%22220%22%20height=%2222%22%20rx=%224%22%20opacity=%22.6%22/%3E%20%3Crect%20x=%2260%22%20y=%2220%22%20width=%22140%22%20height=%2280%22%20rx=%2216%22/%3E%20%3Cpath%20d=%22M78%2020%20v80%20M96%2020%20v80%20M114%2020%20v80%20M132%2020%20v80%20M150%2020%20v80%20M168%2020%20v80%20M186%2020%20v80%22%20opacity=%22.45%22/%3E%20%3Crect%20x=%22200%22%20y=%2246%22%20width=%2214%22%20height=%2228%22/%3E%20%3Ccircle%20cx=%22256%22%20cy=%2260%22%20r=%2240%22/%3E%3Ccircle%20cx=%22256%22%20cy=%2260%22%20r=%2216%22/%3E%20%3Cpath%20d=%22M256%2020%20V-70%22%20stroke-width=%228%22/%3E%20%3Crect%20x=%2230%22%20y=%220%22%20width=%2230%22%20height=%22100%22%20rx=%226%22/%3E%20%3Cpath%20d=%22M45%200%20V-40%22%20stroke-width=%223%22/%3E%3Ccircle%20cx=%2245%22%20cy=%22-56%22%20r=%2214%22/%3E%3Cpath%20d=%22M45%20-56%20l8%20-8%22%20stroke-width=%222%22/%3E%20%3C/g%3E%20%3Cpath%20d=%22M560%20560%20H900%20V520%22%20stroke-width=%228%22/%3E%20%3Cpath%20d=%22M816%20350%20V300%20H1156%20V350%22%20stroke-width=%228%22/%3E%20%3Cpath%20d=%22M986%20300%20V200%20H1420%20V120%22%20stroke-width=%228%22/%3E%20%3Cg%20stroke-width=%223%22%3E%20%3Crect%20x=%22800%22%20y=%22322%22%20width=%2232%22%20height=%2220%22%20rx=%223%22/%3E%3Cpath%20d=%22M816%20322%20V300%22/%3E%3Cpath%20d=%22M804%20296%20H828%22/%3E%20%3Crect%20x=%221140%22%20y=%22322%22%20width=%2232%22%20height=%2220%22%20rx=%223%22/%3E%3Cpath%20d=%22M1156%20322%20V300%22/%3E%3Cpath%20d=%22M1144%20296%20H1168%22/%3E%20%3Cpath%20d=%22M880%20300%20l14%20-14%20v28%20z%20M894%20300%20l14%20-14%20v28%20z%22%20opacity=%22.6%22/%3E%20%3Cpath%20d=%22M1060%20300%20l14%20-14%20v28%20z%20M1074%20300%20l14%20-14%20v28%20z%22%20opacity=%22.6%22/%3E%20%3C/g%3E%20%3Cpath%20d=%22M1250%20200%20V160%22/%3E%3Ccircle%20cx=%221250%22%20cy=%22140%22%20r=%2222%22/%3E%3Cpath%20d=%22M1250%20140%20l10%20-12%22%20stroke-width=%222%22/%3E%3Cpath%20d=%22M1236%20150%20a20%2020%200%200%201%2028%200%22%20stroke-width=%222%22%20opacity=%22.6%22/%3E%20%3Crect%20x=%221440%22%20y=%22300%22%20width=%22110%22%20height=%22160%22%20rx=%228%22/%3E%20%3Cpath%20d=%22M1460%20330%20H1530%20M1460%20355%20H1530%20M1460%20380%20H1510%22%20opacity=%22.6%22/%3E%20%3Ccircle%20cx=%221470%22%20cy=%22425%22%20r=%227%22%20fill=%22%231F5FBF%22%20opacity=%22.5%22/%3E%3Ccircle%20cx=%221495%22%20cy=%22425%22%20r=%227%22/%3E%3Ccircle%20cx=%221520%22%20cy=%22425%22%20r=%227%22/%3E%20%3Cpath%20d=%22M1495%20460%20V620%22%20stroke-dasharray=%226%208%22%20opacity=%22.5%22/%3E%20%3Cpath%20d=%22M1420%20120%20H1520%22%20stroke-width=%228%22/%3E%3Cpath%20d=%22M1520%20100%20v40%20M1535%2092%20v56%22%20opacity=%22.7%22/%3E%20%3C/svg%3E") no-repeat right bottom / min(1100px,100vw) auto}
.login::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.08;
  background:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%201600%20700%22%20fill=%22none%22%20stroke=%22%231F5FBF%22%20stroke-width=%223%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%20%3Cpath%20d=%22M40%20620%20H1560%22%20stroke-width=%224%22/%3E%20%3Cpath%20d=%22M120%20620%20v18%20M1480%20620%20v18%22%20stroke-width=%222%22%20opacity=%22.6%22/%3E%20%3Crect%20x=%2280%22%20y=%22230%22%20width=%22300%22%20height=%22360%22%20rx=%2214%22/%3E%20%3Cpath%20d=%22M80%20330%20H380%22%20stroke-dasharray=%2210%2012%22%20opacity=%22.7%22/%3E%20%3Cpath%20d=%22M110%20365%20q35%20-18%2070%200%20t70%200%20t70%200%20t50%200%22%20opacity=%22.8%22/%3E%20%3Cpath%20d=%22M110%20405%20q35%20-18%2070%200%20t70%200%20t70%200%20t50%200%22%20opacity=%22.55%22/%3E%20%3Cpath%20d=%22M110%20445%20q35%20-18%2070%200%20t70%200%20t70%200%20t50%200%22%20opacity=%22.35%22/%3E%20%3Cpath%20d=%22M60%20230%20H400%22%20stroke-width=%225%22/%3E%20%3Ccircle%20cx=%22330%22%20cy=%22300%22%20r=%2214%22/%3E%3Cpath%20d=%22M330%20286%20V250%20H360%22/%3E%20%3Cpath%20d=%22M380%20520%20H470%20V560%20H560%22%20stroke-width=%228%22/%3E%20%3Cpath%20d=%22M445%20520%20V495%20M455%20520%20V495%22%20stroke-width=%223%22/%3E%20%3Cpath%20d=%22M470%20560%20l-12%20-12%2024%200%20z%22%20fill=%22%231F5FBF%22%20opacity=%22.5%22/%3E%20%3Cg%20transform=%22translate(560%20420)%22%3E%20%3Crect%20x=%220%22%20y=%22120%22%20width=%22260%22%20height=%2230%22%20rx=%226%22/%3E%20%3Crect%20x=%2220%22%20y=%22100%22%20width=%22220%22%20height=%2222%22%20rx=%224%22%20opacity=%22.6%22/%3E%20%3Crect%20x=%2260%22%20y=%2220%22%20width=%22140%22%20height=%2280%22%20rx=%2216%22/%3E%20%3Cpath%20d=%22M78%2020%20v80%20M96%2020%20v80%20M114%2020%20v80%20M132%2020%20v80%20M150%2020%20v80%20M168%2020%20v80%20M186%2020%20v80%22%20opacity=%22.45%22/%3E%20%3Crect%20x=%22200%22%20y=%2246%22%20width=%2214%22%20height=%2228%22/%3E%20%3Ccircle%20cx=%22256%22%20cy=%2260%22%20r=%2240%22/%3E%3Ccircle%20cx=%22256%22%20cy=%2260%22%20r=%2216%22/%3E%20%3Cpath%20d=%22M256%2020%20V-70%22%20stroke-width=%228%22/%3E%20%3Crect%20x=%2230%22%20y=%220%22%20width=%2230%22%20height=%22100%22%20rx=%226%22/%3E%20%3Cpath%20d=%22M45%200%20V-40%22%20stroke-width=%223%22/%3E%3Ccircle%20cx=%2245%22%20cy=%22-56%22%20r=%2214%22/%3E%3Cpath%20d=%22M45%20-56%20l8%20-8%22%20stroke-width=%222%22/%3E%20%3C/g%3E%20%3Cg%20transform=%22translate(900%20420)%22%3E%20%3Crect%20x=%220%22%20y=%22120%22%20width=%22260%22%20height=%2230%22%20rx=%226%22/%3E%20%3Crect%20x=%2220%22%20y=%22100%22%20width=%22220%22%20height=%2222%22%20rx=%224%22%20opacity=%22.6%22/%3E%20%3Crect%20x=%2260%22%20y=%2220%22%20width=%22140%22%20height=%2280%22%20rx=%2216%22/%3E%20%3Cpath%20d=%22M78%2020%20v80%20M96%2020%20v80%20M114%2020%20v80%20M132%2020%20v80%20M150%2020%20v80%20M168%2020%20v80%20M186%2020%20v80%22%20opacity=%22.45%22/%3E%20%3Crect%20x=%22200%22%20y=%2246%22%20width=%2214%22%20height=%2228%22/%3E%20%3Ccircle%20cx=%22256%22%20cy=%2260%22%20r=%2240%22/%3E%3Ccircle%20cx=%22256%22%20cy=%2260%22%20r=%2216%22/%3E%20%3Cpath%20d=%22M256%2020%20V-70%22%20stroke-width=%228%22/%3E%20%3Crect%20x=%2230%22%20y=%220%22%20width=%2230%22%20height=%22100%22%20rx=%226%22/%3E%20%3Cpath%20d=%22M45%200%20V-40%22%20stroke-width=%223%22/%3E%3Ccircle%20cx=%2245%22%20cy=%22-56%22%20r=%2214%22/%3E%3Cpath%20d=%22M45%20-56%20l8%20-8%22%20stroke-width=%222%22/%3E%20%3C/g%3E%20%3Cpath%20d=%22M560%20560%20H900%20V520%22%20stroke-width=%228%22/%3E%20%3Cpath%20d=%22M816%20350%20V300%20H1156%20V350%22%20stroke-width=%228%22/%3E%20%3Cpath%20d=%22M986%20300%20V200%20H1420%20V120%22%20stroke-width=%228%22/%3E%20%3Cg%20stroke-width=%223%22%3E%20%3Crect%20x=%22800%22%20y=%22322%22%20width=%2232%22%20height=%2220%22%20rx=%223%22/%3E%3Cpath%20d=%22M816%20322%20V300%22/%3E%3Cpath%20d=%22M804%20296%20H828%22/%3E%20%3Crect%20x=%221140%22%20y=%22322%22%20width=%2232%22%20height=%2220%22%20rx=%223%22/%3E%3Cpath%20d=%22M1156%20322%20V300%22/%3E%3Cpath%20d=%22M1144%20296%20H1168%22/%3E%20%3Cpath%20d=%22M880%20300%20l14%20-14%20v28%20z%20M894%20300%20l14%20-14%20v28%20z%22%20opacity=%22.6%22/%3E%20%3Cpath%20d=%22M1060%20300%20l14%20-14%20v28%20z%20M1074%20300%20l14%20-14%20v28%20z%22%20opacity=%22.6%22/%3E%20%3C/g%3E%20%3Cpath%20d=%22M1250%20200%20V160%22/%3E%3Ccircle%20cx=%221250%22%20cy=%22140%22%20r=%2222%22/%3E%3Cpath%20d=%22M1250%20140%20l10%20-12%22%20stroke-width=%222%22/%3E%3Cpath%20d=%22M1236%20150%20a20%2020%200%200%201%2028%200%22%20stroke-width=%222%22%20opacity=%22.6%22/%3E%20%3Crect%20x=%221440%22%20y=%22300%22%20width=%22110%22%20height=%22160%22%20rx=%228%22/%3E%20%3Cpath%20d=%22M1460%20330%20H1530%20M1460%20355%20H1530%20M1460%20380%20H1510%22%20opacity=%22.6%22/%3E%20%3Ccircle%20cx=%221470%22%20cy=%22425%22%20r=%227%22%20fill=%22%231F5FBF%22%20opacity=%22.5%22/%3E%3Ccircle%20cx=%221495%22%20cy=%22425%22%20r=%227%22/%3E%3Ccircle%20cx=%221520%22%20cy=%22425%22%20r=%227%22/%3E%20%3Cpath%20d=%22M1495%20460%20V620%22%20stroke-dasharray=%226%208%22%20opacity=%22.5%22/%3E%20%3Cpath%20d=%22M1420%20120%20H1520%22%20stroke-width=%228%22/%3E%3Cpath%20d=%22M1520%20100%20v40%20M1535%2092%20v56%22%20opacity=%22.7%22/%3E%20%3C/svg%3E") no-repeat center 55% / 1400px auto}
.login{position:relative}

button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:none;background:none;padding:0}
a{color:var(--pri-ink)}
:focus-visible{outline:2px solid var(--pri);outline-offset:2px;border-radius:6px}
h1,h2,h3{font-family:var(--disp);letter-spacing:-.01em;text-wrap:balance;margin:0}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.muted{color:var(--muted)} .faint{color:var(--faint)}
.hide{display:none!important}
.sp{flex:1}

/* ================= LOGIN ================= */
.login{min-height:100dvh;display:grid;place-items:center;padding:24px;
  background:radial-gradient(1200px 600px at 20% -10%,var(--pri-soft),transparent 60%),
             radial-gradient(900px 500px at 110% 110%,var(--aqua-soft),transparent 60%),var(--ground)}
.login .card3{background:var(--surface)}
.login .box{width:min(420px,100%);perspective:1200px}
.login .card3{padding:32px 30px}
.login .brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}
.login .brand b{font-family:var(--disp);font-size:22px;display:block;line-height:1.1}
.login .brand span{font-size:12.5px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.login .demo{margin-top:18px;padding-top:16px;border-top:1px dashed var(--line)}
.login .demo p{margin:0 0 8px;font-size:12.5px;color:var(--muted)}
.login .chips{display:flex;flex-wrap:wrap;gap:6px}

/* ================= SHELL ================= */
.shell{display:grid;grid-template-columns:96px 1fr;min-height:100dvh}
.rail{background:var(--rail);color:var(--rail-ink);display:flex;flex-direction:column;align-items:center;padding:14px 8px;gap:4px;
  position:sticky;top:0;height:100dvh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.2) transparent}
.rail::-webkit-scrollbar{width:6px}
.rail::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:3px}
/* Notebook com tela baixa não cabe 10 itens + logo + Sair: aperta antes de precisar rolar. */
@media (max-height:900px){
  .rail{padding:10px 6px;gap:2px}
  .rail .logo{width:38px;height:38px;margin-bottom:6px}
  .rail button{width:74px;padding:7px 4px 6px;font-size:10.5px;gap:3px}
  .rail button svg{width:20px;height:20px}
}
@media (max-height:780px){
  .rail button{padding:5px 4px;font-size:10px;line-height:1.05}
  .rail button svg{width:18px;height:18px}
  .rail .logo{width:32px;height:32px;margin-bottom:4px}
}
.rail .logo{width:46px;height:46px;margin-bottom:10px}
.rail button{width:80px;padding:10px 4px 8px;border-radius:12px;display:flex;flex-direction:column;align-items:center;gap:5px;
  font-family:var(--disp);font-size:11px;font-weight:600;color:var(--rail-ink);transition:.15s;position:relative;line-height:1.1;text-align:center}
.rail button svg{width:24px;height:24px;fill:currentColor;opacity:.9}
.rail button:hover{background:rgba(255,255,255,.07);color:#fff}
.rail button.on{background:var(--rail-on);color:#fff;box-shadow:0 6px 16px rgba(31,95,191,.35)}
.rail .badge{position:absolute;top:6px;right:10px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--amber);
  color:#1E1305;font-family:var(--mono);font-size:10.5px;font-weight:700;display:grid;place-items:center}
.rail .sair{margin-top:auto;font-size:10.5px;opacity:.75}
.main{min-width:0;display:flex;flex-direction:column}
.top{display:flex;align-items:center;gap:14px;padding:16px 28px 0}
.top h1{font-size:24px;font-weight:700}
.top .sub{font-size:13px;color:var(--muted);margin-top:2px}
.who{display:flex;align-items:center;gap:10px;font-size:13px;text-align:right}
.who b{display:block;font-family:var(--disp);font-size:13.5px}
.who span{color:var(--muted);font-size:12px}
.av{width:38px;height:38px;border-radius:50%;background:var(--pri);color:#fff;display:grid;place-items:center;font-family:var(--disp);font-weight:700;font-size:14px;flex:none}
.demo-tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:var(--amber);background:var(--amber-soft);border:1px solid var(--amber-line);
  padding:4px 9px;border-radius:20px;white-space:nowrap}
.page{padding:20px 28px 60px;position:relative;display:flex;flex-direction:column;gap:22px}
.page>section{display:flex;flex-direction:column;gap:12px}
.sec-h{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.sec-h h2{font-size:15px;font-weight:700;color:var(--ink-2)}
.sec-h .n{font-family:var(--mono);font-size:12px;color:var(--faint)}

/* ================= CARDS 3D ================= */
.grid3{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;perspective:1400px}
.grid3.wide{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.card3{position:relative;background:var(--surface);border-radius:var(--r);box-shadow:var(--sh-2);transform-style:preserve-3d;
  transition:transform .18s ease,box-shadow .25s ease;will-change:transform;border:1px solid var(--line-soft)}
.card3::before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--sheen);pointer-events:none;opacity:.9}
.card3::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(240px 140px at var(--mx,50%) var(--my,0%),rgba(255,255,255,.35),transparent 70%);opacity:0;transition:opacity .2s}
.card3.lift:hover{box-shadow:var(--sh-3)}
.card3.lift:hover::after{opacity:1}
.card3>*{position:relative}
.card3.clickable{cursor:pointer}
.card3 .body{padding:16px 18px}
.card3 .foot{padding:12px 18px;border-top:1px solid var(--line-soft);display:flex;align-items:center;gap:10px;background:var(--surface-2);
  border-radius:0 0 var(--r) var(--r)}
.stripe{position:absolute;left:0;top:14px;bottom:14px;width:4px;border-radius:0 4px 4px 0}
.stripe.p1{background:var(--red)} .stripe.p2{background:var(--pri)} .stripe.p3{background:var(--faint)}

/* tiles numéricos */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;perspective:1400px}
.tile{padding:16px 18px 14px}
.tile .n{font-family:var(--disp);font-size:34px;font-weight:700;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.tile .l{font-size:12.5px;color:var(--muted);margin-top:8px;font-weight:600}
.tile .d{font-size:12px;color:var(--faint);margin-top:2px}
.tile.crit .n{color:var(--red)} .tile.ok .n{color:var(--green)} .tile.pri .n{color:var(--pri)} .tile.warn .n{color:var(--amber)}

/* card de OS */
.os-card .head{display:flex;align-items:flex-start;gap:10px}
.os-card .num{font-family:var(--mono);font-size:12px;color:var(--faint);font-weight:600}
.os-card h3{font-size:16px;font-weight:700;line-height:1.25;margin-top:2px}
.os-card .where{font-size:13px;color:var(--ink-2);margin-top:6px}
.os-card .where .mono{color:var(--muted);font-size:12px}
.os-card .relato{font-size:13.5px;color:var(--muted);margin-top:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.os-card .tec{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-2)}
.os-card .tec .av{width:26px;height:26px;font-size:10.5px}
.os-card .tec.none{color:var(--amber);font-weight:700}

/* etapas (stepper) */
.steps{display:flex;align-items:center;gap:0;margin-top:12px}
.steps i{flex:1;height:5px;background:var(--surface-3);border-radius:3px;position:relative}
.steps i+i{margin-left:4px}
.steps i.hit{background:var(--pri)} .steps i.now{background:var(--aqua);box-shadow:0 0 0 3px var(--aqua-soft)}
.steps i.done{background:var(--green)}
.big-steps{display:flex;gap:6px;flex-wrap:wrap}
.big-steps span{flex:1;min-width:88px;text-align:center;padding:10px 6px;border-radius:10px;background:var(--surface-3);color:var(--faint);
  font-family:var(--disp);font-size:12px;font-weight:600;position:relative}
.big-steps span.hit{background:var(--pri-soft);color:var(--pri-ink)}
.big-steps span.now{background:var(--pri);color:#fff;box-shadow:0 8px 18px rgba(31,95,191,.35)}
.big-steps span.done{background:var(--green);color:#fff}
.big-steps span small{display:block;font-family:var(--mono);font-size:10px;opacity:.75;margin-top:3px}

/* lista de técnicos (seleção por caixa de marcar) */
.tec-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.tec-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);cursor:pointer;transition:.15s}
.tec-row:hover{border-color:var(--pri-line);background:var(--pri-soft)}
.tec-row.on{border-color:var(--pri);background:var(--pri-soft);box-shadow:0 0 0 3px var(--pri-soft)}
.tec-row input{width:20px;height:20px;accent-color:var(--pri);margin:0;flex:none}
.tec-row .av{width:30px;height:30px;font-size:11.5px}
.tec-row .nm{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.tec-row .nm b{font-family:var(--disp);font-size:13.5px}
.tec-row .nm small{font-size:11.5px;color:var(--muted)}

/* pills */
.pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;padding:3px 10px;border-radius:20px;
  border:1px solid var(--line);background:var(--surface-3);color:var(--ink-2);white-space:nowrap;font-family:var(--disp)}
.pill.p1{background:var(--red-soft);border-color:var(--red-line);color:var(--red)}
.pill.p2{background:var(--pri-soft);border-color:var(--pri-line);color:var(--pri-ink)}
.pill.p3{color:var(--muted)}
.pill.ok{background:var(--green-soft);border-color:var(--green-line);color:var(--green)}
.pill.warn{background:var(--amber-soft);border-color:var(--amber-line);color:var(--amber)}
.pill.bad{background:var(--red-soft);border-color:var(--red-line);color:var(--red)}
.pill.info{background:var(--pri-soft);border-color:var(--pri-line);color:var(--pri-ink)}
.pill.aqua{background:var(--aqua-soft);border-color:transparent;color:var(--aqua)}
.dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--faint)}
.dot.ok{background:var(--green)} .dot.warn{background:var(--amber)} .dot.bad{background:var(--red)}

/* botões */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:11px;font-family:var(--disp);
  font-size:13.5px;font-weight:600;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);transition:.15s;white-space:nowrap;
  box-shadow:var(--sh-1)}
.btn:hover{transform:translateY(-1px);box-shadow:var(--sh-2)}
.btn:active{transform:translateY(0)}
.btn.pri{background:linear-gradient(180deg,var(--pri),var(--pri-ink));border-color:var(--pri-ink);color:#fff;box-shadow:0 6px 16px rgba(31,95,191,.35)}
.btn.ok{background:linear-gradient(180deg,#2E9E62,#22884F);border-color:#1E7343;color:#fff}
.btn.danger{color:var(--red);border-color:var(--red-line)}
.btn.ghost{background:transparent;box-shadow:none;border-color:transparent;color:var(--pri-ink)}
.btn.big{padding:15px 22px;font-size:16px;border-radius:14px}
.btn.sm{padding:6px 11px;font-size:12.5px;border-radius:9px}
.btn.wide{width:100%}
.btn svg{width:17px;height:17px;fill:currentColor}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
/* navegação da parada: Google Maps / Waze */
.rt-nav{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
.btn.xs{padding:3px 9px;font-size:11px;border-radius:14px;line-height:1.6}

/* formulários */
label.f{display:block;font-family:var(--disp);font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px}
.inp,select.inp,textarea.inp{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:11px;background:var(--surface);font-size:15px;color:var(--ink)}
.inp:focus{border-color:var(--pri);outline:none;box-shadow:0 0 0 4px var(--pri-soft)}
select.inp{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 4.5l4 4 4-4' fill='none' stroke='%236B7A99' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;background-size:12px;padding-right:34px}
textarea.inp{resize:vertical;min-height:84px}
/* ação discreta: existe, mas não compete com o passo principal da tela */
.linkish{background:none;border:none;padding:0;font:inherit;font-size:13px;color:var(--muted);
  text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.linkish:hover:not(:disabled){color:var(--pri)}
.linkish:disabled{opacity:.45;cursor:default;text-decoration:none}
/* seletor de data: calendário do navegador visível no tema escuro, cursor de clique no ícone */
input[type="datetime-local"].inp,input[type="date"].inp{color-scheme:dark;cursor:pointer}
[data-theme="light"] input[type="datetime-local"].inp,[data-theme="light"] input[type="date"].inp{color-scheme:light}
input[type="datetime-local"].inp::-webkit-calendar-picker-indicator,
input[type="date"].inp::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.85;padding:2px}
.fgrid{display:grid;gap:14px}
.fgrid.c2{grid-template-columns:1fr 1fr} .fgrid.c3{grid-template-columns:repeat(3,1fr)}
.choice{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.choice button{padding:12px 10px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);text-align:left;transition:.15s}
.choice button b{display:block;font-family:var(--disp);font-size:14px}
.choice button span{font-size:12px;color:var(--muted);line-height:1.3}
.choice button:hover{border-color:var(--pri-line);background:var(--pri-soft)}
.choice button.on{border-color:var(--pri);background:var(--pri-soft);box-shadow:0 0 0 3px var(--pri-soft)}
.choice button.on.p1{border-color:var(--red);background:var(--red-soft)} .choice button.on.p1 b{color:var(--red)}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{padding:7px 13px;border-radius:20px;border:1px solid var(--line);background:var(--surface);font-size:13px;color:var(--ink-2);transition:.15s;font-weight:600}
.chip:hover{border-color:var(--pri-line);background:var(--pri-soft)}
.chip.on{background:var(--pri);border-color:var(--pri);color:#fff}

/* tabelas */
.tbl{overflow-x:auto;border-radius:var(--r)}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{text-align:left;font-family:var(--disp);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:700;padding:10px 14px;
  border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap}
td{padding:11px 14px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
tbody tr:last-child td{border-bottom:none}
tr.clickable{cursor:pointer} tr.clickable:hover{background:var(--pri-soft)}
td.num,th.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}

/* board (quadro de etapas) */
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:14px;overflow-x:auto;padding-bottom:10px;perspective:1400px}
.col{background:var(--ground-2);border-radius:var(--r);padding:10px;display:flex;flex-direction:column;gap:10px;min-height:200px}
.col>h3{font-size:13px;font-weight:700;color:var(--ink-2);padding:4px 6px;display:flex;align-items:center;gap:8px}
.col>h3 .n{margin-left:auto;font-family:var(--mono);font-size:11.5px;color:var(--faint)}
.col .card3 .body{padding:13px 14px}
.col .vazio{font-size:12.5px;color:var(--faint);text-align:center;padding:18px 6px}

/* linha do tempo */
.tl{list-style:none;margin:0;padding:0 0 0 22px;position:relative}
.tl::before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:2px;background:var(--line)}
.tl li{position:relative;padding:6px 0;font-size:13.5px;display:flex;gap:12px}
.tl li::before{content:"";position:absolute;left:-21px;top:12px;width:10px;height:10px;border-radius:50%;background:var(--surface);border:2px solid var(--line)}
.tl li.hit::before{background:var(--pri);border-color:var(--pri)}
.tl li time{font-family:var(--mono);font-size:11.5px;color:var(--faint);flex:none;width:122px;padding-top:2px}
.tl li b{font-weight:700;color:var(--ink-2)}

/* kv */
dl.kv{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:13.5px}
dl.kv dt{color:var(--muted);margin:0} dl.kv dd{margin:0;font-weight:600}

/* fotos */
.fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.fotos a{aspect-ratio:1;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--surface-2);display:block;position:relative}
.fotos img{width:100%;height:100%;object-fit:cover;display:block}
.fotos small{position:absolute;left:0;right:0;bottom:0;background:rgba(15,30,61,.7);color:#fff;font-family:var(--mono);font-size:9.5px;padding:2px 6px}

/* o que fazer agora */
.todo{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface);border-left-width:4px;box-shadow:var(--sh-1)}
.todo.a{border-left-color:var(--red)} .todo.b{border-left-color:var(--amber)} .todo.c{border-left-color:var(--green)}
.todo .t{flex:1;min-width:0} .todo .t b{display:block;font-family:var(--disp);font-size:13.5px} .todo .t span{font-size:12.5px;color:var(--muted)}

/* callout */
.callout{display:flex;gap:11px;padding:13px 15px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);font-size:13.5px;line-height:1.5}
.callout.warn{background:var(--amber-soft);border-color:var(--amber-line)}
.callout.bad{background:var(--red-soft);border-color:var(--red-line)}
.callout.ok{background:var(--green-soft);border-color:var(--green-line)}
.callout.info{background:var(--pri-soft);border-color:var(--pri-line)}

/* estoque */
.stk{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-weight:700}
.stk.ok{color:var(--green)} .stk.warn{color:var(--amber)} .stk.bad{color:var(--red)}
.bar{height:6px;border-radius:6px;background:var(--surface-3);overflow:hidden}
.bar i{display:block;height:100%;background:var(--pri);border-radius:6px}

/* pasta de documentos */
.tree{display:flex;flex-direction:column;gap:3px}
.tree button{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:10px;font-size:13.5px;color:var(--ink-2);text-align:left;width:100%;font-weight:600}
.tree button:hover{background:var(--surface-3)}
.tree button.on{background:var(--pri-soft);color:var(--pri-ink)}
.tree button .n{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--faint)}
.g-side{display:grid;grid-template-columns:250px 1fr;gap:16px}

/* modal */
.ovl{position:fixed;inset:0;background:rgba(8,16,34,.55);backdrop-filter:blur(3px);display:grid;place-items:center;z-index:60;padding:20px;perspective:1400px}
.modal{background:var(--surface);border-radius:18px;box-shadow:var(--sh-3);width:min(760px,100%);max-height:90dvh;display:flex;flex-direction:column;overflow:hidden;
  animation:pop .22s cubic-bezier(.2,.8,.3,1.1)}
.modal.wide{width:min(1000px,100%)}
@keyframes pop{from{opacity:0;transform:translateY(14px) rotateX(6deg)}to{opacity:1;transform:none}}
.modal-h{display:flex;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line)}
.modal-h h2{font-size:18px}
.modal-b{padding:22px;overflow-y:auto;display:flex;flex-direction:column;gap:18px}
.modal-f{padding:14px 22px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;background:var(--surface-2);flex-wrap:wrap}
.x{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:var(--muted);font-size:20px}
.x:hover{background:var(--surface-3)}

/* toast */
.toasts{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:9px;z-index:90}
.toast{background:var(--rail);color:#fff;padding:12px 16px;border-radius:12px;box-shadow:var(--sh-3);font-size:13.5px;max-width:380px;animation:slidein .25s ease-out;font-weight:600}
.toast.err{background:var(--red)} .toast.ok{background:var(--green)}
@keyframes slidein{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* misc */
.two{display:grid;grid-template-columns:3fr 2fr;gap:18px}
.card3 .body h2{font-size:15px;font-weight:700;color:var(--ink-2);margin-bottom:10px}
.empty{text-align:center;padding:30px;color:var(--faint);font-size:14px}
.hint{font-size:12.5px;color:var(--faint)}
.wa-preview{white-space:pre-line;font-family:var(--mono);font-size:12px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;color:var(--ink-2)}
.next-step{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:14px;background:var(--pri-soft);border:1px solid var(--pri-line)}
.next-step .lb{font-family:var(--disp);font-size:12px;color:var(--pri-ink);font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.next-step b{display:block;font-family:var(--disp);font-size:17px}
.fila{display:flex;flex-direction:column;gap:8px}
.fila .item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line-soft)}
.fila .item .pos{font-family:var(--disp);font-weight:700;font-size:18px;width:28px;color:var(--pri)}

@media (max-width:1000px){ .two,.g-side{grid-template-columns:1fr} .fgrid.c3{grid-template-columns:1fr 1fr} }
@media (max-width:720px){
  .shell{grid-template-columns:1fr}
  .rail{position:fixed;top:auto;bottom:0;left:0;right:0;height:auto;flex-direction:row;justify-content:space-around;padding:6px 4px;z-index:50;overflow-x:auto}
  .rail .logo,.rail .sair{display:none}
  .rail button{width:auto;min-width:64px;padding:8px 6px 6px;font-size:10px}
  .page{padding:16px 16px 90px} .top{padding:14px 16px 0} .top h1{font-size:20px}
  .fgrid.c2,.fgrid.c3{grid-template-columns:1fr} .choice{grid-template-columns:1fr}
  .who span{display:none} .demo-tag{display:none}
  .board{grid-auto-columns:minmax(80vw,1fr)}
}
@media (prefers-reduced-motion:reduce){ *{animation:none!important;transition:none!important} .card3{transform:none!important} }
@media print{ .rail,.top,.toasts,.actions{display:none!important} .page{padding:0} }


/* ================= CALENDÁRIO ================= */
section.ag-tela{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px;align-items:start}
.ag-grade{display:grid;gap:4px;overflow-x:auto}
.ag-horas{padding-top:36px}
.ag-horas div{font-family:var(--mono);font-size:10.5px;color:var(--faint);text-align:right;padding-right:6px}
.ag-hora-fim{height:0;transform:translateY(-6px)}
.ag-col{min-width:0}
.ag-col h4{font-family:var(--disp);font-size:11.5px;font-weight:700;color:var(--muted);text-align:center;padding:6px 0;
  text-transform:uppercase;letter-spacing:.06em}
.ag-col h4 span{display:block;font-size:15px;color:var(--ink-2);letter-spacing:0}
.ag-col.hoje h4,.ag-col.hoje h4 span{color:var(--pri-ink)}
.ag-pista{position:relative;background:var(--surface-2);border-radius:10px;border:1px solid var(--line-soft);overflow:hidden;
  transition:background .12s,border-color .12s}
.ag-col.hoje .ag-pista{border-color:var(--pri-line);background:var(--pri-soft)}
.ag-pista.alvo{background:var(--pri-soft);border-color:var(--pri);box-shadow:inset 0 0 0 2px var(--pri)}
.ag-pista i{position:absolute;left:0;right:0;height:1px;background:var(--line-soft)}
.ag-bloco{position:absolute;left:3px;right:3px;border-radius:8px;padding:5px 8px;overflow:hidden;cursor:grab;
  background:var(--pri-soft);border:1px solid var(--pri-line);border-left:3px solid var(--pri);transition:.12s}
.ag-bloco:active{cursor:grabbing}
.ag-bloco.arrastando{opacity:.4}
.ag-bloco b{display:block;font-family:var(--disp);font-size:11.5px;line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag-bloco span{font-size:10.5px;color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag-bloco.urg{background:var(--red-soft);border-color:var(--red-line);border-left-color:var(--red)}
.ag-bloco.entrega{background:var(--green-soft);border-color:var(--green-line);border-left-color:var(--green)}
.ag-bloco:hover{filter:brightness(1.12)}
.ag-bloco.sel{box-shadow:0 0 0 2px var(--pri)}
.ag-rota{display:block;margin:4px auto 0;padding:2px 9px;border-radius:20px;border:1px solid var(--pri-line);
  background:var(--pri-soft);color:var(--pri-ink);font-family:var(--disp);font-size:10px;font-weight:700;
  letter-spacing:.04em;text-transform:none}
.ag-rota:hover{background:var(--pri);color:#fff;border-color:var(--pri)}
/* dia que já passou: consulta, não programação */
.ag-col.passou .ag-pista{background:var(--surface-2);border-style:dashed;opacity:.9}
.ag-bloco.feito{cursor:pointer;opacity:.66;filter:grayscale(.35);border-left-color:var(--muted)}
.ag-bloco.feito:hover{opacity:1;filter:none}
.ag-rota.feito{background:transparent;border-color:var(--line);color:var(--muted)}
.ag-rota.feito:hover{background:var(--surface-2);color:var(--ink);border-color:var(--line)}

/* faixa de exceções (domingo, fora de hora) */
.ag-excep{margin-top:12px;border:1.5px dashed var(--line);border-radius:12px;padding:10px 12px;background:var(--surface-2);
  transition:.12s}
.ag-excep.alvo{border-color:var(--amber);border-style:solid;background:var(--amber-soft)}
.ag-excep-tit{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.ag-excep-tit b{font-family:var(--disp);font-size:13px;color:var(--amber)}
.ag-excep-lista{display:flex;flex-direction:column;gap:6px}
.ag-excep-vazio{font-size:12.5px;color:var(--faint);padding:6px 2px}

.ag-fila{display:flex;flex-direction:column;gap:8px;max-height:620px;overflow-y:auto}
.ag-item{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border-radius:11px;cursor:grab;
  background:var(--surface-2);border:1px solid var(--line-soft)}
.ag-item:active{cursor:grabbing}
.ag-item.arrastando{opacity:.4}
.ag-item:hover{border-color:var(--pri-line)}
.ag-item.sel{border-color:var(--pri);box-shadow:0 0 0 2px var(--pri-soft)}
.ag-item.apagado{opacity:.32}
.ag-item b{font-family:var(--disp);font-size:13px}
.ag-item .ag-nome{flex:1 0 100%;min-width:0}
.ag-item .btn,.ag-item .ag-pega{margin-left:auto}
.ag-pedido{font-size:11.5px;color:var(--faint);margin-top:3px}
.ag-pedido b{font-family:var(--body);font-size:11.5px;color:var(--amber)}
.ag-pega{font-size:16px;color:var(--faint);cursor:grab;user-select:none;line-height:1}
@media (max-width:820px){ .ag-pega{font-size:22px;cursor:pointer} }
@media (max-width:1100px){ section.ag-tela{grid-template-columns:minmax(0,1fr)} }
/* celular: um dia por vez, escolhido nas abas de cima */
.ag-dias{display:flex;gap:5px;margin-bottom:8px;overflow-x:auto;padding-bottom:2px}
.ag-dia{flex:1;min-width:44px;padding:7px 4px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);
  font-family:var(--disp);font-size:10.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;
  display:flex;flex-direction:column;align-items:center;gap:1px;position:relative}
.ag-dia b{font-size:16px;color:var(--ink-2);letter-spacing:0}
.ag-dia i{position:absolute;top:3px;right:5px;font-style:normal;font-size:9.5px;font-family:var(--mono);
  color:var(--pri-ink)}
.ag-dia.hoje{border-color:var(--pri-line)}
.ag-dia.on{background:var(--pri);border-color:var(--pri);color:#fff}
.ag-dia.on b,.ag-dia.on i{color:#fff}
@media (max-width:820px){
  .ag-grade{grid-template-columns:44px minmax(0,1fr)!important}
  .ag-col h4{font-size:12px}
  .ag-bloco{padding:7px 9px}
  .ag-bloco b{font-size:13px} .ag-bloco span{font-size:11.5px}
  .ag-fila{max-height:none}
}

/* ================= MEU DIA (técnico em campo) ================= */
.campo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.campo-card .body{display:flex;flex-direction:column;gap:9px;padding:16px 18px}
.campo-topo{display:flex;align-items:center;gap:10px}
.campo-topo .faint{margin-left:auto;font-size:12px}
.campo-card h3{font-size:18px;font-weight:700;line-height:1.2}
.campo-status{font-family:var(--disp);font-size:13px;font-weight:700;color:var(--pri-ink);
  background:var(--pri-soft);border:1px solid var(--pri-line);border-radius:9px;padding:6px 10px;align-self:flex-start}
.campo-relato{margin:0;font-size:13.5px;color:var(--muted);line-height:1.45}
.campo-card .btn.big{padding:16px;font-size:17px}
.campo-card label.btn{position:relative;overflow:hidden}

/* quadro de assinatura */
canvas.assin{width:100%;height:190px;display:block;border-radius:12px;background:var(--surface-2);
  border:1.5px dashed var(--line);touch-action:none;cursor:crosshair}
@media (max-width:720px){ .campo-grid{grid-template-columns:1fr} canvas.assin{height:220px} }


/* ================= ROTAS ================= */
section.rt-tela{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
/* mapa: ruas por baixo (tiles), traçado e pinos por cima (SVG) */
.mapa-caixa{position:relative;width:100%;aspect-ratio:1000/620;overflow:hidden;border-radius:12px;
  border:1px solid var(--line-soft);background:var(--surface-2)}
.mapa-tile{position:absolute;display:block;border:0;image-rendering:auto}
/* o mapa fica claro, como o do Waze: ruas e nomes legíveis. O que é do sistema (traçado, pinos,
   rótulos) é que ganha contraste por cima, em vez de escurecer o mapa. */
.mapa-caixa.com-ruas{background:#f2efe9}
.mapa-caixa.com-ruas .mapa-tile{filter:saturate(.92)}
.mapa-fora{position:absolute;left:6px;bottom:4px;font-size:10px;line-height:1.6;padding:1px 7px;
  border-radius:6px;background:var(--amber-soft);color:var(--amber);border:1px solid var(--amber);pointer-events:none}
.mapa-credito{position:absolute;right:6px;bottom:4px;font-size:10px;line-height:1.6;padding:1px 6px;
  border-radius:6px;background:rgba(255,255,255,.82);color:#333;pointer-events:none}
.mapa-caixa:not(.com-ruas) .mapa-credito{background:rgba(0,0,0,.45);color:#fff}
svg.mapa{position:absolute;inset:0;width:100%;height:100%;display:block}
/* sobre o mapa claro: nome escuro com halo branco. Sem o mapa: nome branco com halo escuro. */
.com-ruas svg.mapa text.rot{fill:#1b2430!important;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}
.mapa-caixa:not(.com-ruas) svg.mapa text.rot{paint-order:stroke;stroke:rgba(0,0,0,.6);stroke-width:3.5px;stroke-linejoin:round}
.com-ruas svg.mapa .mapa-pino circle{stroke:#fff;stroke-width:3}
svg.mapa text{font-family:var(--body)}
.mapa-pino{cursor:pointer} .mapa-pino:hover circle{filter:brightness(1.2)}
.mapa-pino.so-ponto{cursor:default}
.rt-legenda{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:var(--muted)}
.rt-legenda i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:middle}
.rt-gente{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:10px;background:var(--surface-2);
  border:1px solid var(--line-soft);margin-bottom:6px;font-size:13px}
.rt-gente b{font-family:var(--disp)}
.rt-lista{display:flex;flex-direction:column;gap:8px;max-height:420px;overflow-y:auto}
.rt-parada{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:11px;cursor:pointer;
  background:var(--surface-2);border:1px solid var(--line-soft)}
.rt-parada:hover{border-color:var(--pri-line)}
.rt-parada.feita{opacity:.62}
.rt-parada b{font-family:var(--disp);font-size:13.5px}
.rt-num{width:26px;height:26px;border-radius:50%;background:var(--pri);color:#fff;display:grid;place-items:center;
  font-family:var(--disp);font-weight:700;font-size:13px;flex:none}
.rt-parada.feita .rt-num{background:var(--green)}
@media (max-width:1100px){ section.rt-tela{grid-template-columns:minmax(0,1fr)} }


/* ================= ORÇAMENTO (padrão do almoxarifado) ================= */
.orc-buscas{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.orc-lado{display:flex;flex-direction:column;gap:6px;min-width:0}
.orc-achados{display:flex;flex-direction:column;gap:5px;max-height:210px;overflow-y:auto;
  border:1px solid var(--line-soft);border-radius:11px;padding:6px;background:var(--surface-2)}
.orc-achado{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:8px 10px;border-radius:9px;
  border:1px solid transparent;background:var(--surface);transition:.12s}
.orc-achado:hover{border-color:var(--pri);background:var(--pri-soft)}
.orc-achado b{font-family:var(--disp);font-size:13px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.orc-achado .hint{font-size:11px;flex:none}
.orc-preco{font-family:var(--mono);font-size:12.5px;font-weight:700;color:var(--pri-ink);flex:none}
input.orc-qtd{width:88px;text-align:right;padding:6px 9px;font-size:14px}
select.orc-bomba{min-width:170px;padding:6px 26px 6px 9px;font-size:13px;background-position:right 8px center}
@media (max-width:720px){ .orc-buscas{grid-template-columns:1fr} }


/* ================= SINAL / FILA OFFLINE ================= */
.sinal{position:fixed;left:50%;transform:translateX(-50%);bottom:16px;z-index:80;
  padding:9px 16px;border-radius:22px;font-family:var(--disp);font-size:12.5px;font-weight:700;
  box-shadow:var(--sh-2);white-space:nowrap;max-width:92vw;overflow:hidden;text-overflow:ellipsis}
.sinal.off{background:var(--amber);color:#1E1305}
.sinal.fila{background:var(--pri);color:#fff}
.sinal.hide{display:none}
@media (max-width:720px){ .sinal{bottom:72px} }
