:root{
  --primary-blue:#003366;
  --secondary-blue:#0056b3;
  --accent-blue:#87cefa;
  --light-blue:#e3f2fd;
  --white:#ffffff;
  --gray-50:#f8fafc;
  --gray-100:#f1f5f9;
  --gray-200:#e2e8f0;
  --gray-300:#cbd5e1;
  --gray-400:#94a3b8;
  --gray-500:#64748b;
  --gray-600:#475569;
  --gray-700:#334155;
  --success:#10b981;
  --error:#ef4444;

  --r-sm:8px; --r-lg:12px; --r-xl:16px;
  --shadow-lg:0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);
  --shadow-xl:0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);
  --t: all .3s cubic-bezier(.4,0,.2,1);
}

*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:'Inter',system-ui,Segoe UI,Roboto,sans-serif;
  background:linear-gradient(135deg,var(--primary-blue) 0%,#004080 100%);
  color:var(--gray-700);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
.page{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:20px;position:relative;overflow:hidden}
.background-pattern{
  position:absolute;inset:0;
  background-image:
    radial-gradient(circle at 25% 25%, rgba(255,255,255,.10) 0%, transparent 50%),
    radial-gradient(circle at 75% 75%, rgba(135,206,250,.10) 0%, transparent 50%);
  pointer-events:none;
}
.content-wrapper{
  width:100%;max-width:1000px;background:var(--white);
  padding:48px;border-radius:var(--r-xl);box-shadow:var(--shadow-xl);
  display:flex;flex-direction:column;gap:32px;position:relative
}
.header{ text-align:center; color:var(--primary-blue); }

.header-badge{
  width:86px;height:86px;border-radius:50%;
  margin:0 auto 20px auto;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--secondary-blue),var(--accent-blue));
  box-shadow:var(--shadow-lg);
  animation:pulse 2s infinite;
}
.badge-logo{ width:72%;height:72%; object-fit:contain; filter:drop-shadow(0 1px 1px rgba(0,0,0,.25)); }

.header-icon{
  width:86px;height:86px;border-radius:50%;
  margin:0 auto 20px auto;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--secondary-blue),var(--accent-blue));
  box-shadow:var(--shadow-lg);
  animation:pulse 2s infinite;
}
.header-icon i{ color:#fff; font-size:1.6rem; }
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}

.header h1{
  font-size:3rem;font-weight:700;margin-bottom:8px;
  background:linear-gradient(135deg,var(--primary-blue),var(--secondary-blue));
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.brand-text{font-size:1.1rem;color:var(--gray-600)}

.filters-container{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px
}
.filter-group{position:relative}
.filter-group.full-row{ grid-column:1 / -1; }
.filter-group label{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-weight:600;color:var(--primary-blue)}
.select-wrapper{position:relative}
.filter-group select,
.filter-group input[type="datetime-local"]{
  width:100%;padding:16px 20px;border:2px solid var(--gray-200);
  border-radius:var(--r-sm);font-size:1rem;background:#fff;color:var(--gray-700);
  transition:var(--t); appearance:none;
}
.filter-group select:focus,
.filter-group input[type="datetime-local"]:focus{
  outline:none;border-color:var(--secondary-blue);
  box-shadow:0 0 0 3px rgba(0,86,179,.10); transform:translateY(-1px);
}
.filter-group select:hover,
.filter-group input[type="datetime-local"]{ border-color:var(--gray-300) }
.select-arrow{position:absolute;right:16px;top:50%;transform:translateY(-50%);color:var(--gray-400);pointer-events:none}

/* ===== Chips multiselect ===== */
.chips-select{
  position:relative;
  border:2px solid var(--gray-200); border-radius:var(--r-sm); background:var(--gray-50);
  padding:8px 10px; min-height:52px; display:flex; flex-wrap:wrap; gap:8px; align-items:center;
}
.chips-selected{display:flex;flex-wrap:wrap;gap:8px}
.chips-select input{
  border:none;background:transparent;outline:none;padding:8px 6px;min-width:160px;color:var(--gray-700)
}
.chip{
  display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--gray-200);
  padding:6px 10px;border-radius:999px;font-size:.92rem; box-shadow:0 1px 2px rgba(0,0,0,.05)
}
.chip .remove{background:none;border:none;cursor:pointer;color:var(--gray-400)}

.chips-dropdown{
  position:absolute;z-index:999; left:0; right:0; top:100%;
  margin-top:6px;
  background:#fff;border:1px solid var(--gray-200);
  border-radius:10px;box-shadow:var(--shadow-lg);
  max-height:300px;overflow:auto;
  display:none; /* começa fechado */
}
.chips-item{ padding:10px 12px; cursor:pointer; display:flex; gap:10px; align-items:center; transition:var(--t) }
.chips-item:hover{ background:var(--light-blue) }
.chips-item small{ color:var(--gray-500) }
.chips-item .opt-badge{
  width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--secondary-blue),var(--accent-blue));
  color:#fff;font-weight:700;font-size:.9rem;
}
.chips-item .opt-text{ display:flex;flex-direction:column;gap:2px }
.chips-item .opt-action{ margin-left:auto;color:var(--secondary-blue);opacity:.8 }
.chips-item.is-selected .opt-action{ color:var(--success) }
.chips-item.is-selected{ background:rgba(16,185,129,.08) }

.chips-helper{color:var(--gray-500);font-size:.9rem;margin-top:6px}

/* ===== CTA / Ações ===== */
.filter-actions{text-align:center}

/* ---- Botão premium com loading real ---- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-width:200px;padding:16px 28px;border:none;cursor:pointer;
  border-radius:14px;font-weight:600;transition:var(--t); position:relative; overflow:hidden;
  color:#fff; box-shadow:var(--shadow-lg);
}
.btn.btn-primary{
  background:linear-gradient(135deg,var(--secondary-blue),var(--primary-blue));
  border:1px solid rgba(255,255,255,.15);
}
.btn:hover{transform:translateY(-2px); box-shadow:var(--shadow-xl)}
.btn:disabled{opacity:.7; cursor:not-allowed; transform:none}

/* elementos internos do botão */
.btn .btn-icon{display:inline-flex}
.btn .btn-label{display:inline}
.btn .btn-label-loading{display:none}
.btn .btn-spinner{
  display:none;width:18px;height:18px;border-radius:50%;
  border:2px solid rgba(255,255,255,.35); border-top-color:#fff;
  animation:spin .9s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

/* faixa de progresso animada enquanto carrega */
.btn .btn-progress{
  position:absolute;inset:0; pointer-events:none; opacity:0;
  background:
    repeating-linear-gradient(45deg, rgba(255,255,255,.14) 0 10px, rgba(255,255,255,.08) 10px 20px);
  transform:translateX(-100%);
  transition:transform .6s ease, opacity .2s ease;
}
.btn.loading .btn-progress{
  opacity:1;
  animation:progressShift 1.2s linear infinite;
}
@keyframes progressShift{
  0%{transform:translateX(-100%)}
  100%{transform:translateX(0%)}
}

/* estados quando loading */
.btn.loading .btn-icon,
.btn.loading .btn-label{ display:none }
.btn.loading .btn-label-loading,
.btn.loading .btn-spinner{ display:inline-flex }

/* ===== stepper criar o.s. ===== */
.hidden{display:none}
.os-progress{
  display:flex;align-items:center;gap:12px;margin-top:12px;
  padding:12px 16px;background:#fff;border-radius:14px;box-shadow:var(--shadow-lg);
  border:1px solid rgba(0,0,0,.05)
}
.os-progress .bar{
  height:2px;flex:1;background:linear-gradient(90deg,var(--secondary-blue),var(--accent-blue));
  opacity:.35;border-radius:2px
}
.os-step{display:flex;align-items:center;gap:8px}
.os-step .dot{width:10px;height:10px;border-radius:999px;background:var(--gray-300)}
.os-step.active .dot{background:var(--secondary-blue);animation:pulse 1s infinite}
.os-step.ok .dot{background:var(--success)}
.os-step.error .dot{background:var(--error)}
.os-step .label{font-weight:600;color:var(--primary-blue)}
.os-step .hint{margin-left:4px;font-size:12px;color:var(--gray-600)}

/* link pós-ação */
.after-link{ margin-top:10px; text-align:center; }
.after-link a{
  display:inline-flex;align-items:center;gap:8px;padding:10px 16px;
  background:linear-gradient(135deg,var(--success),#059669); color:#fff; text-decoration:none;
  border-radius:var(--r-sm); box-shadow:var(--shadow-lg); transition:var(--t)
}
.after-link a:hover{ transform:translateY(-2px) }

/* snackbar */
.snackbar{
  visibility:hidden;position:fixed;left:50%;bottom:24px;transform:translateX(-50%);
  background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-lg);
  padding:16px;display:flex;gap:14px;align-items:center;box-shadow:var(--shadow-xl);z-index:1000
}
.snackbar.show{visibility:visible;animation:slideUp .35s ease}
@keyframes slideUp{from{opacity:0;transform:translateX(-50%) translateY(60px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
.snackbar-icon{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--success),#059669)}
.snackbar-icon i{color:#fff}
.snackbar-content{display:flex;flex-direction:column;gap:6px}
.snackbar-action{display:flex;align-items:center;gap:6px;color:var(--secondary-blue);text-decoration:none;font-weight:600}
.snackbar-close{background:none;border:none;color:var(--gray-400);font-size:1.1rem;cursor:pointer;padding:6px;border-radius:50%}
.snackbar-close:hover{background:var(--gray-100)}

@media (max-width:768px){
  .content-wrapper{padding:24px}
  .header h1{font-size:2.3rem}
  .header-badge,.header-icon{width:70px;height:70px}
  .filters-container{grid-template-columns:1fr}
}