/* ═══════════════════════════════════════════════════════════
   admin.css — Amun Admin Panel
   ═══════════════════════════════════════════════════════════

   Índice:
   1.  Variables CSS y Reset
   2.  Login
   3.  Header y navegación
   4.  Tab bar y contenido
   5.  Stats bar
   6.  Agenda hoy y vista semanal
   7.  Toolbar y filtros
   8.  Turno card (header, body, detalle, nota, editar)
   9.  Estado tags y barras de color
   10. Acciones de turno
   11. Historial por patente
   12. Bloqueos y calendario
   13. Modal ingreso al taller
   14. Órdenes y facturación
   15. Loading overlay y Toast
   16. Responsive
   ═══════════════════════════════════════════════════════════ */


/* Variables específicas de admin (las compartidas están en shared-app.css) */
:root {
  --red: #c0181e;
  --red-dark: #8b0f13;
  --red-light: #e63b3f;
  --surface: #1e1e1e;
  --surface2: #252525;
  --border: #2e2e2e;
  --white: #fff;
  --green: #10b981;
  --amber: #f59e0b;
  --blue: #3b82f6;
  --gray: #6b7280;
  --purple: #8b5cf6;
}
body { font-family:'Source Sans 3',sans-serif; background:#111; color:var(--white); min-height:100vh; overflow-x:hidden; }
a { color:inherit; }

/* ── LOGIN ── */
#login-screen { min-height:100vh; display:flex; align-items:center; justify-content:center; background:linear-gradient(160deg,#0f0000 0%,#1e0505 50%,#111 100%); padding:2rem; position:relative; overflow:hidden; }
#login-screen::before { content:''; position:fixed; inset:0; background-image:linear-gradient(45deg,rgba(192,24,30,0.06) 25%,transparent 25%),linear-gradient(-45deg,rgba(192,24,30,0.06) 25%,transparent 25%); background-size:24px 24px; pointer-events:none; }
.login-box { background:rgba(255,255,255,0.04); border:1px solid rgba(192,24,30,0.25); border-top:3px solid var(--red); border-radius:4px; padding:2.5rem 2rem; width:100%; max-width:380px; position:relative; }
.login-logo { display:flex; align-items:center; gap:12px; margin-bottom:2rem; }
.logo-badge { width:38px; height:38px; background:var(--red); display:flex; align-items:center; justify-content:center; clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%); flex-shrink:0; }
.logo-badge svg { width:18px; height:18px; fill:white; }
.logo-text strong { display:block; font-family:'Oswald',sans-serif; font-size:1.1rem; letter-spacing:0.1em; }
.logo-text span { font-size:0.65rem; letter-spacing:0.15em; color:rgba(255,255,255,0.4); text-transform:uppercase; }
.login-box h2 { font-size:1.3rem; margin-bottom:0.3rem; text-transform:uppercase; }
.login-box > p { font-size:0.85rem; color:rgba(255,255,255,0.4); margin-bottom:1.8rem; }
.login-group { margin-bottom:1rem; }
.login-group label { display:block; font-size:0.72rem; letter-spacing:0.12em; color:rgba(255,255,255,0.5); text-transform:uppercase; font-family:'Oswald',sans-serif; margin-bottom:0.4rem; }
.login-group input { width:100%; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.1); border-radius:3px; color:var(--white); padding:0.75rem 1rem; font-family:'Source Sans 3',sans-serif; font-size:1rem; outline:none; transition:border-color 0.2s; }
.login-group input:focus { border-color:var(--red-light); }
.login-group input::placeholder { color:rgba(255,255,255,0.2); }
.login-error { background:rgba(192,24,30,0.15); border:1px solid rgba(192,24,30,0.4); border-radius:3px; padding:0.6rem 0.8rem; color:var(--red-light); font-size:0.85rem; margin-bottom:1rem; display:none; }
.login-error.show { display:block; }
.btn-login { width:100%; background:var(--red); color:var(--white); border:none; padding:0.85rem; font-family:'Oswald',sans-serif; font-size:1rem; letter-spacing:0.1em; text-transform:uppercase; border-radius:3px; cursor:pointer; transition:background 0.2s; margin-top:0.5rem; }
.btn-login:hover { background:var(--red-dark); }

/* ── ADMIN ── */
#admin-screen { display:none; min-height:100vh; flex-direction:column; }
#admin-screen.show { display:flex; }
.admin-header { background:rgba(20,2,2,0.98); border-bottom:2px solid var(--red); display:flex; align-items:center; justify-content:space-between; padding:0 1.5rem; min-height:60px; height:auto; position:sticky; top:0; z-index:100; flex-wrap:wrap; gap:0.5rem; }
.admin-header-right { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.admin-title { font-family:'Oswald',sans-serif; font-size:1rem; letter-spacing:0.08em; }
.admin-title span { color:var(--red-light); font-size:0.75rem; display:block; letter-spacing:0.12em; }
.btn-logout { background:transparent; border:1px solid rgba(255,255,255,0.15); color:rgba(255,255,255,0.5); padding:0.4rem 1rem; font-family:'Oswald',sans-serif; font-size:0.8rem; letter-spacing:0.06em; text-transform:uppercase; border-radius:3px; cursor:pointer; transition:all 0.2s; }
.btn-logout:hover { border-color:var(--red); color:var(--red-light); }

/* TABS */
.tab-bar { display:flex; background:#161616; border-bottom:1px solid var(--border); overflow-x:auto; }
.tab-btn { padding:0.9rem 1.4rem; font-family:'Oswald',sans-serif; font-size:0.82rem; letter-spacing:0.08em; text-transform:uppercase; color:rgba(255,255,255,0.4); cursor:pointer; border:none; background:transparent; border-bottom:2px solid transparent; transition:all 0.2s; white-space:nowrap; }
.tab-btn.active { color:var(--white); border-bottom-color:var(--red); }
.tab-btn:hover { color:rgba(255,255,255,0.7); }
.tab-content { display:none; flex:1; flex-direction:column; min-width:0; }
.tab-content.active { display:flex; }

/* STATS */
.stats-bar { display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--border); }
.stats-bar-ordenes { grid-template-columns:repeat(7,1fr); }
.stat-item { background:var(--surface); padding:0.9rem 1rem; cursor:pointer; transition:background 0.2s; border-bottom:2px solid transparent; }
.stat-item:hover { background:var(--surface2); }
.stat-item.active { border-bottom-color:var(--red); }
.stat-num { font-family:'Oswald',sans-serif; font-size:1.6rem; line-height:1; }
.stat-num.pendiente  { color:var(--amber); }
.stat-num.confirmado { color:var(--blue); }
.stat-num.en-taller  { color:var(--purple); }
.stat-num.cerrada    { color:var(--amber); }
.stat-num.completado { color:var(--green); }
.stat-num.cancelado  { color:var(--gray); }
.stat-num.libres     { color:rgba(255,255,255,0.5); }
.stat-lbl { font-size:0.65rem; text-transform:uppercase; letter-spacing:0.1em; color:rgba(255,255,255,0.35); margin-top:2px; }

/* AGENDA HOY */
.agenda-hoy { padding:1rem 1.5rem; background:#161616; border-bottom:1px solid var(--border); }
.agenda-hoy-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:0.8rem; }
.agenda-hoy h3 { font-size:0.75rem; letter-spacing:0.15em; color:var(--red-light); text-transform:uppercase; }
.agenda-view-btns { display:flex; gap:4px; }
.agenda-view-btn { background:transparent; border:1px solid var(--border); color:rgba(255,255,255,0.4); padding:0.25rem 0.7rem; border-radius:3px; cursor:pointer; font-size:0.72rem; font-family:'Oswald',sans-serif; letter-spacing:0.05em; transition:all 0.2s; }
.agenda-view-btn.active { border-color:var(--red); color:var(--red-light); }
.agenda-slots { display:flex; gap:8px; flex-wrap:wrap; }
.agenda-slot { background:rgba(255,255,255,0.04); border:1px solid var(--border); border-radius:3px; padding:0.5rem 0.8rem; font-size:0.82rem; min-width:90px; }
.agenda-slot .as-hora { font-family:'Oswald',sans-serif; font-size:0.95rem; }
.agenda-slot .as-nombre { color:rgba(255,255,255,0.6); font-size:0.75rem; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:110px; }
.agenda-slot.libre .as-hora { color:rgba(255,255,255,0.25); }
.agenda-slot.libre .as-nombre { color:rgba(255,255,255,0.15); }
.agenda-slot.ocupado-slot { border-color:rgba(192,24,30,0.3); background:rgba(192,24,30,0.07); }

/* VISTA SEMANAL */
.semana-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; }
.semana-dia { background:var(--surface); border:1px solid var(--border); border-radius:3px; overflow:hidden; }
.semana-dia-header { padding:0.5rem 0.8rem; background:#161616; border-bottom:1px solid var(--border); }
.semana-dia-header .sd-dow { font-size:0.65rem; text-transform:uppercase; letter-spacing:0.1em; color:rgba(255,255,255,0.4); }
.semana-dia-header .sd-date { font-family:'Oswald',sans-serif; font-size:1rem; }
.semana-dia.hoy-col .semana-dia-header { border-bottom-color:var(--red); }
.semana-slot { padding:0.4rem 0.8rem; border-bottom:1px solid rgba(255,255,255,0.04); font-size:0.78rem; }
.semana-slot:last-child { border-bottom:none; }
.semana-slot .ss-hora { color:rgba(255,255,255,0.35); font-size:0.7rem; }
.semana-slot .ss-nombre { color:var(--white); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.semana-slot.libre .ss-nombre { color:rgba(255,255,255,0.15); }
.semana-slot.ocupado-s { background:rgba(192,24,30,0.07); }
.semana-nav { display:flex; align-items:center; gap:1rem; margin-bottom:0.8rem; }
.semana-nav button { background:transparent; border:1px solid var(--border); color:rgba(255,255,255,0.5); padding:0.3rem 0.6rem; border-radius:3px; cursor:pointer; transition:all 0.2s; }
.semana-nav button:hover { border-color:var(--red); color:var(--white); }
.semana-nav span { font-family:'Oswald',sans-serif; font-size:0.85rem; letter-spacing:0.05em; color:rgba(255,255,255,0.7); }

/* TOOLBAR */
.admin-toolbar { display:flex; align-items:center; gap:0.8rem; padding:0.8rem 1.5rem; background:#161616; border-bottom:1px solid var(--border); flex-wrap:wrap; }
.toolbar-search { flex:1; min-width:200px; background:rgba(255,255,255,0.05); border:1px solid var(--border); border-radius:3px; color:var(--white); padding:0.5rem 0.9rem; font-family:'Source Sans 3',sans-serif; font-size:0.9rem; outline:none; transition:border-color 0.2s; }
.toolbar-search:focus { border-color:var(--red); }
.toolbar-search::placeholder { color:rgba(255,255,255,0.25); }
.toolbar-date { background:rgba(255,255,255,0.05); border:1px solid var(--border); border-radius:3px; color:var(--white); padding:0.5rem 0.9rem; font-family:'Source Sans 3',sans-serif; font-size:0.9rem; outline:none; color-scheme:dark; }
.btn-sm { background:transparent; border:1px solid var(--border); color:rgba(255,255,255,0.4); padding:0.5rem 0.8rem; border-radius:3px; cursor:pointer; font-size:0.8rem; transition:all 0.2s; white-space:nowrap; }
.btn-sm:hover { border-color:var(--red); color:var(--red-light); }
.btn-sm.active-filter { border-color:var(--amber); color:var(--amber); }

/* TURNOS LIST */
.turnos-list { flex:1; padding:1rem 1.5rem 3rem; overflow-y:auto; }
.empty-state { text-align:center; padding:4rem 2rem; color:rgba(255,255,255,0.25); }

/* TURNO CARD */
.turno-card { background:var(--surface); border:1px solid var(--border); border-radius:4px; margin-bottom:8px; overflow:hidden; transition:border-color 0.2s; }
.turno-card:hover { border-color:#3e3e3e; }
.turno-card.expanded { border-color:rgba(192,24,30,0.4); }
.turno-card-header { display:flex; align-items:center; gap:0.8rem; padding:0.9rem 1.2rem; cursor:pointer; }
.estado-bar { width:3px; height:40px; border-radius:2px; flex-shrink:0; }
.estado-bar.pendiente  { background:var(--amber); }
.estado-bar.confirmado { background:var(--blue); }
.estado-bar.en-taller  { background:var(--purple); }
.estado-bar.cerrada    { background:var(--amber); }
.estado-bar.completado { background:var(--green); }
.estado-bar.cancelado  { background:var(--gray); }
.estado-bar.con-orden  { background:#f0a500; }
.hora-badge { background:rgba(192,24,30,0.15); border:1px solid rgba(192,24,30,0.3); border-radius:3px; padding:0.3rem 0.6rem; font-family:'Oswald',sans-serif; font-size:0.95rem; flex-shrink:0; min-width:60px; text-align:center; }
.turno-info { flex:1; min-width:0; }
.turno-nombre { font-weight:600; font-size:0.95rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:flex; align-items:center; gap:8px; }
.badge-avisado { background:rgba(16,185,129,0.15); border:1px solid rgba(16,185,129,0.3); color:var(--green); font-size:0.6rem; padding:1px 6px; border-radius:2px; font-family:'Oswald',sans-serif; letter-spacing:0.08em; flex-shrink:0; }
.badge-en-taller { background:rgba(139,92,246,0.15); border:1px solid rgba(139,92,246,0.3); color:var(--purple); font-size:0.6rem; padding:1px 6px; border-radius:2px; font-family:'Oswald',sans-serif; letter-spacing:0.08em; flex-shrink:0; }
.turno-meta { font-size:0.8rem; color:rgba(255,255,255,0.45); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.turno-fecha { text-align:right; flex-shrink:0; }
.tf-date { font-family:'Oswald',sans-serif; font-size:0.82rem; color:rgba(255,255,255,0.7); }
.estado-tag { display:inline-block; padding:2px 8px; border-radius:2px; font-size:0.68rem; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; }
.estado-tag.pendiente  { background:rgba(245,158,11,0.15);   color:var(--amber); }
.estado-tag.confirmado { background:rgba(59,130,246,0.15);   color:var(--blue); }
.estado-tag.en-taller  { background:rgba(139,92,246,0.15);   color:var(--purple); }
.estado-tag.cerrada    { background:rgba(245,158,11,0.15);   color:var(--amber); }
.estado-tag.completado { background:rgba(16,185,129,0.15);   color:var(--green); }
.estado-tag.cancelado  { background:rgba(107,114,128,0.15);  color:var(--gray); }

/* estados órdenes */
.estado-tag.en-taller-o { background:rgba(139,92,246,0.15);  color:var(--purple); }
.estado-tag.facturada   { background:rgba(59,130,246,0.15);  color:var(--blue); }

.turno-card-body { display:none; padding:0 1.2rem 1.2rem; border-top:1px solid var(--border); animation:fadeIn 0.2s ease; }
.turno-card.expanded .turno-card-body { display:block; }
@keyframes fadeIn { from{opacity:0;transform:translateY(-4px)} to{opacity:1;transform:translateY(0)} }

.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:0.5rem 1.5rem; padding:1rem 0; }
.detail-item .di-label { font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:rgba(255,255,255,0.35); font-family:'Oswald',sans-serif; }
.detail-item .di-val { font-size:0.9rem; margin-top:1px; color:var(--white); }
.detail-item.full { grid-column:1/-1; }

/* NOTA INTERNA */
.nota-interna-wrap { margin-top:0.8rem; padding-top:0.8rem; border-top:1px solid var(--border); }
.nota-interna-wrap label { font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:rgba(255,255,255,0.35); font-family:'Oswald',sans-serif; display:block; margin-bottom:0.4rem; }
.nota-interna-wrap label span { color:rgba(16,185,129,0.7); margin-left:4px; font-size:0.6rem; }
.nota-interna-input { width:100%; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.1); border-radius:3px; color:var(--white); padding:0.5rem 0.8rem; font-family:'Source Sans 3',sans-serif; font-size:0.85rem; outline:none; resize:vertical; min-height:60px; transition:border-color 0.2s; }
.nota-interna-input:focus { border-color:rgba(16,185,129,0.4); }
.btn-guardar-nota { margin-top:0.4rem; background:rgba(16,185,129,0.1); border:1px solid rgba(16,185,129,0.3); color:var(--green); padding:0.4rem 1rem; border-radius:3px; font-family:'Oswald',sans-serif; font-size:0.78rem; letter-spacing:0.06em; cursor:pointer; transition:all 0.2s; }
.btn-guardar-nota:hover { background:rgba(16,185,129,0.2); }

/* EDITAR TURNO */
.editar-wrap { margin-top:0.8rem; padding-top:0.8rem; border-top:1px solid var(--border); }
.editar-wrap label { font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:rgba(255,255,255,0.35); font-family:'Oswald',sans-serif; display:block; margin-bottom:0.6rem; }
.editar-row { display:flex; gap:8px; flex-wrap:wrap; align-items:flex-end; }
.editar-field { display:flex; flex-direction:column; gap:4px; }
.editar-field span { font-size:0.65rem; color:rgba(255,255,255,0.35); text-transform:uppercase; font-family:'Oswald',sans-serif; letter-spacing:0.08em; }
.editar-field input, .editar-field select { background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.1); border-radius:3px; color:var(--white); padding:0.45rem 0.7rem; font-family:'Source Sans 3',sans-serif; font-size:0.88rem; outline:none; transition:border-color 0.2s; -webkit-appearance:none; }
.editar-field input:focus, .editar-field select:focus { border-color:var(--blue); }
.editar-field select option { background:#1e1e1e; }
.btn-guardar-edit { background:rgba(59,130,246,0.12); border:1px solid rgba(59,130,246,0.3); color:var(--blue); padding:0.45rem 1rem; border-radius:3px; font-family:'Oswald',sans-serif; font-size:0.78rem; letter-spacing:0.06em; cursor:pointer; transition:all 0.2s; align-self:flex-end; }
.btn-guardar-edit:hover { background:rgba(59,130,246,0.22); }

/* ACCIONES */
.turno-actions { display:flex; gap:6px; flex-wrap:wrap; padding-top:1rem; border-top:1px solid var(--border); align-items:center; }
.btn-estado { padding:0.4rem 0.9rem; border-radius:3px; border:1px solid transparent; font-family:'Oswald',sans-serif; font-size:0.76rem; letter-spacing:0.06em; text-transform:uppercase; cursor:pointer; transition:all 0.2s; }
.btn-estado.pendiente  { background:rgba(245,158,11,0.12);  border-color:rgba(245,158,11,0.3);  color:var(--amber); }
.btn-estado.confirmado { background:rgba(59,130,246,0.12);  border-color:rgba(59,130,246,0.3);  color:var(--blue); }
.btn-estado.en-taller  { background:rgba(139,92,246,0.12);  border-color:rgba(139,92,246,0.3);  color:var(--purple); }
.btn-estado.cerrada    { background:rgba(245,158,11,0.12);  border-color:rgba(245,158,11,0.3);  color:var(--amber); }
.btn-estado.facturada  { background:rgba(59,130,246,0.12);  border-color:rgba(59,130,246,0.3);  color:var(--blue); }
.btn-estado.completado { background:rgba(16,185,129,0.12);  border-color:rgba(16,185,129,0.3);  color:var(--green); }
.btn-estado.cancelado  { background:rgba(107,114,128,0.12); border-color:rgba(107,114,128,0.3); color:var(--gray); }
.btn-estado:hover { opacity:0.75; }
.btn-estado.current { opacity:0.25; cursor:default; pointer-events:none; }
.btn-avisado { padding:0.4rem 0.9rem; border-radius:3px; border:1px solid rgba(16,185,129,0.3); background:rgba(16,185,129,0.08); color:var(--green); font-family:'Oswald',sans-serif; font-size:0.76rem; letter-spacing:0.06em; text-transform:uppercase; cursor:pointer; transition:all 0.2s; }
.btn-avisado:hover { background:rgba(16,185,129,0.18); }
.btn-avisado.on { background:rgba(16,185,129,0.2); border-color:var(--green); }
.btn-ingresar { padding:0.4rem 0.9rem; border-radius:3px; border:1px solid rgba(139,92,246,0.4); background:rgba(139,92,246,0.12); color:var(--purple); font-family:'Oswald',sans-serif; font-size:0.76rem; letter-spacing:0.06em; text-transform:uppercase; cursor:pointer; transition:all 0.2s; }
.btn-ingresar:hover { background:rgba(139,92,246,0.22); }
.btn-eliminar { margin-left:auto; padding:0.4rem 0.9rem; border-radius:3px; border:1px solid rgba(192,24,30,0.3); background:rgba(192,24,30,0.08); color:var(--red-light); font-family:'Oswald',sans-serif; font-size:0.76rem; letter-spacing:0.06em; text-transform:uppercase; cursor:pointer; transition:all 0.2s; }
.btn-eliminar:hover { background:rgba(192,24,30,0.2); }

/* HISTORIAL PATENTE */
.historial-wrap { padding:1.5rem; max-width:800px; }
.historial-wrap h2 { font-size:1.2rem; margin-bottom:0.3rem; text-transform:uppercase; }
.historial-wrap > p { color:rgba(255,255,255,0.5); font-size:0.9rem; margin-bottom:1.5rem; }
.historial-search-row { display:flex; gap:8px; margin-bottom:1.5rem; }
.historial-input { flex:1; background:rgba(255,255,255,0.05); border:1px solid var(--border); border-radius:3px; color:var(--white); padding:0.65rem 0.9rem; font-family:'Source Sans 3',sans-serif; font-size:1rem; outline:none; transition:border-color 0.2s; text-transform:uppercase; }
.historial-input:focus { border-color:var(--red); }
.historial-input::placeholder { color:rgba(255,255,255,0.25); text-transform:none; }
.btn-historial-buscar { background:var(--red); color:var(--white); border:none; padding:0.65rem 1.4rem; border-radius:3px; font-family:'Oswald',sans-serif; font-size:0.9rem; letter-spacing:0.08em; text-transform:uppercase; cursor:pointer; transition:background 0.2s; }
.btn-historial-buscar:hover { background:var(--red-dark); }
.historial-veh-card { background:var(--surface); border:1px solid var(--border); border-radius:4px; padding:1.2rem 1.5rem; margin-bottom:1rem; }
.historial-veh-title { font-family:'Oswald',sans-serif; font-size:1.1rem; margin-bottom:0.3rem; letter-spacing:0.08em; }
.historial-veh-sub { font-size:0.85rem; color:rgba(255,255,255,0.5); margin-bottom:1rem; }
.historial-table { width:100%; border-collapse:collapse; font-size:0.85rem; }
.historial-table th { text-align:left; padding:6px 10px; border-bottom:1px solid var(--border); font-family:'Oswald',sans-serif; font-size:0.7rem; letter-spacing:0.1em; color:rgba(255,255,255,0.4); text-transform:uppercase; }
.historial-table td { padding:8px 10px; border-bottom:1px solid rgba(255,255,255,0.04); color:rgba(255,255,255,0.85); }
.historial-table tr:last-child td { border-bottom:none; }

/* BLOQUEOS TAB */
.bloqueos-wrap { padding:1.5rem; max-width:900px; }
.bloqueos-wrap h2 { font-size:1.2rem; margin-bottom:0.3rem; text-transform:uppercase; }
.bloqueos-wrap > p { color:rgba(255,255,255,0.5); font-size:0.9rem; margin-bottom:2rem; }
.switch-card { background:var(--surface); border:1px solid var(--border); border-radius:4px; padding:1.2rem 1.5rem; display:flex; align-items:center; justify-content:space-between; margin-bottom:2rem; gap:1rem; }
.switch-card-text h3 { font-size:1rem; margin-bottom:0.2rem; text-transform:uppercase; }
.switch-card-text p { font-size:0.85rem; color:rgba(255,255,255,0.5); }
.switch { position:relative; width:52px; height:28px; flex-shrink:0; }
.switch input { opacity:0; width:0; height:0; }
.switch-slider { position:absolute; inset:0; background:#333; border-radius:28px; cursor:pointer; transition:background 0.3s; }
.switch-slider::before { content:''; position:absolute; width:20px; height:20px; left:4px; top:4px; background:white; border-radius:50%; transition:transform 0.3s; }
input:checked + .switch-slider { background:var(--red); }
input:checked + .switch-slider::before { transform:translateX(24px); }
.bloqueos-section { margin-bottom:2rem; }
.bloqueos-section h3 { font-size:0.8rem; letter-spacing:0.15em; color:var(--red-light); text-transform:uppercase; margin-bottom:1rem; padding-bottom:0.5rem; border-bottom:1px solid rgba(192,24,30,0.2); }
.cal-nav { display:flex; align-items:center; gap:1rem; margin-bottom:1rem; }
.cal-nav button { background:transparent; border:1px solid var(--border); color:rgba(255,255,255,0.6); width:32px; height:32px; border-radius:3px; cursor:pointer; font-size:1rem; transition:all 0.2s; display:flex; align-items:center; justify-content:center; }
.cal-nav button:hover { border-color:var(--red); color:var(--white); }
.cal-nav span { font-family:'Oswald',sans-serif; font-size:1rem; letter-spacing:0.05em; }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.cal-dow { text-align:center; font-size:0.65rem; letter-spacing:0.1em; color:rgba(255,255,255,0.3); text-transform:uppercase; padding:4px 0; }
.cal-day { aspect-ratio:1; display:flex; align-items:center; justify-content:center; border-radius:4px; font-size:0.85rem; cursor:pointer; border:1px solid transparent; transition:all 0.2s; background:rgba(255,255,255,0.03); }
.cal-day:hover { border-color:rgba(192,24,30,0.4); background:rgba(192,24,30,0.08); }
.cal-day.bloqueado { background:rgba(192,24,30,0.2); border-color:rgba(192,24,30,0.5); color:var(--red-light); }
.cal-day.pasado { opacity:0.2; cursor:default; pointer-events:none; }
.cal-day.finde { opacity:0.2; cursor:default; pointer-events:none; }
.cal-day.empty { background:transparent; border:none; cursor:default; pointer-events:none; }
.cal-day.hoy { border-color:rgba(255,255,255,0.3); }
.hora-bloqueos { margin-top:1.5rem; }
.hora-bloqueos h4 { font-size:0.8rem; letter-spacing:0.12em; color:rgba(255,255,255,0.6); text-transform:uppercase; margin-bottom:0.8rem; font-family:'Oswald',sans-serif; }
.hora-bloqueos-grid { display:flex; flex-wrap:wrap; gap:8px; }
.hora-bloqueo-chip { padding:0.5rem 1rem; border-radius:3px; border:1px solid var(--border); background:rgba(255,255,255,0.04); font-family:'Oswald',sans-serif; font-size:0.9rem; cursor:pointer; transition:all 0.2s; }
.hora-bloqueo-chip:hover { border-color:rgba(192,24,30,0.4); }
.hora-bloqueo-chip.bloqueado-hora { background:rgba(192,24,30,0.2); border-color:rgba(192,24,30,0.5); color:var(--red-light); }
.bloqueos-listado { margin-top:1rem; display:flex; flex-wrap:wrap; gap:8px; }
.bloqueo-tag { background:rgba(192,24,30,0.15); border:1px solid rgba(192,24,30,0.3); border-radius:3px; padding:0.3rem 0.8rem; font-size:0.82rem; display:flex; align-items:center; gap:8px; }
.bloqueo-tag button { background:none; border:none; color:var(--red-light); cursor:pointer; font-size:1rem; line-height:1; padding:0; }

/* ── MODAL INGRESO AL TALLER ── */
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.75); z-index:500; align-items:center; justify-content:center; padding:1rem; }
.modal-overlay.show { display:flex; }
.modal-box { background:#1a1a1a; border:1px solid var(--border); border-top:3px solid var(--purple); border-radius:6px; width:100%; max-width:560px; max-height:90vh; overflow-y:auto; animation:fadeIn 0.2s ease; }
.modal-header { display:flex; align-items:center; justify-content:space-between; padding:1.2rem 1.5rem; border-bottom:1px solid var(--border); }
.modal-header h3 { font-family:'Oswald',sans-serif; font-size:1rem; letter-spacing:0.08em; text-transform:uppercase; }
.modal-header h3 span { color:var(--purple); }
.modal-close { background:none; border:none; color:rgba(255,255,255,0.4); font-size:1.4rem; cursor:pointer; line-height:1; padding:0; transition:color 0.2s; }
.modal-close:hover { color:var(--white); }
.modal-body { padding:1.5rem; }
.modal-turno-info { background:rgba(139,92,246,0.08); border:1px solid rgba(139,92,246,0.25); border-left:3px solid var(--purple); border-radius:3px; padding:0.9rem 1.1rem; margin-bottom:1.5rem; display:grid; grid-template-columns:1fr 1fr; gap:0.4rem 1rem; }
.mti-item .mti-label { font-size:0.65rem; letter-spacing:0.1em; color:rgba(255,255,255,0.35); text-transform:uppercase; font-family:'Oswald',sans-serif; }
.mti-item .mti-val { font-size:0.9rem; color:var(--white); margin-top:1px; }
.modal-section-title { font-size:0.68rem; letter-spacing:0.15em; color:rgba(255,255,255,0.4); text-transform:uppercase; font-family:'Oswald',sans-serif; margin-bottom:0.8rem; }
.modal-form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:1rem; }
.modal-form-group { margin-bottom:1rem; }
.modal-form-group label { display:block; font-size:0.7rem; letter-spacing:0.1em; color:rgba(255,255,255,0.45); text-transform:uppercase; font-family:'Oswald',sans-serif; margin-bottom:0.4rem; }
.modal-form-group label .opt { color:rgba(255,255,255,0.25); font-size:0.65rem; letter-spacing:0; text-transform:none; font-family:'Source Sans 3',sans-serif; font-weight:300; margin-left:4px; }
.modal-form-group input, .modal-form-group select, .modal-form-group textarea {
  width:100%; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.1); border-radius:3px;
  color:var(--white); padding:0.6rem 0.8rem; font-family:'Source Sans 3',sans-serif; font-size:0.9rem;
  outline:none; transition:border-color 0.2s; -webkit-appearance:none;
}
.modal-form-group input:focus, .modal-form-group select:focus, .modal-form-group textarea:focus { border-color:var(--purple); }
.modal-form-group input::placeholder, .modal-form-group textarea::placeholder { color:rgba(255,255,255,0.2); }
.modal-form-group select option { background:#1a1a1a; }
.modal-form-group input[type="date"] { color-scheme:dark; }
.modal-form-group textarea { resize:vertical; min-height:70px; }
.modal-footer { padding:1rem 1.5rem; border-top:1px solid var(--border); display:flex; gap:8px; justify-content:flex-end; }
.btn-modal-cancel { background:transparent; border:1px solid rgba(255,255,255,0.15); color:rgba(255,255,255,0.5); padding:0.6rem 1.2rem; border-radius:3px; font-family:'Oswald',sans-serif; font-size:0.85rem; letter-spacing:0.06em; text-transform:uppercase; cursor:pointer; transition:all 0.2s; }
.btn-modal-cancel:hover { border-color:rgba(255,255,255,0.3); color:var(--white); }
.btn-modal-confirm { background:var(--purple); border:none; color:var(--white); padding:0.6rem 1.4rem; border-radius:3px; font-family:'Oswald',sans-serif; font-size:0.85rem; letter-spacing:0.08em; text-transform:uppercase; cursor:pointer; transition:background 0.2s; }
.btn-modal-confirm:hover { background:#7c3aed; }

/* ÓRDENES — estados colores barra */
.estado-bar.en-taller-o { background:var(--purple); }
.estado-bar.facturada   { background:var(--blue); }

/* Facturación en órdenes */
.orden-factura-wrap { margin-top:0.8rem; padding-top:0.8rem; border-top:1px solid var(--border); }
.orden-factura-wrap > .of-label { font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:rgba(255,255,255,0.35); font-family:'Oswald',sans-serif; display:block; margin-bottom:0.6rem; }
.orden-factura-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; flex-wrap:wrap; }
@media (max-width:640px) { .orden-factura-grid { grid-template-columns:1fr 1fr; } }
.of-field { display:flex; flex-direction:column; gap:4px; }
.of-field span { font-size:0.65rem; color:rgba(255,255,255,0.35); text-transform:uppercase; font-family:'Oswald',sans-serif; letter-spacing:0.08em; }
.of-field input, .of-field select { background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.1); border-radius:3px; color:var(--white); padding:0.45rem 0.7rem; font-family:'Source Sans 3',sans-serif; font-size:0.88rem; outline:none; transition:border-color 0.2s; -webkit-appearance:none; }
.of-field input:focus, .of-field select:focus { border-color:var(--blue); }
.of-field select option { background:#1e1e1e; }
.of-field input[type="date"] { color-scheme:dark; }

/* btn link orden en turno */
.btn-ver-orden { display:inline-flex; align-items:center; gap:4px; padding:0.35rem 0.8rem; border-radius:3px; border:1px solid rgba(139,92,246,0.3); background:rgba(139,92,246,0.08); color:var(--purple); font-family:'Oswald',sans-serif; font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; cursor:pointer; transition:all 0.2s; text-decoration:none; }
.btn-ver-orden:hover { background:rgba(139,92,246,0.18); }

/* LOADING / TOAST */
@keyframes spin { to{transform:rotate(360deg)} }
.toast { position:fixed; bottom:2rem; right:2rem; background:#222; border:1px solid var(--border); border-radius:4px; padding:0.8rem 1.2rem; font-size:0.88rem; z-index:998; transform:translateY(100px); opacity:0; transition:all 0.3s; max-width:320px; }
.toast.show { transform:translateY(0); opacity:1; }
.toast.success { border-color:var(--green); color:var(--green); }
.toast.error { border-color:var(--red-light); color:var(--red-light); }

/* FILAS ITEMS EDITABLES EN ORDEN */
.oi-row { display:grid; grid-template-columns:44px 1fr 90px 80px 28px; gap:4px; align-items:center; padding:3px 4px; border-bottom:1px solid rgba(255,255,255,0.04); }
.oi-row.oi-mo { background:rgba(245,158,11,0.03); }
.oi-row input { background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.08); border-radius:2px; color:var(--white); padding:3px 5px; font-family:'Source Sans 3',sans-serif; font-size:0.85rem; outline:none; transition:border-color 0.15s; width:100%; }
.oi-row input:focus { border-color:rgba(192,24,30,0.4); }
.oi-row.oi-mo input:focus { border-color:rgba(245,158,11,0.3); }
.oi-cant { text-align:center; }
.oi-precio { text-align:right; }
.oi-imp { text-align:right; font-family:'Oswald',sans-serif; font-size:0.85rem; color:rgba(255,255,255,0.6); padding:0 4px; }
.oi-del { background:none; border:none; color:rgba(255,255,255,0.2); cursor:pointer; font-size:1rem; padding:0; transition:color 0.15s; display:flex; align-items:center; justify-content:center; }
.oi-del:hover { color:var(--red-light); }

@media (max-width:700px) {
  .stats-bar { grid-template-columns:repeat(3,1fr); }
  .detail-grid { grid-template-columns:1fr; }
  .turno-fecha { display:none; }
  .tab-btn { padding:0.7rem 0.9rem; font-size:0.75rem; }
  .semana-grid { grid-template-columns:repeat(3,1fr); }
  .modal-turno-info { grid-template-columns:1fr; }
  .modal-form-row { grid-template-columns:1fr; }
  #fin-charts-row { grid-template-columns:1fr !important; }
  #fin-kpis { grid-template-columns:repeat(2,1fr) !important; }
}
  
/* === HEADER RESPONSIVE === */
.btn-header-backup { font-size:0.78rem; }

@media (max-width:700px) {
  .admin-header { padding:0.4rem 0.8rem; }
  .admin-header > div:first-child svg { height:34px !important; width:auto !important; }
  .admin-title { font-size:0.78rem; }
  .admin-title span { display:none; }
  #header-backup-btn { font-size:0; padding:0.28rem 0.5rem; }
  #header-backup-btn::before { content:'🗄️'; font-size:1rem; }
  .btn-logout { padding:0.32rem 0.5rem; font-size:0; white-space:nowrap; border-color:rgba(239,68,68,0.4); width:32px; height:32px; display:inline-flex; align-items:center; justify-content:center; }
  .btn-logout::before {
    content:'';
    display:inline-block;
    width:17px; height:17px;
    background-image:url("data:image/svg+xml;base64,PCEtLSBpY29uNjY2LmNvbSAtIE1JTExJT05TIE9GIEZSRUUgVkVDVE9SIElDT05TIC0tPjxzdmcgdmlld0JveD0iMCAwIDY0IDY0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnIGlkPSJMYXllcl8xOSIgZGF0YS1uYW1lPSJMYXllciAxOSI+PHBhdGggZD0ibTQ5LjI5IDEzLjNhNC4yIDQuMiAwIDAgMCAtMy4zOC0uODkgNC4yNCA0LjI0IDAgMCAwIC0yIDcuNDYgMTguNTYgMTguNTYgMCAwIDEgLTEyLjY3IDMyLjkgMTguNzggMTguNzggMCAwIDEgLTE3LjYzLTE4LjM5IDE4LjQ1IDE4LjQ1IDAgMCAxIDYuOC0xNC41IDQuMjUgNC4yNSAwIDAgMCAtNS4zNi02LjYgMjcuMDUgMjcuMDUgMCAwIDAgMTQuMTYgNDcuODUgMjcuNDkgMjcuNDkgMCAwIDAgMyAuMTYgMjYuNzMgMjYuNzMgMCAwIDAgMTgtNi45NCAyNyAyNyAwIDAgMCAtLjk0LTQxem0tLjczIDM5LjJhMjQuNTUgMjQuNTUgMCAxIDEgLTMxLjkzLTM3LjI4IDEuNjUgMS42NSAwIDAgMSAxLjA3LS4zOGguMjlhMS43NSAxLjc1IDAgMCAxIC44NCAzLjA3IDIxIDIxIDAgMCAwIC03LjcyIDE2LjQ1IDIxLjMgMjEuMyAwIDAgMCAyMCAyMC44NyAyMSAyMSAwIDAgMCAxNC4zNi0zNy4zIDEuNzMgMS43MyAwIDAgMSAtLjM1LTIuMjUgMS43NCAxLjc0IDAgMCAxIDIuNTktLjQ0IDI0LjU0IDI0LjU0IDAgMCAxIC44NSAzNy4yNnoiIGZpbGw9IiMwMDAwMDAiIHN0eWxlPSJmaWxsOiByZ2IoMjU1LCAwLCAwKTsiPjwvcGF0aD48cGF0aCBkPSJtMzIgMzQuMjVhNC4yNiA0LjI2IDAgMCAwIDQuMjUtNC4yNXYtMjNhNC4yNSA0LjI1IDAgMCAwIC04LjUgMHYyM2E0LjI2IDQuMjYgMCAwIDAgNC4yNSA0LjI1em0tMS43NS0yNy4yNWExLjc1IDEuNzUgMCAwIDEgMy41IDB2MjNhMS43NSAxLjc1IDAgMCAxIC0zLjUgMHoiIGZpbGw9IiMwMDAwMDAiIHN0eWxlPSJmaWxsOiByZ2IoMjU1LCAwLCAwKTsiPjwvcGF0aD48L2c+PC9zdmc+");
    background-size:contain;
    background-repeat:no-repeat;
    background-position:center;
  }
}

/* === BOTONES ÍCONO (editar/eliminar en catálogo) === */
.btn-icon-edit, .btn-icon-del {
  width: 28px; height: 28px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 3px; cursor: pointer; transition: all 0.2s;
  font-size: 0.85rem; line-height: 1; flex-shrink: 0;
}
.btn-icon-edit { background: rgba(59,130,246,0.08); border: 1px solid rgba(59,130,246,0.25); color: var(--blue); }
.btn-icon-edit:hover { background: rgba(59,130,246,0.18); }
.btn-icon-del  { background: rgba(192,24,30,0.08);  border: 1px solid rgba(192,24,30,0.25);  color: var(--red-light); }
.btn-icon-del:hover  { background: rgba(192,24,30,0.18); }
