:root{--bg: #000000;--bg-elevated: #101012;--surface: #161618;--border: #262629;--text: #EDEDEF;--text-muted: #9A9CA6;--hover-bg: #202126;--red-700: #B10817;--red-600: #DD0A1D;--red-500: #E8394A;--red-glow: rgba(221, 10, 29, .18);--accent-secondary: #6C7086;--danger: #F04438;--danger-bg: rgba(240, 68, 56, .14);--success: #22C55E;--success-bg: rgba(34, 197, 94, .14);--warning: #F5A524;--warning-bg: rgba(245, 165, 36, .14);--radius: 10px;--radius-sm: 6px;--shadow-card: 0 1px 2px rgba(0, 0, 0, .4), 0 4px 14px rgba(0, 0, 0, .3);--font-sans: -apple-system, "Segoe UI", "Inter", system-ui, sans-serif}:root[data-theme=light]{--bg: #F4F4F6;--bg-elevated: #FFFFFF;--surface: #FFFFFF;--border: #E1E1E6;--text: #17171B;--text-muted: #6B6D75;--hover-bg: #ECECF0;--red-glow: rgba(221, 10, 29, .1);--danger-bg: rgba(240, 68, 56, .1);--success-bg: rgba(34, 197, 94, .12);--warning-bg: rgba(245, 165, 36, .14);--shadow-card: 0 1px 2px rgba(20, 20, 25, .06), 0 4px 14px rgba(20, 20, 25, .06)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em;color:var(--text)}p{line-height:1.5}a{color:var(--text);text-decoration:none}a:hover{text-decoration:underline}.app-shell{display:flex;flex-direction:column;height:100vh;overflow:hidden}.mobile-topbar{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-elevated);border-bottom:1px solid var(--border);flex-shrink:0}.mobile-topbar img{width:26px;height:auto}.mobile-topbar span{color:var(--text);font-size:14px;font-weight:600;flex:1}.mobile-topbar button{background:transparent;border:none;color:var(--text);display:flex;padding:4px}.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:50;width:210px;flex-shrink:0;background:var(--bg-elevated);color:var(--text-muted);display:flex;flex-direction:column;padding:16px 10px;border-right:1px solid var(--border);transform:translate(-100%);transition:transform .2s ease,background .2s ease,color .2s ease}.sidebar.abierto{transform:translate(0);box-shadow:4px 0 28px #00000073}.sidebar-backdrop{display:none}.sidebar-backdrop.visible{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:40}.sidebar-logo{display:flex;align-items:center;gap:8px;padding:0 4px 16px;margin-bottom:10px;border-bottom:1px solid var(--border)}.sidebar-logo img{width:28px;height:auto}.sidebar-logo span{font-size:13px;font-weight:600;color:var(--text);line-height:1.2}.sidebar-cerrar-movil{display:flex;margin-left:auto;background:transparent;border:none;color:var(--text-muted)}.sidebar-nav{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1px;flex:1}.sidebar-nav a{display:flex;align-items:center;gap:8px;width:fit-content;max-width:100%;padding:7px 10px;border-radius:var(--radius-sm);color:var(--text-muted);font-size:13px;font-weight:500}.sidebar-nav a:hover{background:var(--hover-bg);text-decoration:none;color:var(--text)}.sidebar-nav a.active{background:var(--red-600);color:#fff}.sidebar-footer{border-top:1px solid var(--border);padding-top:12px;font-size:12px;color:var(--text-muted)}.content{flex:1;overflow-y:auto;padding:24px 20px;background:var(--bg)}@media (min-width: 640px){.content{padding:28px 36px}}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.page-header h2{font-size:22px}.page-subtitle{color:var(--text-muted);font-size:13px;margin-top:2px}.breadcrumb{margin-bottom:10px;font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:20px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:28px}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:18px 20px;border-left:4px solid var(--red-600)}.kpi-card.kpi-danger{border-left-color:var(--danger)}.kpi-card.kpi-warning{border-left-color:var(--warning)}.kpi-card.kpi-success{border-left-color:var(--success)}.kpi-label{font-size:12px;color:var(--text-muted);font-weight:500;margin-bottom:6px}.kpi-value{font-size:28px;font-weight:700;color:var(--text)}.kpi-value.danger{color:var(--danger)}.kpi-meta{font-size:12px;color:var(--text-muted);margin-top:4px}.form-grid{display:flex;flex-direction:column;gap:14px;max-width:440px}.form-row{display:flex;flex-direction:column;gap:5px}.form-row label{font-size:13px;font-weight:500;color:var(--text-muted)}.form-inline{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}input,select,textarea,button{font-family:inherit;font-size:14px}input,select,textarea{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text)}input::placeholder,textarea::placeholder{color:var(--text-muted)}input:focus,select:focus,textarea:focus{outline:2px solid var(--red-600);outline-offset:1px;border-color:var(--red-600)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);cursor:pointer;font-weight:500;transition:background .12s ease}.btn:hover{background:var(--hover-bg)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--red-600);border-color:var(--red-600);color:#fff}.btn-primary:hover{background:var(--red-700)}.btn-whatsapp{background:#1fae55;border-color:#1fae55;color:#fff}.btn-whatsapp:hover{background:#189246}.btn-sm{padding:5px 10px;font-size:13px}.btn-link{background:transparent;border:none;color:var(--red-500);padding:0}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto;box-shadow:var(--shadow-card)}table{width:100%;min-width:560px;border-collapse:collapse}thead tr{background:var(--bg-elevated);border-bottom:1px solid var(--border)}th{text-align:left;font-size:12px;font-weight:600;color:var(--text-muted);padding:11px 16px}td{padding:11px 16px;border-bottom:1px solid var(--border);font-size:14px;color:var(--text)}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#ffffff05}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.badge-neutral{background:#ffffff0f;color:var(--text-muted)}.empty-state{color:var(--text-muted);font-size:14px;padding:24px 0}.error-text{color:var(--danger);font-size:13px;margin:0}.login-shell{height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);position:relative}.login-card{background:var(--surface);border:1px solid var(--border);padding:36px;border-radius:16px;box-shadow:0 0 0 1px #dd0a1d14,0 24px 60px #0009;width:340px;display:flex;flex-direction:column;gap:12px}.login-brand-logo{width:220px}.login-footer-badge{background:#fff;border-radius:10px;padding:8px 14px;display:flex;align-items:center;justify-content:center}.login-footer-badge img{width:110px;display:block}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:50}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px;width:380px;display:flex;flex-direction:column;gap:12px;box-shadow:0 12px 40px #00000080}@media print{body *{visibility:hidden}.ticket-printable,.ticket-printable *{visibility:visible}.ticket-printable{position:fixed;left:0;top:0;color:#000;background:#fff;padding:3mm}.reporte-printable,.reporte-printable *{visibility:visible}.reporte-printable{position:fixed;left:0;top:0;width:100%;color:#000;background:#fff;padding:24px}.reporte-printable table{color:#000}}.calendario-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendario-dia-semana{text-align:center;font-size:11px;font-weight:600;color:var(--text-muted);padding:4px 0}.calendario-celda{aspect-ratio:1;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;padding:2px}.calendario-celda:hover{border-color:var(--red-500)}.calendario-celda.seleccionada{background:var(--red-600);border-color:var(--red-600);color:#fff}.calendario-celda.es-hoy:not(.seleccionada){border-color:var(--red-500);font-weight:700}.calendario-celda-vacia{border:none;background:transparent;cursor:default}.calendario-numero{font-size:13px}.calendario-conteo{display:flex;gap:3px}.calendario-conteo .badge{font-size:10px;padding:1px 5px}.calendario-layout{display:grid;grid-template-columns:1fr 320px;gap:18px;align-items:start}.tabs{display:flex;gap:8px}@media (max-width: 768px){.calendario-layout{grid-template-columns:1fr}}
