/* =========================
   Admin UI común
   ========================= */

:root{
  --admin-bg:#f7f7f7;
  --admin-card:#ffffff;
  --admin-border:#dddddd;
  --admin-border-dark:#cccccc;
  --admin-text:#111111;
  --admin-muted:#666666;
  --admin-primary:#1f6feb;
  --admin-dark:#444444;
  --admin-danger:#b3261e;
  --admin-ok-bg:#e7f6ec;
  --admin-ok-border:#b7e0c1;
  --admin-warn-bg:#fff3cd;
  --admin-warn-border:#e6c46a;
  --admin-error-bg:#fdecec;
  --admin-error-border:#f3b5b5;
}

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

.admin-wrap{
  max-width:1150px;
  margin:0 auto;
}

.admin-wrap.wide{
  max-width:1350px;
}

.admin-card{
  background:var(--admin-card);
  border:1px solid var(--admin-border);
  border-radius:12px;
  padding:16px;
  margin-bottom:16px;
}

.admin-card.compact{
  padding:12px;
}

.admin-title{
  margin:0 0 10px 0;
  font-size:24px;
}

.admin-subtitle{
  margin:0 0 10px 0;
  font-size:20px;
}

.admin-muted{
  color:var(--admin-muted);
  font-size:13px;
}

.admin-small{
  color:var(--admin-muted);
  font-size:12px;
}

.admin-row{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:end;
}

.admin-row-top{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:flex-start;
}

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

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

.admin-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  margin-top:10px;
}

.admin-form label,
.admin-label{
  display:block;
  margin-top:8px;
  font-size:13px;
  color:#333333;
}

.admin-form input,
.admin-form select,
.admin-form textarea,
input.admin-input,
select.admin-input,
textarea.admin-input{
  width:100%;
  max-width:100%;
  padding:9px;
  border:1px solid var(--admin-border-dark);
  border-radius:10px;
  box-sizing:border-box;
  font-family:Arial,sans-serif;
}

.admin-form textarea,
textarea.admin-input{
  min-height:80px;
}

.admin-check{
  display:inline-flex;
  gap:6px;
  align-items:center;
  margin-top:8px;
  font-size:13px;
  color:#333333;
}

.admin-check input{
  width:auto;
}

button,
.admin-btn{
  display:inline-block;
  padding:10px 12px;
  border:0;
  border-radius:10px;
  background:var(--admin-primary);
  color:#ffffff;
  font-weight:700;
  cursor:pointer;
  text-decoration:none;
  font-family:Arial,sans-serif;
  line-height:1.2;
}

button:hover,
.admin-btn:hover{
  opacity:.92;
}

button.gray,
.admin-btn.gray{
  background:var(--admin-dark);
}

button.red,
.admin-btn.red{
  background:var(--admin-danger);
}

button.linklike{
  background:none;
  border:0;
  color:#0645ad;
  text-decoration:underline;
  cursor:pointer;
  padding:0;
  font:inherit;
}

button:disabled,
.admin-btn.disabled{
  opacity:.55;
  cursor:not-allowed;
}

.admin-table-wrap{
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

.admin-table-wrap table{
  min-width:1100px;
}

.admin-table-wrap.admin-table-wide table{
  min-width:1400px;
}

.admin-table-wrap.admin-table-xl table{
  min-width:1650px;
}

.admin-table-wrap table,
table.admin-table{
  border-collapse:collapse;
  width:100%;
  margin-bottom:18px;
}

.admin-table-wrap th,
.admin-table-wrap td,
table.admin-table th,
table.admin-table td{
  border:1px solid var(--admin-border-dark);
  padding:8px;
  vertical-align:top;
  word-break:normal;
  overflow-wrap:normal;
}

.admin-table-wrap th,
table.admin-table th{
  background:#eeeeee;
}

.admin-nowrap{
  white-space:nowrap;
}

.admin-table-wrap td.admin-text-long{
  white-space:normal;
  overflow-wrap:anywhere;
}

.admin-ok{
  padding:10px;
  border-radius:10px;
  background:var(--admin-ok-bg);
  border:1px solid var(--admin-ok-border);
  color:#1b5e20;
  font-weight:700;
}

.admin-error{
  padding:10px;
  border-radius:10px;
  background:var(--admin-error-bg);
  border:1px solid var(--admin-error-border);
  color:#b71c1c;
  font-weight:700;
}

.admin-warn{
  padding:10px;
  border-radius:10px;
  background:var(--admin-warn-bg);
  border:1px solid var(--admin-warn-border);
  color:#5f4700;
  font-weight:700;
}

.admin-pill{
  display:inline-block;
  padding:3px 8px;
  border-radius:999px;
  border:1px solid var(--admin-border);
  background:#f0f0f0;
  color:#333;
  font-size:12px;
  font-weight:700;
}

.admin-pill-ok{
  background:var(--admin-ok-bg);
  border-color:var(--admin-ok-border);
  color:#1b5e20;
}

.admin-pill-warn{
  background:var(--admin-warn-bg);
  border-color:var(--admin-warn-border);
  color:#5f4700;
}

.admin-pill-error{
  background:var(--admin-error-bg);
  border-color:var(--admin-error-border);
  color:#b71c1c;
}

details.admin-details{
  margin-top:12px;
}

details.admin-details summary{
  cursor:pointer;
  font-weight:700;
  font-size:18px;
}

details.admin-details .admin-details-content{
  margin-top:12px;
}

.admin-section-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:10px;
}

.admin-inline-form{
  display:inline;
  margin:0;
}

.admin-no-margin{
  margin:0;
}

.admin-mt-8{
  margin-top:8px;
}

.admin-mt-10{
  margin-top:10px;
}

.admin-mt-12{
  margin-top:12px;
}

.admin-mb-0{
  margin-bottom:0;
}

.admin-mb-10{
  margin-bottom:10px;
}

@media(max-width:900px){
  body{
    margin:10px;
  }

  .admin-grid-2,
  .admin-grid-3{
    grid-template-columns:1fr;
  }

  .admin-title{
    font-size:22px;
  }

  .admin-subtitle{
    font-size:18px;
  }

  button,
  .admin-btn{
    width:auto;
  }
}