/* admin.css — estilos del panel de administrador.
   Se carga junto con style.css (comparten variables y botones). */

/* El navegador pinta checkboxes y radios sin estilo con un azul por
   defecto; en todo el panel de admin los queremos en negro, como el
   resto de la marca (esto es lo que arregla las "letras azules" del
   check "Producto activo" / "Obligatorio" en Editar producto). */
input[type="checkbox"],
input[type="radio"] {
  accent-color: var(--black);
}

.admin-body {
  background: var(--gray-50);
  min-height: 100vh;
}

.admin-login-body {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.admin-login-box {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  padding: 2rem;
  width: 100%;
  max-width: 360px;
  box-shadow: var(--shadow);
}

.admin-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.admin-form label {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--gray-800);
}

.admin-form input,
.admin-form textarea,
.admin-form select {
  font-family: var(--font);
  font-size: 0.95rem;
  padding: 0.6rem 0.75rem;
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-sm);
  background: var(--white);
}

.admin-form input:focus,
.admin-form textarea:focus,
.admin-form select:focus {
  outline: none;
  border-color: var(--black);
}

.admin-shell {
  display: flex;
  align-items: stretch;
  min-height: 100vh;
}

.admin-sidebar {
  flex: 0 0 226px;
  width: 226px;
  background: var(--black);
  color: var(--white);
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
  z-index: 10;
}

.admin-sidebar-brand {
  padding: 1.5rem 1.25rem 1.1rem;
  display: flex;
  align-items: baseline;
  gap: 0.4rem;
}

.admin-sidebar-brand .brand-mark,
.admin-sidebar-brand .brand-sub {
  color: var(--white);
}

.admin-sidebar-nav {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.4rem 0.75rem;
  flex: 1;
}

.admin-sidebar-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.6rem 0.75rem;
  border-radius: var(--radius-sm);
  text-decoration: none;
  color: var(--gray-400);
  font-size: 0.86rem;
  font-weight: 600;
  transition: background 0.15s ease, color 0.15s ease;
}

.admin-sidebar-link:hover {
  color: var(--white);
  background: rgba(255, 255, 255, 0.07);
}

.admin-sidebar-link.active {
  color: var(--black);
  background: var(--white);
}

.admin-sidebar-icon {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}

.admin-sidebar-footer {
  padding: 0.75rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.admin-sidebar-logout {
  color: var(--gray-400);
}

.admin-sidebar-logout:hover {
  color: var(--white);
  background: rgba(255, 255, 255, 0.07);
}

.admin-content {
  flex: 1 1 auto;
  min-width: 0;
}

.admin-main {
  max-width: 1180px;
  margin: 0 auto;
  padding: 1.75rem 2rem 4rem;
}

.admin-main h1 {
  margin: 0 0 1.25rem;
  font-size: 1.5rem;
}

.admin-page-head {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  margin-bottom: 1rem;
}

.admin-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.filter-chip {
  text-decoration: none;
  border: 1.5px solid var(--gray-200);
  border-radius: 999px;
  padding: 0.35rem 0.9rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--gray-800);
}

.filter-chip.active {
  background: var(--black);
  border-color: var(--black);
  color: var(--white);
}

.admin-empty {
  color: var(--gray-600);
  padding: 2rem 0;
  text-align: center;
}

.admin-section {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}

.admin-section h2 {
  margin-top: 0;
  font-size: 1.1rem;
}

.admin-hint {
  color: var(--gray-600);
  font-size: 0.85rem;
  margin-top: -0.5rem;
}

/* Pista corta DENTRO de un <label>, antes del campo. */
.admin-form label .admin-hint {
  display: block;
  margin: 2px 0 6px;
  font-weight: 400;
  line-height: 1.45;
}

.admin-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1rem;
}

.admin-table th {
  text-align: left;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--gray-600);
  padding: 0.4rem 0.5rem;
  border-bottom: 2px solid var(--gray-200);
}

.admin-table td {
  padding: 0.4rem 0.5rem;
  border-bottom: 1px solid var(--gray-100);
  vertical-align: middle;
}

.admin-table input[type="text"],
.admin-table input[type="number"],
.admin-table select {
  width: 100%;
  font-family: var(--font);
  font-size: 0.88rem;
  padding: 0.4rem 0.55rem;
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-sm);
}

.admin-table input:focus,
.admin-table select:focus {
  outline: none;
  border-color: var(--black);
}

.btn-icon-danger {
  border: none;
  background: none;
  color: #b3261e;
  cursor: pointer;
  font-size: 1rem;
  padding: 0.2rem 0.4rem;
}

.admin-add-form {
  margin-top: 1rem;
  border-top: 1px dashed var(--gray-200);
  padding-top: 1rem;
}

.admin-add-form summary {
  cursor: pointer;
  font-weight: 700;
  font-size: 0.9rem;
  margin-bottom: 0.8rem;
}

.admin-add-form form {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  align-items: flex-end;
}

.admin-add-form label {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--gray-800);
}

.admin-add-form input,
.admin-add-form select {
  font-family: var(--font);
  font-size: 0.9rem;
  padding: 0.5rem 0.7rem;
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-sm);
}

.admin-search {
  width: 100%;
  font-family: var(--font);
  font-size: 0.95rem;
  padding: 0.6rem 0.9rem;
  border: 1.5px solid var(--gray-200);
  border-radius: 999px;
  margin-bottom: 1rem;
}

.admin-search:focus {
  outline: none;
  border-color: var(--black);
}

/* Filas expandibles de la tabla de cupones: se ve un resumen en una fila y,
   al hacer clic, se abre el formulario de edición completo debajo. */
.coupon-row {
  width: 100%;
}

.coupon-row-summary {
  display: grid;
  grid-template-columns: 1.1fr 1fr 0.8fr 1fr 1fr 0.8fr 0.9fr auto;
  gap: 0.5rem;
  align-items: center;
  padding: 0.6rem 0.5rem;
  cursor: pointer;
  list-style: none;
  font-size: 0.88rem;
}

.coupon-row-summary::-webkit-details-marker {
  display: none;
}

.coupon-code {
  font-weight: 700;
}

.coupon-row-toggle {
  color: var(--gray-600);
  font-size: 0.82rem;
  text-align: right;
}

.coupon-row[open] .coupon-row-toggle::after {
  content: '';
}

.coupon-row-body {
  padding: 0.8rem 0.5rem 1.2rem;
  border-top: 1px dashed var(--gray-200);
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.coupon-row-actions {
  display: flex;
  gap: 0.6rem;
  align-items: center;
}

@media (max-width: 900px) {
  .coupon-row-summary {
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: auto;
  }
}

.inline-form {
  display: flex;
  align-items: flex-end;
  gap: 0.8rem;
  flex-wrap: wrap;
}

.inline-form label {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  font-size: 0.85rem;
  font-weight: 600;
}

.inline-form input {
  font-family: var(--font);
  font-size: 0.95rem;
  padding: 0.55rem 0.75rem;
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-sm);
}

/* ---------- Pedidos: lista + panel de detalle ---------- */

.orders-split {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
}

.orders-list-panel {
  flex: 0 0 300px;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  max-height: calc(100vh - 9rem);
  overflow-y: auto;
  position: sticky;
  top: 1.75rem;
  padding-right: 0.25rem;
}

.order-list-item {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  text-align: left;
  background: var(--white);
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius);
  padding: 0.8rem 0.9rem;
  cursor: pointer;
  font-family: var(--font);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.order-list-item:hover {
  border-color: var(--gray-400);
}

.order-list-item.active {
  border-color: var(--black);
  box-shadow: var(--shadow);
}

.order-list-item-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.order-list-item-name {
  font-size: 0.88rem;
  color: var(--gray-800);
}

.order-list-item-meta {
  font-size: 0.78rem;
  color: var(--gray-600);
}

.orders-detail-panel {
  flex: 1 1 auto;
  min-width: 0;
}

.order-detail {
  display: none;
  flex-direction: column;
  gap: 1rem;
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  padding: 1.5rem;
}

.order-detail.active {
  display: flex;
}

.order-detail-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.order-detail-head h2 {
  margin: 0 0 0.2rem;
  font-size: 1.25rem;
}

.order-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.9rem 1.25rem;
  border-top: 1px solid var(--gray-100);
  border-bottom: 1px solid var(--gray-100);
  padding: 1rem 0;
}

.order-detail-field {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.order-detail-field-wide {
  grid-column: 1 / -1;
}

.order-detail-label {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--gray-600);
  font-weight: 700;
}

.order-detail-value {
  font-size: 0.92rem;
  color: var(--black);
}

.order-detail-receipt-block {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.order-detail-receipt-img {
  display: block;
  max-width: 260px;
  width: 100%;
  border-radius: var(--radius);
  border: 1px solid var(--gray-200);
  box-shadow: var(--shadow);
}

.order-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.8rem;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.order-date {
  color: var(--gray-600);
  font-size: 0.82rem;
  margin-left: 0.6rem;
}

.order-status-badge {
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
  background: var(--gray-100);
  color: var(--gray-800);
  white-space: nowrap;
}

.status-nuevo { background: #111; color: #fff; }
.status-en-preparación,
.status-en-preparacion { background: #fff3cd; color: #806600; }
.status-en-camino { background: #d6e9ff; color: #1a4d8f; }
.status-entregado { background: #d9f2e3; color: #1e6b3c; }
.status-cancelado { background: #fbdede; color: #a3261e; }

.order-card-body {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.order-customer {
  font-size: 0.9rem;
  margin-bottom: 0.8rem;
  line-height: 1.5;
}

/* Caja de aviso para una función que todavía no está conectada.
   Ámbar = advertencia, nunca se usa para éxito ni para error. */
.admin-warning-box {
  background: #FFFBEB;
  border: 1px solid #FDE68A;
  border-left: 3px solid #D97706;
  color: #78350F;
  border-radius: 10px;
  padding: 0.75rem 0.9rem;
  font-size: 0.875rem;
  line-height: 1.55;
  margin: 0 0 1rem;
}
.admin-warning-box code {
  background: rgba(120, 53, 15, 0.08);
  border-radius: 4px;
  padding: 0.05rem 0.3rem;
  font-size: 0.95em;
}

.warning-badge {
  display: inline-block;
  background: #fff3cd;
  color: #806600;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.1rem 0.5rem;
  border-radius: 999px;
  margin-left: 0.4rem;
}

.order-items {
  list-style: none;
  padding: 0;
  margin: 0 0 0.8rem;
  font-size: 0.88rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.order-item-price {
  float: right;
  font-weight: 700;
}

.order-item-notes {
  clear: both;
  font-size: 0.8rem;
  font-style: italic;
  color: var(--gray-600, #757575);
  margin-top: 0.1rem;
}

.order-totals {
  display: flex;
  gap: 1.25rem;
  flex-wrap: wrap;
  font-size: 0.88rem;
  color: var(--gray-600);
  border-top: 1px solid var(--gray-100);
  padding-top: 0.6rem;
  margin-bottom: 0.9rem;
}

.order-totals strong { color: var(--black); font-size: 0.95rem; }

.order-status-form {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  flex-wrap: wrap;
}

.order-status-form label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--gray-800);
}

.order-status-form select {
  font-family: var(--font);
  font-size: 0.88rem;
  padding: 0.4rem 0.6rem;
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-sm);
}

.order-payment {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 0.8rem;
}

.badge-inline {
  display: inline-block;
  background: var(--gray-100);
  color: var(--gray-800);
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
}

.btn-small {
  padding: 0.35rem 0.8rem;
  font-size: 0.8rem;
}

.inline-form-tiny {
  display: inline;
}

/* ---------- Fotos en Menú y precios ---------- */

.menu-admin-photo-cell {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  min-width: 140px;
}

.menu-admin-thumb {
  width: 70px;
  height: 70px;
  object-fit: cover;
  border-radius: var(--radius-sm);
  background: var(--gray-100);
}

.menu-admin-file {
  font-size: 0.78rem;
}

/* ---------- Horario de atención ---------- */

.horario-grid {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.horario-day-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-sm);
  padding: 0.6rem 0.9rem;
}

.horario-day-toggle {
  flex: 0 0 140px;
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  gap: 0.5rem;
}

.horario-day-toggle input {
  width: auto;
}

.horario-day-time {
  flex: 0 0 auto;
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  gap: 0.4rem;
  font-weight: 500 !important;
}

.horario-day-time input {
  padding: 0.4rem 0.5rem !important;
}

/* ---------- Banners ---------- */

.banner-admin-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.banner-admin-card {
  display: flex;
  gap: 1rem;
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  padding: 1rem;
  align-items: flex-start;
  flex-wrap: wrap;
}

.banner-admin-thumb {
  width: 160px;
  height: 90px;
  object-fit: cover;
  border-radius: var(--radius-sm);
  background: var(--gray-100);
  flex-shrink: 0;
}

.admin-subheading {
  font-size: 0.95rem;
  margin: 1.2rem 0 0.6rem;
}

.page-image-gallery {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.page-image-card {
  position: relative;
  width: 120px;
}

.page-image-thumb {
  width: 120px;
  height: 90px;
  object-fit: cover;
  border-radius: var(--radius-sm);
  background: var(--gray-100);
  display: block;
}

.page-image-card form {
  position: absolute;
  top: 0.25rem;
  right: 0.25rem;
}

.page-image-card .btn-icon-danger {
  background: rgba(17, 17, 17, 0.65);
  color: var(--white);
  border: none;
  border-radius: 50%;
  width: 1.6rem;
  height: 1.6rem;
  cursor: pointer;
  font-size: 0.8rem;
  line-height: 1;
}

.appearance-preview-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.appearance-preview-thumb {
  width: 64px;
  height: 64px;
  object-fit: contain;
  border-radius: var(--radius-sm);
  border: 1px solid var(--gray-200);
  background: var(--gray-50);
  flex-shrink: 0;
}

.banner-admin-body {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  flex: 1;
  min-width: 220px;
}

.banner-admin-actions {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  align-items: center;
}

@media (max-width: 780px) {
  .admin-shell { flex-direction: column; }

  .admin-sidebar {
    width: 100%;
    height: auto;
    position: static;
    flex-direction: row;
    align-items: center;
    overflow-x: auto;
    overflow-y: visible;
  }

  .admin-sidebar-brand { padding: 0.8rem 1rem; flex: 0 0 auto; }

  .admin-sidebar-nav {
    flex-direction: row;
    flex-wrap: nowrap;
    padding: 0.5rem;
    gap: 0.3rem;
  }

  .admin-sidebar-link { white-space: nowrap; padding: 0.5rem 0.7rem; }
  .admin-sidebar-link span { display: inline; }

  .admin-sidebar-footer { border-top: none; flex: 0 0 auto; padding: 0.5rem; }
}

@media (max-width: 900px) {
  .orders-split { flex-direction: column; }
  .orders-list-panel {
    flex: 1 1 auto;
    width: 100%;
    max-height: none;
    overflow-y: visible;
    position: static;
    flex-direction: row;
    flex-wrap: wrap;
  }
  .order-list-item { flex: 1 1 220px; }
}

@media (max-width: 600px) {
  .admin-main { padding: 1.25rem 0.9rem 3rem; }
  .admin-table { font-size: 0.85rem; }
  .order-item-price { float: none; display: inline-block; margin-left: 0.4rem; }
}

/* ---------- Categorías / Productos / Grupos de opciones ---------- */

.admin-input-small { max-width: 5rem; }

.admin-danger-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.5rem;
}

.product-admin-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 1rem;
}

.product-admin-card {
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--white);
  display: flex;
  flex-direction: column;
}

.product-admin-thumb {
  width: 100%;
  height: 140px;
  object-fit: cover;
  background: var(--gray-100);
}

.product-admin-thumb-empty {
  width: 100%;
  height: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--gray-100);
  font-size: 2.2rem;
}

.product-admin-body {
  padding: 0.9rem 1rem 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.product-admin-body strong { font-size: 0.98rem; }

.product-admin-meta {
  font-size: 0.8rem;
  color: var(--gray-600);
}

.product-admin-actions {
  display: flex;
  gap: 0.5rem;
  margin-top: 0.4rem;
  flex-wrap: wrap;
}

.category-jump {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
}

.groups-editor {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.group-block {
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius);
  padding: 1rem;
  background: var(--gray-50);
}

.group-block-head {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  align-items: flex-end;
  margin-bottom: 0.8rem;
}

.group-block-head label {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--gray-800);
}

.group-block-head input[type="text"],
.group-block-head select,
.group-block-head input[type="number"] {
  font-family: var(--font);
  font-size: 0.9rem;
  padding: 0.5rem 0.7rem;
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-sm);
}

.group-block-head .checkbox-label {
  flex-direction: row;
  align-items: center;
  gap: 0.4rem;
}

.option-row-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 0.6rem;
}

.option-row {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}

.option-row input[type="text"] {
  flex: 1 1 auto;
  font-family: var(--font);
  font-size: 0.88rem;
  padding: 0.45rem 0.65rem;
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-sm);
}

.option-row input[type="number"] {
  width: 6.5rem;
  font-family: var(--font);
  font-size: 0.88rem;
  padding: 0.45rem 0.65rem;
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-sm);
}

.add-row-btn {
  border: 1.5px dashed var(--gray-400);
  background: none;
  border-radius: var(--radius-sm);
  padding: 0.4rem 0.8rem;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  color: var(--gray-800);
}

.remove-row-btn {
  border: none;
  background: none;
  color: #b3261e;
  cursor: pointer;
  font-size: 0.95rem;
  flex: 0 0 auto;
}

.remove-group-btn {
  border: none;
  background: none;
  color: #b3261e;
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 700;
}


/* ============================================================
   /* ============================================================
FIGMA REBUILD v2 — sidebar claro exacto + topbar + componentes
============================================================ */
.admin-body { background:#F7F7F5; color:#111110; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; }

.admin-sidebar {
background:#FFFFFF !important;
color:#111110 !important;
border-right:1px solid #ECECE8;
flex:0 0 240px !important;
width:240px !important;
}

.admin-sidebar-brand { display:flex; align-items:center; gap:0.65rem; padding:1.25rem 1.1rem 0.9rem; }
.admin-sidebar-brand .brand-icon { width:34px; height:34px; border-radius:9px; background:linear-gradient(135deg,#8B5CF6,#6D28D9); display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.admin-sidebar-brand .brand-icon svg { width:18px; height:18px; color:#fff; }
.admin-sidebar-brand .brand-text { display:flex; flex-direction:column; line-height:1.2; }
.admin-sidebar-brand .brand-mark { color:#111110 !important; font-weight:800; font-size:0.92rem; letter-spacing:0.01em; }
.admin-sidebar-brand .brand-sub { color:#9C9C96 !important; font-weight:700; font-size:0.6rem; letter-spacing:0.07em; text-transform:uppercase; }

.admin-sidebar-sede { margin:0 0.9rem 0.6rem; background:#F4F3F1; border-radius:8px; padding:0.5rem 0.7rem; display:flex; align-items:center; gap:0.5rem; font-size:0.78rem; font-weight:600; color:#57564F; }
.admin-sidebar-sede svg { width:14px; height:14px; flex:0 0 auto; color:#9C9C96; }
.admin-sidebar-sede .sede-dot { margin-left:auto; width:7px; height:7px; border-radius:50%; background:#22C55E; flex:0 0 auto; }

.admin-sidebar-nav { padding:0.2rem 0.6rem 0.6rem; gap:0.06rem; }

.admin-sidebar-section-label { padding:0.75rem 0.7rem 0.3rem; font-size:0.64rem; font-weight:800; letter-spacing:0.08em; text-transform:uppercase; color:#B7B6AE !important; display:flex; align-items:center; gap:0.4rem; margin:0; border:none; background:none; width:100%; text-align:left; cursor:default; }
.admin-sidebar-group-toggle { cursor:pointer; }
.admin-sidebar-section-label svg:not(.caret) { width:12px; height:12px; }
.admin-sidebar-section-label .caret { margin-left:auto; width:12px; height:12px; }
.admin-sidebar-group.open .caret { transform:rotate(180deg); }

.admin-sidebar-link { color:#57564F !important; font-weight:600; font-size:0.82rem; padding:0.5rem 0.7rem; border-radius:8px; position:relative; }
.admin-sidebar-link:hover { background:#F4F3F1 !important; color:#111110 !important; }
.admin-sidebar-link.active { background:#111110 !important; color:#FFFFFF !important; }
.admin-sidebar-link.active svg { color:#fff; }
.admin-sidebar-subnav { display:flex; flex-direction:column; gap:0.06rem; }

.admin-sidebar-footer { border-top:1px solid #ECECE8; padding:0.85rem 0.9rem; display:flex; align-items:center; gap:0.55rem; }
.admin-sidebar-footer .avatar { width:32px; height:32px; border-radius:50%; background:#111110; color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:0.72rem; flex:0 0 auto; }
.admin-sidebar-footer .user-text { display:flex; flex-direction:column; line-height:1.2; overflow:hidden; }
.admin-sidebar-footer .user-text b { font-size:0.76rem; color:#111110; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:110px; }
.admin-sidebar-footer .user-text span { font-size:0.66rem; color:#9C9C96; }
.admin-sidebar-footer .icon-btn { margin-left:auto; width:26px; height:26px; border:none; background:none; color:#B7B6AE; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.admin-sidebar-footer .icon-btn:hover { color:#111110; }
.admin-sidebar-footer .icon-btn svg { width:16px; height:16px; }

.admin-content { background:#F7F7F5; }
.admin-main { max-width:1320px; }

.admin-topbar { display:flex; align-items:center; justify-content:space-between; padding:0.15rem 0 1rem; font-size:0.78rem; color:#9C9C96; font-weight:600; }
.admin-topbar .turno-info { display:flex; align-items:center; gap:0.45rem; color:#9C9C96; }
.admin-topbar .turno-info .sep { color:#D9D8D2; }
