:root{
  --rojo:#E4212B; --rojo-dark:#B5171F; --negro:#141212; --blanco:#fff;
  --hueso:#FBF7F2; --dorado:#F0AC1B; --dorado-dark:#C98A10;
  --gris:#8A8280; --gris-linea:#E9E2DB;
}
*{box-sizing:border-box;}
body{margin:0;font-family:'Inter',sans-serif;color:var(--negro);background:var(--hueso);}
h1,h2,h3{font-family:'Space Grotesk',sans-serif;}
button{font-family:inherit;cursor:pointer;border:none;}
input,select,textarea{font-family:inherit;}

/* ---------- LOGIN ---------- */
.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;}
.login-card{
  background:#fff;border:1px solid var(--gris-linea);border-radius:20px;padding:32px 28px;
  max-width:380px;width:100%;box-shadow:0 10px 30px rgba(20,18,18,0.08);
}
.login-logo{
  width:48px;height:48px;border-radius:12px;background:linear-gradient(145deg,var(--rojo),var(--rojo-dark));
  color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-family:'Space Grotesk';
  margin-bottom:14px;
}
.login-card h1{font-size:20px;margin:0 0 4px;}
.login-card .sub{font-size:13px;color:var(--gris);margin:0 0 20px;}
.login-card label{display:block;font-size:12.5px;font-weight:700;margin:14px 0 6px;}
.login-card input{width:100%;padding:11px 14px;border:1px solid var(--gris-linea);border-radius:10px;font-size:14px;}
.btn-primary{
  width:100%;margin-top:20px;background:var(--rojo);color:#fff;padding:12px;border-radius:999px;
  font-weight:700;font-size:14.5px;
}
.btn-primary:hover{background:var(--rojo-dark);}
.error-msg{color:var(--rojo-dark);font-size:12.5px;margin-top:12px;min-height:16px;}
.note{font-size:11.5px;color:var(--gris);margin-top:16px;line-height:1.5;}

/* ---------- ADMIN PANEL ---------- */
.admin-shell{display:flex;min-height:100vh;}
.admin-side{
  width:220px;flex-shrink:0;background:var(--negro);color:#fff;padding:20px 14px;
  display:flex;flex-direction:column;gap:4px;
}
.admin-side .brand{font-family:'Space Grotesk';font-weight:700;font-size:15px;margin-bottom:20px;padding:0 8px;}
.admin-side a, .admin-side button.tab-btn{
  color:#cbc4bf;text-decoration:none;padding:10px 10px;border-radius:8px;font-size:13.5px;font-weight:600;
  background:transparent;text-align:left;width:100%;
}
.admin-side button.tab-btn.active,.admin-side button.tab-btn:hover{background:rgba(255,255,255,0.08);color:#fff;}
.admin-side .logout-btn{margin-top:auto;color:#e78d8d;}
.admin-main{flex:1;padding:26px 30px;max-width:900px;}
.admin-main h2{font-size:20px;margin:0 0 6px;}
.admin-main .desc{font-size:13px;color:var(--gris);margin:0 0 24px;}
.panel-card{background:#fff;border:1px solid var(--gris-linea);border-radius:16px;padding:20px;margin-bottom:18px;}
.panel-card h3{font-size:14.5px;margin:0 0 12px;}
.field-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px;}
.field{flex:1;min-width:160px;}
.field label{display:block;font-size:12px;font-weight:700;margin-bottom:6px;}
.field select, .field input{width:100%;padding:9px 12px;border:1px solid var(--gris-linea);border-radius:8px;font-size:13.5px;}
textarea.json-editor{
  width:100%;min-height:180px;font-family:'JetBrains Mono',monospace;font-size:12.5px;
  padding:12px;border:1px solid var(--gris-linea);border-radius:10px;resize:vertical;
}
.btn-save{background:var(--rojo);color:#fff;padding:10px 20px;border-radius:999px;font-weight:700;font-size:13.5px;}
.btn-save:hover{background:var(--rojo-dark);}
.btn-secondary{background:var(--hueso);border:1px solid var(--gris-linea);padding:10px 18px;border-radius:999px;font-weight:700;font-size:13.5px;}
.status-msg{font-size:12.5px;margin-top:10px;min-height:16px;}
.status-msg.ok{color:#1B5E3A;}
.status-msg.err{color:var(--rojo-dark);}
.numero-grid{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;max-height:160px;overflow-y:auto;padding:4px;}
.numero-chip{
  width:38px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;
  font-size:12px;font-weight:700;border:1px solid var(--gris-linea);background:#fff;cursor:pointer;
}
.numero-chip.filled{background:rgba(228,33,43,0.08);border-color:var(--rojo);color:var(--rojo-dark);}
.numero-chip.selected{outline:2px solid var(--negro);outline-offset:1px;}
.hint{font-size:11.5px;color:var(--gris);margin-top:4px;}
.tag-day{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;}
.tag-day button{padding:8px 12px;border-radius:8px;border:1px solid var(--gris-linea);background:#fff;font-size:12.5px;font-weight:600;}
.tag-day button.active{background:var(--negro);color:#fff;border-color:var(--negro);}
.numeros-input-row{display:flex;gap:10px;}
.numeros-input-row input{width:70px;text-align:center;font-weight:700;font-family:'Space Grotesk';}
