:root{
  --brand-primary:#0ea5e9; /* cyan */
  --brand-accent:#1e293b;  /* slate-800 */
  --brand-bg:#0b1220;      /* dark bg (landing) */
  --brand-muted:#94a3b8;
  --pill-green:#10b981;
  --pill-red:#ef4444;
  --pill-amber:#f59e0b;
  --pill-sky:#0ea5e9;
}

/* Header */
#header{ background:var(--brand-accent) !important; border-bottom:3px solid var(--brand-primary); }
#branding h1, #branding h1 a{ color:#fff !important; font-weight:600; }
#branding .tagline{ color:#cbd5e1; font-size:12px; margin-top:-4px; }

/* Menú lateral */
#nav-sidebar{ border-right:1px solid #e5e7eb; }
#nav-sidebar .current-model{ background:#e6f6fd; border-left:3px solid var(--brand-primary); }

/* Botones / Submit */
a.button, .button.default, input[type=submit], .submit-row input{
  background:var(--brand-primary) !important;
  border-color:var(--brand-primary) !important;
  color:#0b1220 !important;
  font-weight:600;
}
a.button:hover, .button.default:hover, input[type=submit]:hover{
  filter:brightness(.95);
}

/* Píldoras (badges) */
.pill{ display:inline-block; padding:2px 8px; border-radius:999px; font-size:12px; font-weight:600; color:#0b1220; }
.pill-green{ background:var(--pill-green); }
.pill-red{ background:var(--pill-red); color:white; }
.pill-amber{ background:var(--pill-amber); }
.pill-sky{ background:var(--pill-sky); }

/* Progreso simple (licencias) */
.progress{ background:#e5e7eb; border-radius:8px; overflow:hidden; height:8px; width:120px; display:inline-block; vertical-align:middle; }
.progress > span{ display:block; height:100%; background:var(--brand-primary); }

/* Fila de acciones fija en formularios largos */
.submit-row{ position:sticky; bottom:0; background:#fff; z-index:5; box-shadow:0 -1px 0 #e5e7eb; }

/* Tablas: hover sutil */
#changelist table tbody tr:hover{ background:#f8fafc; }

/* Pills */
.mfi-pill {
  display: inline-block;
  padding: 2px 8px;
  font-size: 11px;
  line-height: 1.5;
  border-radius: 999px;
  background: #e2e8f0; /* slate-200 */
  color: #334155;      /* slate-700 */
  font-weight: 600;
}
.mfi-pill-video {
  background: #fde68a; /* amber-200 */
  color: #92400e;      /* amber-800 */
}

/* Preview grande en formularios */
.admin-preview {
  margin-top: 8px;
}
.admin-preview-img {
  max-width: 380px;
  max-height: 220px;
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  box-shadow: 0 2px 8px rgba(0,0,0,.05);
}

/* Miniaturas en listado */
.mfi-thumb,
.mfi-thumb-video {
  width: 120px;
  height: 70px;
  object-fit: cover;
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(0,0,0,.08);
}

/* Preview grande en el formulario */
.admin-preview-img,
.admin-preview-video {
  max-width: 560px;
  height: auto;
  border-radius: 10px;
  box-shadow: 0 4px 14px rgba(0,0,0,.12);
}

/* Login - AMPLIADO Y MEJORADO */
.login #container{ 
  border-top:4px solid var(--brand-primary);
  max-width: 680px !important;
  width: 100% !important;
  padding: 0 !important;
  margin-top: 60px !important;
  box-shadow: 0 10px 40px rgba(0,0,0,.12) !important;
  border-radius: 12px !important;
  overflow: hidden !important;
}

.login #content{ 
  padding: 48px 56px !important;
}

.login #branding{
  background: var(--brand-accent) !important;
  padding: 48px 56px !important;
  margin: 0 !important;
}

.login #branding h1{
  display: flex !important;
  align-items: center !important;
  font-size: 28px !important;
  margin: 0 !important;
  color: #fff !important;
  line-height: 1.3 !important;
  flex-wrap: nowrap !important;
}

.login #branding h1 #site-name{
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
}

.login #branding h1 img{
  height: 100px !important;
  width: 100px !important;
  min-height: 100px !important;
  min-width: 100px !important;
  max-height: 100px !important;
  max-width: 100px !important;
  flex-shrink: 0 !important;
  vertical-align: middle !important;
  margin-right: 24px !important;
  border-radius: 14px !important;
  filter: drop-shadow(0 8px 28px rgba(14,165,233,.6)) !important;
  object-fit: contain !important;
  animation: fadeInLogo 0.6s ease-out !important;
}

.login #branding .tagline{
  font-size: 14px !important;
  color: #94a3b8 !important;
  margin-top: 8px !important;
  margin-left: 130px !important;
  white-space: nowrap !important;
}

.login form{
  margin-top: 0 !important;
}

.login form .form-row{
  margin-bottom: 24px !important;
}

.login form input[type="text"],
.login form input[type="password"]{
  font-size: 16px !important;
  padding: 14px 16px !important;
  width: 100% !important;
  border: 2px solid #e5e7eb !important;
  border-radius: 8px !important;
  transition: all .2s ease !important;
}

.login form input[type="text"]:focus,
.login form input[type="password"]:focus{
  border-color: var(--brand-primary) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(14,165,233,.1) !important;
}

.login form label{
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #334155 !important;
  margin-bottom: 8px !important;
  display: block !important;
}

.login .submit-row{
  margin-top: 32px !important;
  padding: 0 !important;
  background: transparent !important;
}

.login input[type="submit"]{
  font-size: 16px !important;
  padding: 14px 24px !important;
  width: 100% !important;
  border-radius: 8px !important;
  transition: all .2s ease !important;
  cursor: pointer !important;
}

.login input[type="submit"]:hover{
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(14,165,233,.3) !important;
}

/* Animación del logo */
@keyframes fadeInLogo {
  from { opacity: 0; transform: scale(0.92); }
  to { opacity: 1; transform: scale(1); }
}

/* Suavizado de entrada */
html.zm-fade-start { opacity: 0; }
html.zm-fade-in     { opacity: 1; transition: opacity .18s ease-in; }

/* Barra de carga superior (tipo NProgress minimal) */
html.zm-loading::before {
  content: "";
  position: fixed;
  left: 0; top: 0;
  height: 3px;
  width: 100%;
  background: linear-gradient(90deg, #22d3ee, #0ea5e9);
  box-shadow: 0 0 8px rgba(14,165,233,.6);
  transform-origin: 0 50%;
  animation: zm-progress 1.2s ease-in-out infinite;
  z-index: 99999;
}

@keyframes zm-progress {
  0%   { transform: scaleX(.05); opacity: .9; }
  50%  { transform: scaleX(.6);  opacity: 1;  }
  100% { transform: scaleX(1);   opacity: .9; }
}