@font-face{
  font-family:'Cranio';
  src:url('../assets/fonts/Cranio.otf') format('opentype');
  font-weight:400; font-style:normal; font-display:swap;
}
:root{
  --azul-principal:#2C4A5D;
  --azul-profundo:#1A2C37;
  --rose:#8E4E4A;
  --terracota:#C66034;
  --dourado:#C09C61;
  --off-white:#EEEAE3;
  --font-display:'Cranio', Georgia, serif;
  --font-body:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:var(--font-body);
  background:var(--off-white);
  color:var(--azul-profundo);
  min-height:100vh;
}
a{color:inherit;}
.admin-header{
  background:var(--azul-profundo);
  color:var(--off-white);
  padding:18px 32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px;
}
.admin-header .brand{
  font-family:var(--font-display);
  font-size:22px;
  letter-spacing:.5px;
}
.admin-header nav{
  display:flex;
  gap:22px;
  align-items:center;
  font-size:14px;
}
.admin-header nav a{
  text-decoration:none;
  color:rgba(238,234,227,.8);
  transition:color .2s;
}
.admin-header nav a:hover, .admin-header nav a.active{color:#fff;}
.admin-header .logout-btn{
  background:var(--terracota);
  color:#fff;
  border:none;
  padding:8px 16px;
  border-radius:8px;
  font-size:13px;
  cursor:pointer;
  text-decoration:none;
}
.admin-wrap{
  max-width:1180px;
  margin:0 auto;
  padding:40px 24px 80px;
}
.auth-shell{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:linear-gradient(160deg, var(--azul-profundo), var(--azul-principal));
}
.auth-card{
  background:#fff;
  border-radius:20px;
  width:100%;
  max-width:420px;
  padding:40px 36px;
  box-shadow:0 20px 60px rgba(0,0,0,.25);
}
.auth-card .brand{
  font-family:var(--font-display);
  font-size:28px;
  color:var(--azul-profundo);
  text-align:center;
  margin-bottom:4px;
}
.auth-card .sub{
  text-align:center;
  color:#6a7880;
  font-size:14px;
  margin-bottom:28px;
}
.field{margin-bottom:18px;}
.field label{
  display:block;
  font-size:13px;
  font-weight:600;
  color:var(--azul-profundo);
  margin-bottom:6px;
}
.field input, .field select{
  width:100%;
  padding:12px 14px;
  border-radius:10px;
  border:1px solid #d7dde0;
  font-size:15px;
  font-family:inherit;
  background:#fbfbfa;
}
.field input:focus, .field select:focus{
  outline:none;
  border-color:var(--azul-principal);
  background:#fff;
}
.btn{
  display:inline-block;
  border:none;
  border-radius:10px;
  padding:13px 22px;
  font-size:15px;
  font-weight:600;
  cursor:pointer;
  text-decoration:none;
  text-align:center;
}
.btn-primary{background:var(--terracota); color:#fff; width:100%;}
.btn-primary:hover{background:#ab5229;}
.btn-outline{background:transparent; border:1px solid var(--azul-principal); color:var(--azul-principal);}
.link-sm{
  display:block;
  text-align:center;
  margin-top:18px;
  font-size:13px;
  color:var(--azul-principal);
  text-decoration:none;
}
.link-sm:hover{text-decoration:underline;}
.alert{
  padding:12px 16px;
  border-radius:10px;
  font-size:14px;
  margin-bottom:18px;
}
.alert-erro{background:#fbe9e7; color:#8E4E4A; border:1px solid #e4b8b2;}
.alert-ok{background:#e9f3ec; color:#2f6b48; border:1px solid #b9dcc4;}
.card{
  background:#fff;
  border-radius:16px;
  padding:28px;
  box-shadow:0 8px 24px rgba(26,44,55,.06);
  margin-bottom:24px;
}
.card h2{margin-top:0; font-size:19px;}
table{
  width:100%;
  border-collapse:collapse;
  font-size:14px;
}
th, td{
  text-align:left;
  padding:12px 10px;
  border-bottom:1px solid #eee;
  vertical-align:middle;
}
th{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.4px;
  color:#7a8890;
}
tr:hover td{background:#faf9f7;}
.badge{
  display:inline-block;
  padding:4px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:600;
}
.badge-alto{background:#e9f3ec; color:#2f6b48;}
.badge-medio{background:#fbf3e0; color:#8a6a1f;}
.badge-baixo{background:#fbe9e7; color:#8E4E4A;}
select.status-select{
  padding:8px 10px;
  border-radius:8px;
  border:1px solid #d7dde0;
  font-size:13px;
  font-family:inherit;
  background:#fbfbfa;
  cursor:pointer;
}
.status-nao_contatado{color:#8a6a1f;}
.status-ja_contatado{color:#2c6a8f;}
.status-negocio_fechado{color:#2f6b48;}
.status-negocio_nao_fechado{color:#8E4E4A;}
.top-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:16px;
  margin-bottom:28px;
}
.top-row h1{margin:0; font-family:var(--font-display); font-size:26px;}
.stats-row{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:16px;
  margin-bottom:28px;
}
.stat-box{
  background:#fff;
  border-radius:14px;
  padding:18px 20px;
  box-shadow:0 6px 18px rgba(26,44,55,.05);
}
.stat-box .num{font-size:26px; font-weight:700; color:var(--azul-profundo);}
.stat-box .lbl{font-size:12px; color:#7a8890; text-transform:uppercase; letter-spacing:.4px;}
.empty-state{
  text-align:center;
  padding:60px 20px;
  color:#8a97a0;
}
.detail-btn{
  background:none;
  border:1px solid var(--azul-principal);
  color:var(--azul-principal);
  border-radius:8px;
  padding:6px 12px;
  font-size:12px;
  cursor:pointer;
}
.modal-bg{
  display:none;
  position:fixed; inset:0;
  background:rgba(26,44,55,.55);
  align-items:center; justify-content:center;
  padding:24px;
  z-index:50;
}
.modal-bg.open{display:flex;}
.modal-box{
  background:#fff;
  border-radius:16px;
  max-width:640px;
  width:100%;
  max-height:80vh;
  overflow-y:auto;
  padding:28px 32px;
}
.modal-box h3{margin-top:0; font-family:var(--font-display); color:var(--azul-profundo);}
.modal-box .close-x{
  float:right;
  cursor:pointer;
  font-size:20px;
  color:#8a97a0;
}
.detail-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; font-size:13px; margin-top:14px;}
.detail-grid div span{display:block; color:#8a97a0; font-size:11px; text-transform:uppercase; margin-bottom:2px;}
@media (max-width:640px){
  .detail-grid{grid-template-columns:1fr;}
  table, thead, tbody, th, td, tr{display:block;}
  thead{display:none;}
  tr{margin-bottom:14px; background:#fff; border-radius:12px; padding:10px; box-shadow:0 4px 12px rgba(0,0,0,.05);}
  td{border:none; padding:6px 4px;}
}
