:root{
  --bg:#0f172a;
  --card:#111c33;
  --card2:#17233d;
  --text:#e8eefc;
  --muted:#9fb0d0;
  --line:#263957;
  --primary:#4f8cff;
  --primary2:#75a7ff;
  --danger:#ef4444;
  --ok:#22c55e;
  --warn:#f59e0b;
}
*{box-sizing:border-box}
body{margin:0;background:linear-gradient(180deg,#0b1120,#101a31 42%,#0f172a);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;min-height:100vh}
a{color:inherit;text-decoration:none}
.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 18px;background:rgba(15,23,42,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.topbar strong{display:block;letter-spacing:.2px}.topbar small{display:block;color:var(--muted);font-size:11px;margin-top:1px}.topbar nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.topbar nav span{color:var(--muted);font-size:13px}.topbar nav a{padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.03);font-size:13px}
.container{width:min(1180px,100%);margin:0 auto;padding:18px}
.login-card{width:min(430px,100%);margin:50px auto;background:linear-gradient(180deg,var(--card),#0f1a30);border:1px solid var(--line);border-radius:14px;padding:24px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
h1,h2{margin:0 0 8px}h1{font-size:28px}h2{font-size:19px;margin-top:0}.muted{color:var(--muted)}.hint{margin-top:16px;padding:12px;border:1px dashed var(--line);border-radius:14px;color:var(--muted);font-size:14px}.page-head{display:flex;align-items:flex-start;gap:16px;margin:10px 0 18px}.page-head.split{justify-content:space-between}.actions{display:flex;gap:10px;flex-wrap:wrap}
.card{background:linear-gradient(180deg,var(--card),#0f1a30);border:1px solid var(--line);border-radius:14px;padding:18px;margin:0 0 18px;box-shadow:0 12px 35px rgba(0,0,0,.16)}
.form{display:grid;gap:14px}label{display:grid;gap:7px;color:var(--muted);font-size:14px}label b{color:#dc2626}input,select,textarea{width:100%;border:1px solid var(--line);background:#0a1223;color:var(--text);border-radius:12px;padding:12px 13px;font:inherit;outline:none}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(79,140,255,.15)}
.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--card2);color:var(--text);border-radius:12px;padding:11px 14px;cursor:pointer;font-weight:600;font-size:14px;white-space:nowrap}.btn.primary{background:linear-gradient(180deg,var(--primary2),var(--primary));border-color:rgba(255,255,255,.22);color:#071020}.btn.danger{background:rgba(239,68,68,.15);border-color:rgba(239,68,68,.5);color:#fecaca}.btn.small{padding:7px 10px;border-radius:10px;font-size:12px}.flash{padding:12px 14px;border-radius:14px;margin:0 0 14px;border:1px solid}.flash.ok{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.35);color:#bbf7d0}.flash.erro{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.4);color:#fecaca}.mini-alert{background:#fffbeb;border:1px solid #fde68a;padding:10px;border-radius:12px;color:#92400e}.hidden{display:none!important}
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice{position:relative;cursor:pointer}.choice input{position:absolute;opacity:0;pointer-events:none}.choice span{display:flex;justify-content:center;border:1px solid var(--line);background:#0a1223;border-radius:14px;padding:14px;color:var(--text);font-weight:600}.choice input:checked+span{background:linear-gradient(180deg,var(--primary2),var(--primary));color:#071020;border-color:rgba(255,255,255,.25)}.project-box{background:rgba(79,140,255,.12);border:1px solid rgba(79,140,255,.35);border-radius:14px;padding:13px}.project-box strong{display:block}.project-box small{display:block;color:var(--muted);margin-top:4px}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px;margin-bottom:18px}.stat{background:linear-gradient(180deg,var(--card2),#111b31);border:1px solid var(--line);border-radius:14px;padding:16px}.stat.stat-alert{border-color:rgba(245,158,11,.55);background:linear-gradient(180deg,rgba(245,158,11,.14),#111b31)}.stat.stat-alert strong{color:#fbbf24}.stat span{display:block;color:var(--muted);font-size:13px}.stat strong{display:block;font-size:24px;margin-top:4px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid-2.compact{gap:12px;margin:0}.filters{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.filters label{min-width:160px;flex:1}.filters .btn{height:45px}.inline-form{display:flex;gap:7px}.inline-form input{min-width:130px;padding:8px;border-radius:10px}
.bars{display:grid;gap:10px}.bar-row{display:grid;grid-template-columns:minmax(120px,190px) 1fr 34px;align-items:center;gap:10px}.bar-row span{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar{height:14px;border-radius:999px;background:#eef2f7;border:1px solid var(--line);overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--primary2));border-radius:999px}.bar-row b{text-align:right}.trend{background:#f8fafc;border:1px solid var(--line);padding:12px;border-radius:14px}.month-chart{display:flex;align-items:end;gap:10px;min-height:190px;overflow-x:auto;padding:10px 0}.month-col{display:grid;justify-items:center;gap:7px;min-width:48px}.month-bar{width:34px;background:linear-gradient(180deg,var(--primary2),var(--primary));border-radius:12px 12px 5px 5px;display:flex;align-items:flex-start;justify-content:center;padding-top:5px;color:#071020;font-size:12px;font-weight:700}.month-col small{color:var(--muted);font-size:12px}
.table-wrap{overflow:auto;max-height:65vh;border-radius:12px}table{width:100%;border-collapse:collapse;min-width:880px}th,td{border-bottom:1px solid var(--line);text-align:left;padding:11px 9px;vertical-align:top}th{color:var(--muted);font-size:13px;font-weight:600;position:sticky;top:0;z-index:2;background:var(--card2)}td{font-size:14px}.sticky-col{position:sticky;right:0;background:var(--card);box-shadow:-8px 0 12px -8px rgba(0,0,0,.35);z-index:1}th.sticky-col{z-index:3}tbody tr.row-link{cursor:pointer}tbody tr.row-link:hover{background:rgba(255,255,255,.035)}tbody tr.row-link:hover .sticky-col{background:#182545}.id-link{color:var(--primary2);text-decoration:none;font-weight:700}.id-link:hover{text-decoration:underline}.pill{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700;text-transform:capitalize}.pill.retrabalho{background:rgba(239,68,68,.15);color:#fecaca}.pill.melhoria{background:rgba(34,197,94,.15);color:#bbf7d0}.pill.rnc-aberta,.pill.rnc-respondida{background:rgba(245,158,11,.18);color:#fde68a}.pill.rnc-enviada{background:rgba(59,130,246,.18);color:#bfdbfe}.pill.rnc-encerrada{background:rgba(34,197,94,.15);color:#bbf7d0}.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.detail-grid div{border:1px solid var(--line);border-radius:14px;padding:12px;background:rgba(255,255,255,.03)}.detail-grid span{display:block;color:var(--muted);font-size:12px}.detail-grid strong{display:block;margin-top:4px}.description{line-height:1.55;background:#f8fafc;border:1px solid var(--line);padding:14px;border-radius:14px}.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.photos img{width:100%;height:140px;object-fit:cover;border-radius:14px;border:1px solid var(--line);background:#0a1223}.photo-card{border:1px solid var(--line);background:rgba(255,255,255,.03);border-radius:14px;padding:8px}.photo-link{display:block;text-align:center;margin-top:8px;font-size:13px;color:#bfdbfe;text-decoration:none}.section-title-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px}.section-title-row h2{margin:10px 0}
@media (max-width:850px){.topbar{align-items:flex-start;flex-direction:column}.container{padding:14px}.stats-grid{grid-template-columns:1fr 1fr}.grid-2{grid-template-columns:1fr}.choice-grid{grid-template-columns:1fr}.page-head.split{flex-direction:column}.detail-grid{grid-template-columns:1fr 1fr}.filters label{min-width:100%}.filters .btn{width:100%}.inline-form{flex-direction:column}.bar-row{grid-template-columns:1fr}.bar-row b{text-align:left}}
@media (max-width:520px){.stats-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}.login-card{margin:25px auto}.topbar nav a{font-size:12px;padding:7px 9px}}

/* Botão de envio travado para evitar clique duplo */
.btn[disabled], .btn.is-loading{opacity:.72;cursor:not-allowed;pointer-events:none;filter:saturate(.75)}
.btn.is-loading::after{content:"";width:14px;height:14px;margin-left:9px;border:2px solid rgba(7,16,32,.28);border-top-color:#071020;border-radius:50%;animation:girarBtn .8s linear infinite}
@keyframes girarBtn{to{transform:rotate(360deg)}}

/* Prévia simples das fotos e marcação opcional com o dedo */
.fotos-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;margin-top:-6px}
.foto-preview-card{border:1px solid var(--line);background:#f8fafc;border-radius:14px;padding:8px;text-align:center}
.foto-preview-card img{width:72px;height:72px;border-radius:12px;object-fit:cover;border:1px solid rgba(117,167,255,.45);background:#0a1223;display:block;margin:0 auto 7px}
.foto-preview-card span{display:block;color:var(--muted);font-size:12px;margin-bottom:7px}.foto-preview-card .btn{width:100%;font-size:11px;padding:7px 6px}
.marker-modal{position:fixed;inset:0;z-index:9999;background:rgba(2,6,23,.82);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:14px}
.marker-card{width:min(720px,100%);max-height:96vh;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--card),#0f1a30);border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:0 22px 70px rgba(0,0,0,.45)}
.marker-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.marker-head strong{display:block;font-size:18px}.marker-head small{display:block;color:var(--muted);margin-top:3px;line-height:1.35}.marker-close{width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:#f1f5f9;color:#172033;font-size:24px;line-height:1;cursor:pointer}
.marker-toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:10px}.marker-toolbar label{flex:1;min-width:170px}.marker-toolbar input{padding:0;accent-color:#facc15}.marker-toolbar .btn{height:42px}
.marker-canvas-wrap{flex:1;min-height:220px;display:flex;justify-content:center;align-items:center;background:#081124;border:1px solid var(--line);border-radius:14px;padding:10px;touch-action:none;overflow:auto}.marker-canvas-wrap canvas{max-width:100%;max-height:58vh;border-radius:12px;display:block;touch-action:none;cursor:crosshair;background:#0a1223}
.marker-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.marker-actions .btn{flex:1}.marker-help{display:block;margin-top:10px;line-height:1.35}
@media (max-width:520px){.marker-modal{align-items:flex-end;padding:8px}.marker-card{border-radius:14px}.marker-toolbar{display:grid;grid-template-columns:1fr}.marker-toolbar .btn{width:100%}.marker-actions{display:grid;grid-template-columns:1fr}.marker-canvas-wrap{padding:7px}.marker-canvas-wrap canvas{max-height:52vh}}


/* PATCH V2.0 - editor de marcação sem estourar a tela */
body.marker-open{overflow:hidden;position:fixed;width:100%}
.marker-modal{overflow:hidden;padding:10px}
.marker-card{width:min(720px,calc(100vw - 20px));max-width:calc(100vw - 20px);max-height:calc(100vh - 20px);overflow:hidden}
.marker-canvas-wrap{width:100%;max-width:100%;min-height:180px;max-height:56vh;overflow:hidden;padding:8px;align-items:center;justify-content:center}
.marker-canvas-wrap canvas{display:block;max-width:100%;max-height:54vh;width:auto;height:auto;object-fit:contain}
@media (max-width:520px){
  .marker-modal{align-items:center;padding:6px}
  .marker-card{width:calc(100vw - 12px);max-width:calc(100vw - 12px);max-height:calc(100vh - 12px);padding:10px;border-radius:14px}
  .marker-head{margin-bottom:8px}.marker-head strong{font-size:16px}.marker-head small{font-size:12px}
  .marker-toolbar{gap:7px;margin-bottom:7px}
  .marker-toolbar label{min-width:0}.marker-toolbar .btn{height:38px;padding:8px 10px}
  .marker-canvas-wrap{min-height:170px;max-height:52vh;padding:6px;border-radius:14px}
  .marker-canvas-wrap canvas{max-height:50vh;max-width:100%}
  .marker-actions{gap:7px;margin-top:8px}
  .marker-help{font-size:11px;margin-top:7px}
}


/* PATCH V2.1 - prévia da foto nunca pode estourar o formulário */
#fotosPreview,
.fotos-preview{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(92px,1fr));
  gap:10px;
  width:100%;
  max-width:100%;
  overflow:hidden;
  align-items:start;
}
#fotosPreview.hidden,
.fotos-preview.hidden{display:none!important}
#fotosPreview .foto-preview-card,
.fotos-preview .foto-preview-card{
  width:100%;
  max-width:120px;
  min-width:0;
  overflow:hidden;
  justify-self:center;
  border:1px solid var(--line);
  background:rgba(255,255,255,.04);
  border-radius:14px;
  padding:8px;
  text-align:center;
}
#fotosPreview .foto-preview-card img,
#fotosPreview img.foto-preview-img,
.fotos-preview .foto-preview-card img,
.fotos-preview img.foto-preview-img{
  width:72px!important;
  height:72px!important;
  max-width:72px!important;
  max-height:72px!important;
  min-width:72px!important;
  min-height:72px!important;
  object-fit:cover!important;
  border-radius:12px!important;
  border:1px solid rgba(117,167,255,.45);
  background:#0a1223;
  display:block!important;
  margin:0 auto 7px!important;
}
#fotosPreview .foto-preview-card span,
.fotos-preview .foto-preview-card span{
  display:block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--muted);
  font-size:12px;
  margin-bottom:7px;
}
#fotosPreview .foto-preview-card .btn,
.fotos-preview .foto-preview-card .btn{
  width:100%;
  max-width:100%;
  font-size:11px;
  padding:7px 6px;
  margin-top:4px;
}
@media (max-width:520px){
  #fotosPreview,.fotos-preview{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  #fotosPreview .foto-preview-card,.fotos-preview .foto-preview-card{max-width:105px;padding:6px}
  #fotosPreview .foto-preview-card img,
  #fotosPreview img.foto-preview-img,
  .fotos-preview .foto-preview-card img,
  .fotos-preview img.foto-preview-img{
    width:64px!important;height:64px!important;max-width:64px!important;max-height:64px!important;min-width:64px!important;min-height:64px!important;
  }
}


/* PATCH V2.3 - manter senha salva no dispositivo */
.check-row{display:flex;grid-template-columns:none;flex-direction:row;align-items:center;gap:10px;color:var(--muted);font-size:14px;line-height:1.35}
.check-row input[type="checkbox"]{width:18px;height:18px;min-width:18px;accent-color:var(--primary);padding:0;border-radius:5px}
.remember-row{margin-top:-2px;background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.link-btn{background:transparent;border:0;color:#1d4ed8;padding:2px 0;margin-top:-4px;text-align:left;cursor:pointer;font:inherit;font-size:13px}
.link-btn:hover{text-decoration:underline}


/* PATCH V2.5 - aumenta somente o card Máquina topo sem mexer no resto */
.stats-grid .stat.stat-wide{
  min-width:260px;
}
.stats-grid .stat.stat-wide strong{
  font-size:23px;
  line-height:1.22;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
}
@media (max-width:850px){
  .stats-grid .stat.stat-wide{min-width:0}
}
@media (max-width:520px){
  .stats-grid .stat.stat-wide strong{font-size:22px}
}

/* PATCH V2.6 - diminui cards numéricos e compensa espaço no card Máquina topo */
@media (min-width: 901px){
  .stats-grid{
    grid-template-columns:
      minmax(118px,.72fr)
      minmax(118px,.72fr)
      minmax(118px,.72fr)
      minmax(340px,1.65fr)
      minmax(170px,1fr)
      minmax(170px,1fr);
  }
  .stats-grid .stat:nth-child(1),
  .stats-grid .stat:nth-child(2),
  .stats-grid .stat:nth-child(3){
    padding-left:14px;
    padding-right:14px;
  }
  .stats-grid .stat:nth-child(1) strong,
  .stats-grid .stat:nth-child(2) strong,
  .stats-grid .stat:nth-child(3) strong{
    font-size:20px;
    line-height:1.18;
  }
  .stats-grid .stat.stat-wide{
    min-width:0;
  }
  .stats-grid .stat.stat-wide strong{
    font-size:21px;
    line-height:1.18;
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
}


/* PATCH V3.2 - vídeos da galeria */
.foto-preview-card video,
.foto-preview-video{
  width:72px!important;
  height:72px!important;
  max-width:72px!important;
  max-height:72px!important;
  min-width:72px!important;
  min-height:72px!important;
  object-fit:cover!important;
  border-radius:12px!important;
  border:1px solid rgba(117,167,255,.45);
  background:#050b16;
  display:block!important;
  margin:0 auto 7px!important;
}
.video-tag-preview{
  display:block;
  color:#1d4ed8;
  font-size:11px;
  margin:-2px 0 5px;
}
.videos{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:12px;
}
.video-card{
  border:1px solid var(--line);
  background:#f8fafc;
  border-radius:14px;
  padding:10px;
}
.video-card video{
  width:100%;
  max-height:260px;
  background:#050b16;
  border-radius:14px;
  border:1px solid var(--line);
  display:block;
}
@media (max-width:520px){
  .videos{grid-template-columns:1fr}
  .foto-preview-card video,
  .foto-preview-video{
    width:64px!important;height:64px!important;max-width:64px!important;max-height:64px!important;min-width:64px!important;min-height:64px!important;
  }
}


/* PATCH V5.2 - rascunho seguro / envio resiliente */
.rascunho-box{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:4px 0 14px;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid #bfdbfe;
  background:#eff6ff;
  color:#1e3a8a;
}
.rascunho-copy{display:grid;gap:3px;min-width:0}
.rascunho-copy strong{font-size:14px;line-height:1.25}
.rascunho-copy small{color:#4f6282;line-height:1.35}
.rascunho-box.is-warning{border-color:#fde68a;background:#fffbeb;color:#92400e}
.rascunho-box.is-warning .rascunho-copy small{color:#b45309}
.rascunho-box.is-error{border-color:#fecdd3;background:#fff1f2;color:#9f1239}
.rascunho-box.is-error .rascunho-copy small{color:#b91c1c}
.rascunho-box.is-ok{border-color:#bbf7d0;background:#ecfdf3;color:#166534}
.rascunho-box.is-ok .rascunho-copy small{color:#15803d}
.envio-protegido{display:block;margin-top:-6px;text-align:center;line-height:1.35}
@media(max-width:560px){
  .rascunho-box{align-items:flex-start;flex-direction:column}
  .rascunho-box .btn{width:100%}
}


/* ==========================================================
   V6.0 — Painel lateral profissional (somente visual)
   ========================================================== */
:root{
  --bg:#f4f7fb;
  --card:#ffffff;
  --card2:#f8fafc;
  --text:#162033;
  --muted:#64748b;
  --line:#dbe4ef;
  --primary:#1d4ed8;
  --primary2:#3b82f6;
  --danger:#dc2626;
  --ok:#16a34a;
  --warn:#d97706;
}
body.app-body{background:#f4f7fb;color:var(--text);min-height:100vh}
body.app-body::before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 70% -10%,rgba(59,130,246,.11),transparent 32%),radial-gradient(circle at 100% 80%,rgba(14,165,233,.08),transparent 30%);z-index:-1}
.auth-body{display:grid;place-items:center;padding:24px}
.auth-main{width:100%;max-width:430px}
.auth-main .login-card{margin:0;width:100%;background:#fff;border-color:#dbe4ef;box-shadow:0 24px 70px rgba(15,23,42,.16)}
.auth-main .login-card h1{color:#0f172a}
.app-shell{min-height:100vh}
.app-sidebar{position:fixed;inset:0 auto 0 0;z-index:80;width:278px;display:flex;flex-direction:column;background:linear-gradient(180deg,#0b1630 0%,#0d1c3c 53%,#0a142c 100%);color:#dce8ff;border-right:1px solid rgba(148,163,184,.16);box-shadow:12px 0 38px rgba(15,23,42,.08)}
.sidebar-brand{display:flex;align-items:center;gap:12px;padding:25px 22px 18px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:linear-gradient(145deg,#60a5fa,#1d4ed8);color:#fff;box-shadow:0 10px 20px rgba(37,99,235,.35)}.brand-mark svg{width:21px;height:21px}.sidebar-brand strong{display:block;color:#fff;font-size:19px;letter-spacing:1.6px;line-height:1}.sidebar-brand small{display:block;margin-top:4px;color:#9eb4d6;font-size:12px;letter-spacing:.15px}
.sidebar-workspace{display:flex;align-items:center;gap:8px;margin:0 16px;padding:10px 12px;border:1px solid rgba(148,163,184,.18);border-radius:12px;background:rgba(255,255,255,.055);font-size:12px;color:#c4d4ee}.workspace-dot{width:8px;height:8px;border-radius:999px;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.12)}
.side-nav{padding:22px 12px 12px;display:grid;gap:5px;overflow:auto}.side-nav-label{margin:12px 10px 5px;color:#7187aa;font-size:10px;font-weight:700;letter-spacing:1.15px}.side-link{display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 11px;border:1px solid transparent;border-radius:12px;color:#b8c8e0;font-weight:600;font-size:14px;transition:.18s ease}.side-link:hover{background:rgba(255,255,255,.07);color:#fff}.side-link.active{background:linear-gradient(90deg,rgba(59,130,246,.28),rgba(59,130,246,.09));border-color:rgba(96,165,250,.24);color:#fff;box-shadow:inset 3px 0 0 #60a5fa}.side-icon{display:grid;place-items:center;width:20px;height:20px;flex:0 0 20px}.side-icon svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round}
.sidebar-footer{margin-top:auto;padding:14px 12px 17px;border-top:1px solid rgba(148,163,184,.14)}.sidebar-user{display:flex;align-items:center;gap:10px;padding:10px 9px 13px}.user-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:#dbeafe;color:#1e40af;font-size:14px;font-weight:700}.sidebar-user strong{display:block;color:#edf5ff;font-size:13px;line-height:1.1}.sidebar-user small{display:block;color:#91a8ca;font-size:11px;margin-top:3px}.logout-link{color:#aebfd9}.logout-link:hover{color:#fecaca;background:rgba(220,38,38,.11)}.sidebar-version{display:block;padding:10px;color:#62769a;font-size:10px;text-align:center}
.app-content{min-height:100vh;margin-left:278px}.app-topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:72px;padding:12px 30px;background:rgba(248,250,252,.88);backdrop-filter:blur(14px);border-bottom:1px solid rgba(203,213,225,.85)}.topbar-title{display:flex;align-items:center;gap:14px}.topbar-title small{display:block;color:#75829a;font-size:11px;font-weight:700;letter-spacing:.35px;text-transform:uppercase}.topbar-title strong{display:block;margin-top:2px;color:#172033;font-size:17px}.topbar-status{display:flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid #dbe4ef;border-radius:999px;background:#fff;color:#64748b;font-size:12px;font-weight:600}.status-dot{width:8px;height:8px;border-radius:999px;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.1)}.sidebar-toggle{display:none;width:40px;height:40px;border:1px solid #dbe4ef;border-radius:12px;background:#fff;color:#1e3a5f;cursor:pointer}.sidebar-toggle svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
.container{width:min(1440px,100%);padding:28px 30px 36px;margin:0 auto}.page-head{margin:0 0 22px;gap:18px}.page-head h1{color:#172033;font-size:28px;letter-spacing:-.5px}.page-head .muted{max-width:750px}.page-head.split{align-items:center}.actions{gap:9px}
.card{background:#fff;border:1px solid #dfe7f0;border-radius:14px;padding:20px;margin:0 0 18px;box-shadow:0 6px 24px rgba(15,23,42,.055)}.card:hover{border-color:#d4dfec}.card h2{color:#1b2b44;font-size:17px}.muted{color:#67768b}.hint{border-color:#d6e0ec;background:#f8fafc;color:#607086}
label{color:#5e6d82;font-size:13px;font-weight:600}input,select,textarea{border-color:#d8e1ec;background:#fff;color:#172033;border-radius:10px;padding:11px 12px;box-shadow:0 1px 2px rgba(15,23,42,.015)}input::placeholder,textarea::placeholder{color:#a0aec0}input:focus,select:focus,textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.btn{border-color:#d4dfec;background:#fff;color:#27405f;border-radius:10px;padding:10px 13px;box-shadow:0 1px 2px rgba(15,23,42,.03)}.btn:hover{border-color:#b9c8da;background:#f8fafc}.btn.primary{background:linear-gradient(180deg,#3b82f6,#1d4ed8);color:#fff;border-color:#2563eb;box-shadow:0 6px 14px rgba(37,99,235,.22)}.btn.primary:hover{filter:brightness(1.03)}.btn.danger{background:#fff5f5;border-color:#fecaca;color:#b91c1c}.btn.small{border-radius:10px}.flash.ok{background:#ecfdf3;border-color:#bbf7d0;color:#166534}.flash.erro{background:#fff1f2;border-color:#fecdd3;color:#b91c1c}.mini-alert{background:#fffbeb;border-color:#fde68a;color:#92400e}
.stats-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-bottom:20px}.stat{position:relative;overflow:hidden;background:#fff;border:1px solid #dfe7f0;border-radius:14px;padding:16px;box-shadow:0 5px 18px rgba(15,23,42,.04)}.stat::before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:linear-gradient(90deg,#2563eb,#60a5fa)}.stat:nth-child(2)::before{background:linear-gradient(90deg,#dc2626,#fb7185)}.stat:nth-child(3)::before{background:linear-gradient(90deg,#16a34a,#4ade80)}.stat:nth-child(4)::before{background:linear-gradient(90deg,#7c3aed,#a78bfa)}.stat:nth-child(5)::before{background:linear-gradient(90deg,#d97706,#fbbf24)}.stat:nth-child(6)::before{background:linear-gradient(90deg,#0891b2,#38bdf8)}.stat:nth-child(7)::before{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.stat.stat-alert{border-color:#fde68a;background:#fffbeb}.stat.stat-alert strong{color:#b45309}.stat span{color:#718096;font-size:12px;font-weight:700}.stat strong{color:#1e2a3b;font-size:23px;line-height:1.15;margin-top:7px;word-break:break-word}.stat-wide{grid-column:span 2}.stat-wide strong{font-size:17px}
.filters{gap:12px;align-items:end}.filters label{min-width:176px}.filters .btn{height:43px}.grid-2{gap:18px}.bars{gap:12px}.bar-row{grid-template-columns:minmax(120px,205px) 1fr 36px}.bar-row span{color:#53647a;font-size:13px}.bar{height:12px;background:#edf2f7;border-color:#e1e8f0}.bar i{background:linear-gradient(90deg,#2563eb,#60a5fa)}.bar-row b{color:#334155}.trend{background:#f8fbff;border-color:#d9e8ff;color:#365472}.month-chart{background:#f8fafc;border:1px solid #e3eaf3;border-radius:12px;padding:16px 14px}.month-bar{background:linear-gradient(180deg,#60a5fa,#2563eb);color:#fff;box-shadow:0 5px 12px rgba(37,99,235,.2)}.month-col small{color:#718096}
.table-wrap{border:1px solid #e1e8f0;border-radius:12px;background:#fff;max-height:65vh}table{min-width:880px}th{background:#f8fafc;color:#69788c;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.35px;position:sticky;top:0;z-index:2}th,td{border-bottom:1px solid #e8eef5;padding:12px 10px}td{color:#34445a;font-size:13px}tbody tr:hover{background:#f8fbff}tbody tr.row-link{cursor:pointer}tbody tr.row-link:hover .sticky-col{background:#f8fbff}.sticky-col{position:sticky;right:0;background:#fff;box-shadow:-8px 0 12px -8px rgba(15,23,42,.12);z-index:1}th.sticky-col{background:#f8fafc;z-index:3}.id-link{color:#1d4ed8;text-decoration:none;font-weight:700}.id-link:hover{text-decoration:underline}.pill{font-weight:600}.pill.retrabalho{background:#fff1f2;color:#be123c}.pill.melhoria{background:#ecfdf3;color:#15803d}.pill.rnc-aberta,.pill.rnc-respondida{background:#fffbeb;color:#b45309}.pill.rnc-enviada{background:#eff6ff;color:#1d4ed8}.pill.rnc-encerrada{background:#ecfdf3;color:#15803d}.detail-grid div{border-color:#e1e8f0;background:#f8fafc}.detail-grid span{color:#718096}.description{background:#f8fafc;border-color:#e1e8f0;color:#334155}.photo-card{border-color:#e1e8f0;background:#fff}.photos img{border-color:#e1e8f0;background:#f8fafc}.photo-link{color:#1d4ed8}.choice span{border-color:#d8e1ec;background:#fff;color:#334155}.choice input:checked+span{background:linear-gradient(180deg,#3b82f6,#1d4ed8);color:#fff;border-color:#2563eb}.project-box{background:#eff6ff;border-color:#bfdbfe;color:#1e3a8a}.project-box small{color:#4f6282}.check-row{background:#f8fafc;border:1px solid #e1e8f0;border-radius:10px;padding:11px}.check-row input{width:auto}.rascunho-box{background:#eff6ff!important;border-color:#bfdbfe!important}.rascunho-box strong{color:#1e3a8a!important}.rascunho-box small{color:#56709c!important}
.marker-card{background:#fff;border-color:#dbe4ef;color:#172033}.marker-head small,.marker-help{color:#64748b}.marker-close{background:#f8fafc;border-color:#dbe4ef;color:#334155}.marker-canvas-wrap{background:#f8fafc;border-color:#dbe4ef}.marker-toolbar input{accent-color:#2563eb}.videos,.video-card{border-color:#e1e8f0}.video-card{background:#fff}
.sidebar-backdrop{display:none}
#indicadores,#registros{scroll-margin-top:92px}
@media (max-width:1180px){.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-wide{grid-column:span 1}}
@media (max-width:960px){.app-sidebar{transform:translateX(-105%);transition:transform .22s ease;box-shadow:18px 0 45px rgba(15,23,42,.24)}.app-content{margin-left:0}.sidebar-toggle{display:grid;place-items:center}.sidebar-backdrop{position:fixed;inset:0;z-index:70;background:rgba(15,23,42,.46);opacity:0;pointer-events:none;transition:opacity .2s ease}.sidebar-open .app-sidebar{transform:translateX(0)}.sidebar-open .sidebar-backdrop{display:block;opacity:1;pointer-events:auto}.app-topbar{padding:11px 16px}.container{padding:22px 16px 28px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar-status{display:none}}
@media (max-width:560px){.page-head h1{font-size:23px}.stats-grid{grid-template-columns:1fr}.stat{min-height:92px}.filters label{min-width:100%}.filters .btn{width:100%}.card{padding:15px;border-radius:14px}.page-head.split{align-items:flex-start}.app-topbar{min-height:64px}.topbar-title strong{font-size:15px}}


/* V6.8 - QR Code e histórico por máquina */
.machine-context {
  margin-bottom: 14px;
}
.machine-hero {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) 170px;
  gap: 14px;
  align-items: center;
}
.machine-hero small,
.machine-qr-print small {
  display: block;
  color: var(--muted, #6b7280);
  margin-bottom: 4px;
}
.machine-hero strong {
  display: block;
  font-size: 1.1rem;
  line-height: 1.25;
}
.machine-qr-print {
  text-align: center;
}
.machine-qr-print img {
  width: 150px;
  height: 150px;
  border: 1px solid rgba(148, 163, 184, .45);
  border-radius: 12px;
  padding: 6px;
  background: #fff;
}
.machine-qr-list {
  display: grid;
  gap: 10px;
}
.machine-qr-row {
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 10px;
  align-items: center;
  padding: 10px;
  border: 1px solid rgba(148, 163, 184, .35);
  border-radius: 14px;
  background: rgba(248, 250, 252, .82);
}
.machine-qr-row img {
  width: 92px;
  height: 92px;
  border-radius: 8px;
  background: #fff;
}
.machine-qr-row small {
  display: block;
  color: var(--muted, #6b7280);
  margin-top: 2px;
}
.compact-bars .bar-row span {
  min-width: 170px;
}
.qr-print-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 16px;
}
.qr-print-card {
  background: #fff;
  border: 1px solid rgba(148, 163, 184, .55);
  border-radius: 18px;
  padding: 16px;
  text-align: center;
  box-shadow: 0 12px 30px rgba(15, 23, 42, .08);
}
.qr-print-card img {
  width: 190px;
  height: 190px;
  display: block;
  margin: 8px auto 10px;
}
.qr-print-card h2 {
  margin: 4px 0;
  font-size: 1.25rem;
}
.qr-print-card strong {
  display: block;
  line-height: 1.25;
}
.qr-print-card small {
  display: block;
  color: var(--muted, #6b7280);
  margin-top: 3px;
}
.qr-print-title {
  font-weight:700;
  letter-spacing: .08em;
  color: #0f172a;
  font-size: .8rem;
}
.qr-print-actions {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: 10px;
}
.desc {
  white-space: pre-wrap;
}
@media (max-width: 850px) {
  .machine-hero {
    grid-template-columns: 1fr;
  }
  .machine-qr-print {
    text-align: left;
  }
}
@media print {
  .no-print,
  .app-sidebar,
  .sidebar-backdrop,
  .topbar,
  .app-topbar,
  .mobile-menu-btn {
    display: none !important;
  }
  .app-body,
  .app-shell,
  .app-main,
  .container {
    background: #fff !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .qr-print-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10mm;
  }
  .qr-print-card {
    break-inside: avoid;
    box-shadow: none;
    border: 1px solid #222;
    border-radius: 8px;
    padding: 8mm;
  }
  .qr-print-card img {
    width: 42mm;
    height: 42mm;
  }
}

/* Divisores de seção — organizam telas longas em blocos claros, sem criar caixas novas */
.section-heading { margin: 26px 0 14px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.section-heading:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.section-heading.tight { margin-top: 6px; }
.dash-group-title { margin: 26px 0 10px; color: var(--muted); font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.dash-group-title:first-child { margin-top: 0; }

/* Fundo compartilhado com a pagina de assistencia tecnica. */
@media screen {
  body, body.app-body {
    background-image: url('/assistencia-tecnica/Dalca1.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
  }
  body.app-body::before { background: none; }
}
@media screen and (max-width: 700px) {
  body, body.app-body { background-attachment: scroll; }
}

/* Espaço para valores decimais de horas, sem alterar os gráficos de contagem. */
.bars-horas .bar-row{grid-template-columns:minmax(100px,1fr) minmax(40px,1fr) auto}
.bars-horas .bar-row b{white-space:nowrap}
@media(max-width:600px){.bars-horas .bar-row{grid-template-columns:1fr}.bars-horas .bar-row b{text-align:left}}
