:root{
  --brand:#123c7c;
  --brand-2:#0f6fbf;
  --brand-3:#00a0a8;
  --accent:#ffb703;
  --ink:#172033;
  --muted:#637083;
  --soft:#f3f6fb;
  --card:#ffffff;
}
*{box-sizing:border-box}
body{background:linear-gradient(180deg,#eef4ff 0%,#f7f9fc 42%,#ffffff 100%);color:var(--ink)}
a{text-decoration:none}.card{border:0;border-radius:18px;box-shadow:0 10px 28px rgba(18,60,124,.08)}.btn{border-radius:12px;font-weight:700}.form-control,.form-select{border-radius:12px;border-color:#d7e0ec}.form-control:focus,.form-select:focus{border-color:var(--brand-2);box-shadow:0 0 0 .22rem rgba(15,111,191,.16)}
.app-navbar{background:linear-gradient(90deg,#0b2f66 0%,#0f6fbf 62%,#00a0a8 100%);box-shadow:0 10px 30px rgba(11,47,102,.22)}
.brand-mark{width:38px;height:38px;border-radius:12px;background:#fff;color:#0b4f9c;display:inline-flex;align-items:center;justify-content:center;font-size:.86rem;letter-spacing:.5px;box-shadow:0 8px 20px rgba(0,0,0,.12)}
.navbar .nav-link{font-weight:650;opacity:.92}.navbar .nav-link:hover{opacity:1}.nav-pill{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);border-radius:999px;padding-left:1rem!important;padding-right:1rem!important}.nav-pill:hover{background:rgba(255,255,255,.24)}
.home-hero{position:relative;overflow:hidden;border-radius:30px;background:radial-gradient(circle at 82% 20%,rgba(255,183,3,.34),transparent 30%),linear-gradient(135deg,#092a5c 0%,#0f6fbf 58%,#00a0a8 100%);color:#fff;box-shadow:0 22px 60px rgba(15,111,191,.28)}
.home-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.12),transparent 72%)}.home-hero:after{content:"";position:absolute;right:-95px;bottom:-115px;width:330px;height:330px;border-radius:50%;background:rgba(255,255,255,.12);border:34px solid rgba(255,255,255,.09)}
.hero-content{position:relative;z-index:1;padding:54px}.hero-kicker{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.17);border:1px solid rgba(255,255,255,.24);padding:.5rem .8rem;border-radius:999px;font-weight:800;margin-bottom:1rem}.hero-text{font-size:1.12rem;color:rgba(255,255,255,.84);max-width:720px}.hero-btn-main{color:#0c4c92!important;box-shadow:0 12px 24px rgba(0,0,0,.18)}.hero-panel{background:rgba(255,255,255,.94);color:var(--ink);border-radius:24px;padding:28px;box-shadow:0 22px 44px rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.5)}.hero-panel p{color:var(--muted)}.panel-icon{width:46px;height:46px;border-radius:16px;background:linear-gradient(135deg,#10b981,#00a0a8);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:900;margin-bottom:1rem}.protocol-preview{background:#0b2f66;color:#fff;border-radius:16px;padding:14px 16px;font-size:1.25rem;font-weight:800;letter-spacing:.06rem;text-align:center}
.action-card{height:100%;display:flex;flex-direction:column;gap:.55rem;background:#fff;border-radius:22px;padding:24px;color:var(--ink);border:1px solid rgba(18,60,124,.08);box-shadow:0 12px 32px rgba(18,60,124,.08);transition:.18s ease}.action-card:hover{transform:translateY(-4px);box-shadow:0 18px 38px rgba(18,60,124,.14);color:var(--ink)}.action-card small{color:var(--muted);line-height:1.35}.action-icon{width:48px;height:48px;border-radius:16px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.5rem;font-weight:900}.action-card.primary .action-icon{background:linear-gradient(135deg,#0f6fbf,#123c7c)}.action-card.success .action-icon{background:linear-gradient(135deg,#00a0a8,#10b981)}.action-card.warning .action-icon{background:linear-gradient(135deg,#ffb703,#f97316)}
.info-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;overflow:hidden;border-radius:20px;background:#dfe7f2;border:1px solid #dfe7f2}.info-strip>div{background:rgba(255,255,255,.9);padding:18px 20px}.info-strip strong{display:block;color:#0b2f66}.info-strip span{display:block;color:var(--muted);font-size:.92rem;margin-top:.2rem}
.badge-status{font-size:.78rem;padding:.45rem .65rem;border-radius:999px}.status-aberto{background:#fff3cd;color:#664d03}.status-em_atendimento{background:#cff4fc;color:#055160}.status-aguardando_informacao{background:#e2e3e5;color:#41464b}.status-resolvido{background:#d1e7dd;color:#0f5132}.status-cancelado{background:#f8d7da;color:#842029}.hero{min-height:360px;display:flex;align-items:center}.queue-number{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f6fbf,#123c7c);color:white;font-weight:800}.table td,.table th{vertical-align:middle}.required:after{content:' *';color:#dc3545}
@media (max-width:991px){.hero-content{padding:34px}.home-hero{border-radius:22px}.info-strip{grid-template-columns:1fr}.nav-pill{margin-top:.35rem;display:inline-block}.display-5{font-size:2.1rem}}
@media (max-width:575px){main.container{padding-left:14px;padding-right:14px}.hero-content{padding:28px 22px}.home-hero{border-radius:18px}.hero-text{font-size:1rem}.protocol-preview{font-size:1rem}.action-card{padding:20px}}
.brand-logo{height:42px;max-width:180px;object-fit:contain;background:rgba(255,255,255,.92);border-radius:12px;padding:5px 8px;box-shadow:0 8px 20px rgba(0,0,0,.10)}
.config-image-preview{border:1px dashed #cbd5e1;border-radius:16px;padding:12px;background:#f8fafc}.config-image-preview img{max-width:100%;height:110px;object-fit:contain;border-radius:12px;background:#fff;padding:8px;border:1px solid #e5e7eb}.mini-preview{overflow:hidden;border-radius:22px;border:1px solid #dfe7f2;background:#fff;box-shadow:0 12px 28px rgba(18,60,124,.08)}.mini-bar{height:46px;background:linear-gradient(90deg,var(--p),var(--s),var(--d))}.mini-hero{min-height:220px;padding:24px;background:radial-gradient(circle at 82% 16%,color-mix(in srgb,var(--a) 45%,transparent),transparent 28%),linear-gradient(135deg,var(--p),var(--s),var(--d));color:#fff}.mini-hero span{display:inline-block;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.26);border-radius:999px;padding:.35rem .65rem;font-weight:800;font-size:.78rem;margin-bottom:.9rem}.mini-hero strong{display:block;font-size:1.3rem;line-height:1.15;margin-bottom:.7rem}.mini-hero small{display:block;color:rgba(255,255,255,.84);line-height:1.35}.form-control-color{height:48px;padding:.45rem}

/* Login responsivo e centralizado */
body.page-login{
  min-height:100vh;
}
body.page-login main.container{
  min-height:calc(100vh - 78px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding-top:32px!important;
  padding-bottom:32px!important;
}
.login-wrap{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.login-card{
  width:100%;
  max-width:440px;
  margin:0 auto;
  border-radius:24px;
  box-shadow:0 22px 56px rgba(18,60,124,.16);
  overflow:hidden;
}
.login-icon{
  width:62px;
  height:62px;
  border-radius:20px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,var(--brand),var(--brand-2),var(--brand-3));
  color:#fff;
  font-weight:900;
  letter-spacing:.06rem;
  box-shadow:0 14px 28px rgba(15,111,191,.26);
}
body.page-login .navbar{
  position:relative;
  z-index:2;
}
body.page-login .card{
  border:1px solid rgba(255,255,255,.64);
}
@media (max-width:575px){
  body.page-login main.container{
    min-height:calc(100vh - 72px);
    padding-left:18px;
    padding-right:18px;
  }
  .login-card{
    max-width:100%;
    border-radius:20px;
  }
}

/* Gráfico do painel: execução por técnico */
.exec-bar-wrap{
  width:100%;
  height:14px;
  border-radius:999px;
  background:#e9eef7;
  overflow:hidden;
  box-shadow:inset 0 1px 2px rgba(15,23,42,.08);
}
.exec-bar{
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,var(--brand),var(--brand-2),var(--brand-3));
  box-shadow:0 6px 16px rgba(15,111,191,.18);
}
.grafico-execucao-tecnico .fw-semibold{
  max-width:210px;
}

/* Gráfico de pizza: execução por técnico */
.pie-report-wrap{
  display:flex;
  justify-content:center;
  align-items:center;
  padding:12px 0 6px;
}
.pie-chart{
  width:210px;
  height:210px;
  border-radius:50%;
  position:relative;
  box-shadow:0 18px 36px rgba(18,60,124,.14);
}
.pie-chart::after{
  content:"";
  position:absolute;
  inset:18px;
  border-radius:50%;
  background:#fff;
  box-shadow:inset 0 0 0 1px rgba(18,60,124,.06);
}
.pie-center{
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.pie-center strong{
  font-size:2rem;
  line-height:1;
  color:#0b2f66;
}
.pie-center span{
  font-size:.8rem;
  color:var(--muted);
  margin-top:4px;
}
.pie-legend{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.pie-legend-item{
  display:grid;
  grid-template-columns:14px minmax(0,1fr) auto auto;
  gap:8px;
  align-items:center;
  font-size:.86rem;
  padding:6px 0;
  border-bottom:1px solid #eef2f7;
}
.pie-dot{
  width:12px;
  height:12px;
  border-radius:50%;
  display:inline-block;
}
.pie-name{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.pie-legend-item small{
  color:var(--muted);
  min-width:46px;
  text-align:right;
}

/* Seleção real de múltiplos técnicos no atendimento */
.tecnicos-checklist{
  max-height:260px;
  overflow:auto;
  border:1px solid #dbe4f0;
  border-radius:14px;
  background:#f8fafc;
  padding:8px;
}
.tecnico-check-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:12px;
  cursor:pointer;
  margin:0;
  transition:.16s ease;
  color:#0f172a;
}
.tecnico-check-item:hover{
  background:#eef6ff;
}
.tecnico-check-item input{
  margin:0;
  flex:0 0 auto;
}
.tecnico-check-item.is-checked,
.tecnico-check-item:has(input:checked){
  background:#e8f1ff;
  box-shadow:inset 0 0 0 1px rgba(37,99,235,.18);
  font-weight:600;
}

/* Barras coloridas do relatório de execução por técnico */
.exec-tecnico-row{
  min-width:0;
}
.exec-bar-wrap{
  height:16px;
}
.exec-bar{
  transition:width .3s ease;
}
