:root {
  --navy: #0b2435;
  --navy-2: #102432;
  --navy-deep: #071c2b;
  --navy-card: #0f2c3b;
  --orange: #ff6a00;
  --orange-2: #ff8a2b;
  --green: #20b26b;
  --text-on-dark: rgba(255,255,255,.82);
  --text-on-dark-soft: rgba(255,255,255,.6);
  --border-dark: rgba(255,255,255,.14);
  /* El panel ya es oscuro a propósito — esto evita que Chrome/Edge le apliquen
     su "oscurecimiento automático de páginas" encima (que repinta enlaces
     visitados en morado y a veces deja texto casi invisible). */
  color-scheme: dark;
}

* { box-sizing: border-box; }
body { margin: 0; font-family: 'Manrope', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background: var(--navy-deep); color: #23201d; }
h1, h2, h3 { font-family: 'Space Grotesk', 'Manrope', sans-serif; }

.admin-nav { display: flex; justify-content: space-between; align-items: center; background: var(--navy-2); color: #fff; padding: 10px 20px; border-bottom: 1px solid var(--border-dark); }
.admin-brand { display: flex; align-items: center; }
.admin-brand img { height: 32px; width: auto; display: block; border-radius: 6px; }
.admin-nav-links a,
.admin-nav-links a:visited { color: var(--text-on-dark); text-decoration: none; margin-left: 16px; font-size: .9rem; font-weight: 600; transition: color .15s ease; }
.admin-nav-links a:hover,
.admin-nav-links a:focus { color: var(--orange-2); }

.admin-main { max-width: 880px; margin: 0 auto; padding: 24px 20px 60px; }
.admin-main h1 { color: #fff; font-size: 1.5rem; margin-bottom: 18px; }

.admin-flash { padding: 10px 14px; border-radius: 8px; margin-bottom: 16px; font-size: .9rem; }
.admin-flash-success { background: rgba(32,178,107,.16); color: #6fe3ac; border: 1px solid rgba(32,178,107,.35); }
.admin-flash-error { background: rgba(255,106,0,.14); color: #ffb27a; border: 1px solid rgba(255,106,0,.35); }

.admin-form, .admin-form-inline { background: #fff; border-radius: 12px; padding: 18px; margin-bottom: 24px; box-shadow: 0 10px 30px rgba(0,0,0,.25); }
.admin-form label { display: block; margin-bottom: 12px; font-size: .88rem; color: #55504a; }
.admin-form input, .admin-form textarea, .admin-form select { display: block; width: 100%; margin-top: 4px; padding: 8px 10px; border: 1px solid #ddd; border-radius: 8px; font-family: inherit; font-size: .95rem; }
.admin-form textarea { min-height: 70px; }

.admin-form-inline { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.admin-form-inline input { padding: 8px 10px; border: 1px solid #ddd; border-radius: 8px; }

.btn-primary { background: var(--orange); color: #fff; border: none; border-radius: 8px; padding: 10px 18px; font-size: .95rem; font-weight: 700; cursor: pointer; text-decoration: none; display: inline-block; transition: background .15s ease; }
.btn-primary:hover { background: var(--orange-2); }
.btn-link { background: none; border: none; color: var(--orange); cursor: pointer; padding: 0; font-size: .85rem; text-decoration: underline; }

.admin-table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,.25); }
.admin-table th, .admin-table td { text-align: left; padding: 10px 12px; border-bottom: 1px solid #f0ede8; font-size: .9rem; }
.admin-table th { background: #faf7f2; font-size: .8rem; text-transform: uppercase; color: #8a847b; }
.admin-actions a, .admin-actions form { margin-right: 10px; font-size: .85rem; }

.admin-stats { display: flex; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }
.stat-card { background: #fff; border-radius: 12px; padding: 18px 22px; box-shadow: 0 10px 30px rgba(0,0,0,.25); text-align: center; }
.stat-number { display: block; font-size: 1.8rem; font-weight: 700; color: var(--orange); }

.admin-login-box { max-width: 380px; margin: 60px auto; background: var(--navy-card); color: var(--text-on-dark); padding: 28px; border-radius: 16px; border: 1px solid var(--border-dark); box-shadow: 0 25px 60px rgba(0,0,0,.35); }
.admin-login-box h1 { color: #fff; font-size: 1.3rem; margin: 0 0 16px; }
.admin-login-box p { color: var(--text-on-dark-soft); font-size: .88rem; }
.admin-login-box label { display: block; margin-bottom: 14px; font-size: .88rem; color: var(--text-on-dark); }
.admin-login-box input { display: block; width: 100%; margin-top: 4px; padding: 9px 10px; border: 1px solid var(--border-dark); border-radius: 8px; background: rgba(255,255,255,.06); color: #fff; font-family: inherit; }
.admin-login-box input:focus { outline: 2px solid var(--orange); outline-offset: 1px; }
.admin-login-box a,
.admin-login-box a:visited { color: var(--orange-2); }
.admin-login-box .btn-primary { width: 100%; text-align: center; margin-top: 4px; }

.qr-box { background: #fff; padding: 24px; border-radius: 12px; text-align: center; }
.qr-box img { border: 1px solid #eee; border-radius: 8px; }

.admin-fieldset { border: 1px solid #eee; border-radius: 10px; padding: 12px 14px 4px; margin-bottom: 14px; }
.admin-fieldset legend { font-size: .82rem; font-weight: 700; color: #55504a; padding: 0 6px; }
.admin-checkbox { display: flex !important; align-items: center; gap: 8px; }
.admin-checkbox input { width: auto !important; margin: 0 !important; }
.admin-hint { font-size: .78rem; color: #8a8379; margin: 0 0 10px; }

.admin-version { text-align: center; font-size: .72rem; color: var(--text-on-dark-soft); opacity: .7; padding: 0 20px 28px; }

/* ---- Legibilidad (v1.19.1) ------------------------------------------------
   El fondo del panel es azul oscuro y el color de texto por defecto es oscuro:
   todo texto o enlace suelto (fuera de una tarjeta blanca) quedaba oscuro sobre
   oscuro, y los enlaces sin estilo salían en lila. Aquí se separan los dos casos:
   1) lo que va directo sobre el fondo oscuro se pinta claro;
   2) lo que va dentro de tarjetas blancas se pinta oscuro, con enlaces en naranja
      oscuro (contraste suficiente sobre blanco) y controles nativos en modo claro. */
.admin-main > p,
.admin-main > h2,
.admin-main > h3,
.admin-main > ul,
.admin-main > ol,
.admin-main > label,
.admin-main > small { color: var(--text-on-dark); }
.admin-main > h2, .admin-main > h3 { color: #fff; }
.admin-main > p a:not(.btn-primary),
.admin-main > p a:not(.btn-primary):visited,
.admin-main > h2 a, .admin-main > h3 a,
.admin-main > ul a, .admin-main > ol a { color: var(--orange-2); }
.admin-main > .admin-hint { color: rgba(255,255,255,.74); font-size: .85rem; line-height: 1.5; }
.admin-muted { color: var(--text-on-dark-soft); }

.admin-form, .admin-form-inline, .admin-table, .stat-card, .qr-box { color: #23201d; color-scheme: light; }
.admin-form a:not(.btn-primary),
.admin-form a:not(.btn-primary):visited,
.admin-form-inline a:not(.btn-primary),
.admin-form-inline a:not(.btn-primary):visited,
.admin-table a:not(.btn-primary),
.admin-table a:not(.btn-primary):visited,
.stat-card a:not(.btn-primary) { color: #c2410c; }
.btn-link { color: #c2410c; }
.btn-link:hover { color: #9a3412; }
.admin-form input, .admin-form textarea, .admin-form select,
.admin-form-inline input, .admin-form-inline select,
.admin-table input:not([type="checkbox"]):not([type="radio"]) { background: #fff; color: #23201d; }
.admin-table th { color: #6b645b; }
.admin-hint { color: #6b645b; }
.stat-number { color: #d24f00; }
.admin-flash a, .admin-flash a:visited { color: inherit; text-decoration: underline; font-weight: 700; }

/* Bandejas del listado de restaurantes (v1.21.0) */
.admin-bandejas { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 14px; }
.admin-bandejas a { background: rgba(255,255,255,.08); color: #fff; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; padding: 6px 14px; font-size: .9rem; font-weight: 600; text-decoration: none; }
.admin-bandejas a:hover { background: rgba(255,255,255,.16); }
.admin-bandejas a.is-active { background: var(--orange); border-color: var(--orange); }
.admin-bandeja-count { display: inline-block; min-width: 20px; margin-left: 4px; padding: 0 6px; border-radius: 999px; background: rgba(0,0,0,.25); font-size: .8rem; text-align: center; }
.admin-actions form { display: inline; }
.admin-nav-nuevos { background: var(--orange); color: #fff !important; border-radius: 999px; padding: 4px 12px; font-weight: 700; }
.admin-activar-botones { display: inline-flex; flex-wrap: wrap; gap: 8px; margin-left: 6px; vertical-align: middle; }
.admin-activar-botones .btn-primary { padding: 6px 14px; font-size: .88rem; }
