:root{
  --azul:#151f44;
  --azul-2:#223062;
  --naranja:#ff7900;
  --fondo:#eef2f7;
  --card:#ffffff;
  --linea:#dce3ee;
  --texto:#07163d;
  --muted:#667085;
  --verde:#16a34a;
  --rojo:#dc2626;
}

*{
  box-sizing:border-box;
  margin:0;
  padding:0;
}

body{
  background:var(--fondo);
  color:var(--texto);
  font-family:Segoe UI, Arial, sans-serif;
}

button,
input,
select{
  font:inherit;
}

button{
  border:0;
}

.login-page{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px;
}

.login-card{
  width:min(460px,100%);
  background:var(--card);
  border:1px solid var(--linea);
  border-radius:10px;
  padding:34px;
  box-shadow:0 24px 70px rgba(21,31,68,.16);
}

.login-brand{
  text-align:center;
  margin-bottom:26px;
}

.login-brand img{
  width:170px;
  margin-bottom:18px;
}

.login-brand h1{
  color:var(--azul);
  font-size:32px;
  line-height:1.1;
}

.login-brand p{
  color:var(--muted);
  margin-top:8px;
  line-height:1.4;
}

.login-form{
  display:grid;
  gap:16px;
}

.login-form label{
  color:var(--azul);
  display:grid;
  gap:8px;
  font-weight:800;
}

.login-form input,
.toolbar input,
.toolbar select{
  border:1px solid var(--linea);
  border-radius:8px;
  outline:none;
  padding:14px;
  width:100%;
}

.login-form input:focus,
.toolbar input:focus,
.toolbar select:focus{
  border-color:var(--naranja);
  box-shadow:0 0 0 3px rgba(255,121,0,.16);
}

.login-form button,
.toolbar button,
.panel-head button,
.user-box button{
  background:var(--naranja);
  border-radius:8px;
  color:#fff;
  cursor:pointer;
  font-weight:800;
  padding:14px 18px;
}

.login-form button:disabled{
  background:#aab2c2;
  cursor:not-allowed;
}

.form-msg{
  color:var(--rojo);
  min-height:20px;
  font-size:14px;
}

.admin-shell{
  min-height:100vh;
  display:grid;
  grid-template-columns:280px minmax(0,1fr);
}

.sidebar{
  background:var(--azul);
  color:#fff;
  padding:22px;
  position:sticky;
  top:0;
  height:100vh;
  overflow:auto;
}

.brand{
  display:flex;
  gap:12px;
  align-items:center;
  padding-bottom:22px;
  border-bottom:1px solid rgba(255,255,255,.14);
  margin-bottom:18px;
}

.brand img{
  width:118px;
  background:#fff;
  border-radius:8px;
  padding:6px;
}

.brand strong,
.brand span{
  display:block;
}

.brand span{
  color:rgba(255,255,255,.72);
  font-size:13px;
}

.menu{
  display:grid;
  gap:8px;
}

.menu-btn{
  background:transparent;
  color:rgba(255,255,255,.78);
  border-radius:8px;
  cursor:pointer;
  font-weight:800;
  padding:13px 14px;
  text-align:left;
}

.menu-btn:hover,
.menu-btn.active{
  background:#fff;
  color:var(--azul);
}

.main{
  padding:26px;
  min-width:0;
}

.topbar{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  margin-bottom:24px;
}

.topbar h1{
  color:var(--azul);
  font-size:32px;
}

.topbar p{
  color:var(--muted);
  margin-top:4px;
}

.user-box{
  background:#fff;
  border:1px solid var(--linea);
  border-radius:10px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px;
  box-shadow:0 12px 30px rgba(21,31,68,.08);
}

.user-box span,
.user-box strong{
  display:block;
  white-space:nowrap;
}

.user-box strong{
  color:var(--muted);
  font-size:12px;
}

.user-box button{
  background:var(--azul);
  white-space:nowrap;
}

.content{
  display:grid;
  gap:18px;
}

.kpi-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}

.kpi-card,
.panel{
  background:#fff;
  border:1px solid var(--linea);
  border-radius:10px;
  box-shadow:0 14px 34px rgba(21,31,68,.07);
}

.kpi-card{
  padding:20px;
}

.kpi-card span{
  color:var(--muted);
  display:block;
  font-weight:700;
  margin-bottom:10px;
}

.kpi-card strong{
  color:var(--azul);
  display:block;
  font-size:32px;
  line-height:1.1;
}

.kpi-card small{
  color:var(--muted);
  display:block;
  margin-top:8px;
}

.panel-grid{
  display:grid;
  grid-template-columns:1.4fr .9fr;
  gap:18px;
}

.panel{
  padding:20px;
}

.panel-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin-bottom:16px;
}

.panel h2,
.panel-head h2{
  color:var(--azul);
  font-size:22px;
}

.panel-head button{
  padding:11px 14px;
}

.counter{
  background:#eef2f7;
  border-radius:999px;
  color:var(--azul);
  font-weight:800;
  padding:8px 12px;
}

.empty{
  background:#f8fafc;
  border:1px dashed #cbd5e1;
  border-radius:8px;
  color:var(--muted);
  line-height:1.45;
  padding:22px;
}

.timeline{
  display:grid;
  gap:12px;
}

.timeline div{
  border-left:4px solid var(--naranja);
  background:#f8fafc;
  border-radius:8px;
  padding:13px;
}

.timeline strong,
.timeline span{
  display:block;
}

.timeline span{
  color:var(--muted);
  margin-top:3px;
}

.toolbar{
  display:grid;
  grid-template-columns:minmax(260px,1fr) 220px auto;
  gap:12px;
}

.toolbar button{
  min-height:48px;
}

.table-wrap{
  overflow:auto;
}

table{
  width:100%;
  border-collapse:collapse;
  min-width:900px;
}

th,
td{
  border-bottom:1px solid var(--linea);
  padding:13px 12px;
  text-align:left;
}

th{
  color:var(--azul);
  font-size:13px;
  background:#f8fafc;
}

td{
  color:var(--texto);
}

.table-empty{
  color:var(--muted);
  text-align:center;
  padding:28px;
}

@media(max-width:1100px){
  .admin-shell{
    grid-template-columns:1fr;
  }

  .sidebar{
    position:static;
    height:auto;
  }

  .menu{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .kpi-grid,
  .panel-grid{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:760px){
  .main{
    padding:16px;
  }

  .topbar,
  .user-box{
    display:grid;
  }

  .kpi-grid,
  .panel-grid,
  .toolbar,
  .menu{
    grid-template-columns:1fr;
  }

  .user-box button{
    width:100%;
  }
}

.status-pill{
  border-radius:999px;
  display:inline-flex;
  font-size:12px;
  font-weight:800;
  padding:7px 10px;
  white-space:nowrap;
}

.status-pill.pending{
  background:#fff7ed;
  color:#c2410c;
}

td small{
  color:var(--muted);
  display:block;
  font-size:12px;
  margin-top:4px;
}

.table-action{
  background:var(--azul);
  border-radius:8px;
  color:#fff;
  cursor:pointer;
  font-weight:800;
  padding:9px 12px;
}

.admin-modal{
  position:fixed;
  inset:0;
  z-index:50;
  display:grid;
  place-items:center;
  padding:24px;
}

.admin-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(7,22,61,.55);
}

.admin-modal-card{
  background:#fff;
  border-radius:10px;
  box-shadow:0 24px 80px rgba(0,0,0,.22);
  max-height:88vh;
  overflow:auto;
  padding:24px;
  position:relative;
  width:min(920px,100%);
}

.admin-modal-card header{
  align-items:flex-start;
  border-bottom:1px solid var(--linea);
  display:flex;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
  padding-bottom:16px;
}

.admin-modal-card header span{
  color:var(--muted);
  font-weight:800;
}

.admin-modal-card header h2{
  color:var(--azul);
  font-size:30px;
}

.admin-modal-card header p{
  color:var(--muted);
  margin-top:4px;
}

.admin-modal-card header button{
  background:var(--azul);
  border-radius:8px;
  color:#fff;
  cursor:pointer;
  font-weight:800;
  padding:11px 14px;
}

.detail-grid-admin{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.detail-item-admin{
  background:#f8fafc;
  border:1px solid var(--linea);
  border-radius:8px;
  padding:14px;
}

.detail-item-admin span{
  color:var(--muted);
  display:block;
  font-size:12px;
  font-weight:800;
  margin-bottom:6px;
}

.detail-item-admin strong{
  color:var(--azul);
  display:block;
  overflow-wrap:anywhere;
}

.admin-link{
  background:var(--naranja);
  border-radius:8px;
  color:#fff;
  display:inline-flex;
  font-weight:800;
  margin-top:18px;
  padding:13px 16px;
  text-decoration:none;
}

@media(max-width:760px){
  .detail-grid-admin{
    grid-template-columns:1fr;
  }

  .admin-modal-card header{
    display:grid;
  }
}