/* ========================================
   VARIÁVEIS
======================================== */

:root {
  --navy: #062b58;
  --blue: #075fd7;
  --orange: #ff6a00;

  --bg: #081c3f;
  --text: #142033;
  --muted: #6d788a;
}


/* ========================================
   RESET / BASE
======================================== */

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: Inter, Arial, sans-serif;
  background: var(--bg);
  color: var(--text);
}

p {
  line-height: 1.5;
}


/* ========================================
   LAYOUT
======================================== */

.shell {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 20px;
}

.card {
  width: min(720px, 100%);
  background: #fff;
  border-radius: 24px;
  padding: 32px;
  box-shadow: 0 16px 50px #163b6a18;
}

.admin {
  max-width: 1250px;
  margin: auto;
  padding: 25px;
}


/* ========================================
   HERO
======================================== */

.hero {
  background: linear-gradient(145deg, #031e42, #0758ad);
  color: #fff;
}

.brand {
  font-weight: 900;
  letter-spacing: 0.05em;
}

.brand small {
  display: block;
  font-weight: 500;
  opacity: 0.8;
}

.hero h1 {
  font-size: clamp(38px, 7vw, 70px);
  line-height: 0.92;
  margin: 70px 0 18px;
  text-transform: uppercase;
}

.orange {
  color: var(--orange);
}


/* ========================================
   BOTÕES
======================================== */

.btn {
  border: 0;
  border-radius: 14px;
  padding: 16px 22px;
  font-size: 17px;
  font-weight: 800;
  cursor: pointer;
}

.primary {
  background: var(--blue);
  color: #fff;
}

.orangebtn {
  width: 100%;
  background: var(--orange);
  color: #fff;
}

.secondary {
  background: #eaf0f8;
  color: var(--navy);
}

.actions {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 24px;
}


/* ========================================
   STEPS / FORMULÁRIO
======================================== */

.step {
  display: none;
}

.step.active {
  display: block;
}

.progress {
  height: 7px;
  background: #e6ebf3;
  border-radius: 9px;
  overflow: hidden;
  margin: 18px 0 28px;
}

.progress span {
  display: block;
  height: 100%;
  background: var(--blue);
}

label {
  display: block;
  font-weight: 700;
  margin: 14px 0 7px;
}

input,
select,
textarea {
  width: 100%;
  padding: 14px;
  border: 1px solid #d5ddea;
  border-radius: 11px;
  font: inherit;
}

textarea {
  min-height: 110px;
}


/* ========================================
   MOTIVOS / OPÇÕES
======================================== */

.reasons {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.reason {
  padding: 20px 10px;
  border: 2px solid #e1e7f0;
  border-radius: 15px;
  text-align: center;
  font-weight: 800;
  cursor: pointer;
}

.reason.selected {
  border-color: var(--blue);
  background: #eef5ff;
  color: var(--blue);
}


/* ========================================
   SUCESSO
======================================== */

.success {
  text-align: center;
}

.check {
  width: 84px;
  height: 84px;
  display: grid;
  place-items: center;

  margin: 25px auto;

  border-radius: 50%;
  background: var(--orange);
  color: #fff;

  font-size: 48px;
}

.protocol {
  font-size: 28px;
  font-weight: 900;
  color: var(--blue);
}


/* ========================================
   ADMIN / DASHBOARD
======================================== */

.stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 15px;
}

.stat,
.panel {
  background: #fff;
  padding: 20px;
  border-radius: 16px;
  box-shadow: 0 6px 22px #163b6a10;
}

.stat strong {
  display: block;
  font-size: 32px;
  color: var(--blue);
}


/* ========================================
   TABELAS
======================================== */

table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 12px;
}

th,
td {
  text-align: left;
  padding: 12px;
  border-bottom: 1px solid #edf0f5;
  font-size: 14px;
}

.tablewrap {
  overflow-x: auto;
}


/* ========================================
   TOOLBAR
======================================== */

.toolbar {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.toolbar input,
.toolbar select {
  width: auto;
  flex: 1;
  min-width: 150px;
}


/* ========================================
   BADGES
======================================== */

.badge {
  padding: 6px 9px;
  border-radius: 10px;
  background: #eef4ff;
  font-weight: 700;
}


/* ========================================
   LOGIN / MENSAGENS
======================================== */

.login {
  max-width: 430px;
}

.error {
  color: #b42318;
}

.privacy {
  margin-top: 18px;
  font-size: 12px;
  color: var(--muted);
}


/* ========================================
   RESPONSIVIDADE
======================================== */

@media (max-width: 700px) {
  .card {
    padding: 22px;
  }

  .reasons {
    grid-template-columns: 1fr 1fr;
  }

  .stats {
    grid-template-columns: 1fr 1fr;
  }

  .admin {
    padding: 12px;
  }

  .tablewrap {
    overflow: auto;
  }
}
