:root{--bg: #0f172a;--bg-panel: #1e293b;--bg-card: #ffffff;--bg-app: #f1f5f9;--text: #0f172a;--text-muted: #64748b;--border: #e2e8f0;--primary: #2563eb;--primary-dark: #1d4ed8;--ok: #22c55e;--warn: #eab308;--danger: #ef4444;--radius: 10px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg-app);color:var(--text)}h1{font-size:1.5rem;margin:0 0 4px}h3{margin:0 0 12px;font-size:1.05rem}.page-subtitle{color:var(--text-muted);margin:0 0 20px;font-size:.9rem}.app-shell{display:flex;min-height:100vh}.sidebar{width:240px;flex-shrink:0;background:var(--bg);color:#e2e8f0;display:flex;flex-direction:column;padding:20px 14px}.brand{font-weight:700;font-size:1.15rem;padding:0 10px 20px}.sidebar nav{display:flex;flex-direction:column;gap:4px;flex:1}.nav-link{color:#cbd5e1;text-decoration:none;padding:10px 12px;border-radius:8px;font-size:.9rem}.nav-link:hover{background:#ffffff0f}.nav-link.active{background:var(--primary);color:#fff}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--danger);color:#fff;font-size:.68rem;font-weight:700;margin-left:8px}.sidebar-footer{border-top:1px solid rgba(255,255,255,.1);padding-top:14px;margin-top:14px}.user-info{padding:0 10px 10px}.user-name{font-weight:600;font-size:.9rem}.user-role{font-size:.75rem;color:#94a3b8;text-transform:capitalize}.content{flex:1;padding:28px 32px;max-width:1200px;overflow-x:auto}@media (max-width: 800px){.app-shell{flex-direction:column}.sidebar{width:100%;flex-direction:row;align-items:center;flex-wrap:wrap}.sidebar nav{flex-direction:row;flex-wrap:wrap}.sidebar-footer{border:none;margin:0;padding:0;display:flex;align-items:center;gap:10px}.content{padding:16px}}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg)}.login-card{background:var(--bg-card);padding:36px;border-radius:var(--radius);width:340px;display:flex;flex-direction:column;gap:10px}.login-card h1{text-align:center}.login-card .subtitle{text-align:center;color:var(--text-muted);margin-bottom:10px;font-size:.85rem}.login-card label{font-size:.8rem;font-weight:600;margin-top:6px}.login-card input{padding:10px;border:1px solid var(--border);border-radius:8px;font-size:.95rem}.login-card button{margin-top:14px}.login-forgot-link{text-align:center;font-size:.82rem;color:var(--primary);text-decoration:none;margin-top:14px}.login-forgot-link:hover{text-decoration:underline}.card{background:var(--bg-card);border-radius:var(--radius);padding:20px;margin-bottom:20px;border:1px solid var(--border)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;align-items:end}.form-inline{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:4px}.field.grow{flex:1}.field-submit{align-self:end}.field label{font-size:.78rem;font-weight:600;color:var(--text-muted)}.checkbox-field{flex-direction:row;align-items:center;gap:6px;font-size:.85rem}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=time],input:not([type]),select{padding:9px 10px;border:1px solid var(--border);border-radius:8px;font-size:.9rem}.input-sm{width:100px;padding:5px 8px}.btn{border:none;padding:9px 16px;border-radius:8px;font-size:.88rem;cursor:pointer;font-weight:600}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:#e2e8f0;color:var(--text)}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}.btn-danger:hover{background:var(--danger);color:#fff}.btn-sm{padding:5px 10px;font-size:.78rem}.btn:disabled{opacity:.6;cursor:not-allowed}.table{width:100%;border-collapse:collapse;font-size:.87rem}.table th{text-align:left;color:var(--text-muted);font-weight:600;padding:8px 10px;border-bottom:2px solid var(--border);font-size:.78rem;text-transform:uppercase}.table td{padding:10px;border-bottom:1px solid var(--border)}.table .empty{text-align:center;color:var(--text-muted);padding:24px}.actions{display:flex;gap:6px}.mono{font-family:SFMono-Regular,Consolas,monospace}.pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.75rem;background:#e2e8f0;text-transform:capitalize}.pill-ok{background:#dcfce7;color:#15803d}.pill-off{background:#fee2e2;color:#b91c1c}.color-dot{display:inline-block;width:12px;height:12px;border-radius:50%;vertical-align:middle}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1.5px solid;font-size:.82rem;font-weight:600}.status-badge .dot{width:8px;height:8px;border-radius:50%}.alert{padding:10px 14px;border-radius:8px;font-size:.85rem;margin-bottom:16px}.alert-error{background:#fee2e2;color:#b91c1c}.alert-warn{background:#fef9c3;color:#854d0e}.hint{font-size:.8rem;color:var(--text-muted);margin:-6px 0 12px}.bulk-result{margin-top:12px;font-size:.85rem}.error-list{color:var(--danger);margin:6px 0 0;padding-left:18px}.row-alert-advertencia{background:#fefce833}.row-alert-critico{background:#fee2e233}.row-notificacion{background:#eff6ff;box-shadow:inset 3px 0 0 var(--primary)}.timer-card{text-align:center;padding:32px}.timer-label{color:var(--text-muted);font-size:.85rem;margin-bottom:10px}.timer-clock{font-size:3rem;font-weight:700;font-family:SFMono-Regular,Consolas,monospace;margin-top:14px}.timer-limit{color:var(--text-muted);font-size:.85rem;margin-top:6px}.timer-card.level-advertencia .timer-clock{color:var(--warn)}.timer-card.level-critico .timer-clock{color:var(--danger)}.state-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.state-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 10px;border:2px solid var(--border);border-radius:10px;background:#fff;cursor:pointer;font-size:.85rem;font-weight:600}.state-btn:hover{background:#f8fafc}.state-btn-active{background:#eff6ff}.state-btn-limit{font-size:.72rem;color:var(--text-muted);font-weight:400}.agent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.agent-card{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);border-left:4px solid var(--border);padding:16px;display:flex;flex-direction:column;gap:12px}.agent-card.level-advertencia{border-left-color:var(--warn);background:#fefce833}.agent-card.level-critico{border-left-color:var(--danger);background:#fee2e233}.agent-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.agent-card-name{font-weight:700;font-size:1rem;margin-bottom:4px}.agent-card-timer{font-family:SFMono-Regular,Consolas,monospace;font-size:2rem;font-weight:700;text-align:center;padding:6px 0}.agent-card.level-advertencia .agent-card-timer{color:var(--warn)}.agent-card.level-critico .agent-card-timer{color:var(--danger)}.agent-card-select{width:100%}.agent-card-disconnect{width:100%;margin-top:6px}.agent-card-doc{font-size:.72rem;color:var(--text-muted)}.agent-card-sin-jornada{text-align:center;color:var(--text-muted);font-size:.82rem;font-style:italic;padding:10px 0}.agent-card-breakdown{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;font-size:.74rem;color:var(--text-muted);border-top:1px dashed var(--border);padding-top:8px}.agent-card-breakdown strong{color:var(--text)}.live-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--ok);margin-left:8px;box-shadow:0 0 #22c55e80;animation:live-pulse 1.6s infinite}@keyframes live-pulse{0%{box-shadow:0 0 #22c55e80}70%{box-shadow:0 0 0 7px #22c55e00}to{box-shadow:0 0 #22c55e00}}.monitor-counters{display:flex;gap:22px}.monitor-counter{text-align:center;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:8px 20px}.monitor-counter-value{font-size:1.5rem;font-weight:700;line-height:1.1}.monitor-counter-label{font-size:.68rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.monitor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}.monitor-search{flex:1;min-width:220px;max-width:320px}.config-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}.config-panel-header h1{margin:0 0 4px}.config-panel-actions{display:flex;gap:10px}.config-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.config-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:10px;position:relative}.config-card.is-hidden{opacity:.55}.config-card-header{display:flex;align-items:center;gap:10px}.config-card-icon{font-size:1.3rem;width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:#eff6ff;border-radius:8px;flex-shrink:0}.config-card-title{flex:1;min-width:0}.config-card-title input[type=text]{font-weight:700;font-size:.95rem;width:100%;border:none;background:transparent;padding:2px 0;border-bottom:1px dashed transparent}.config-card-title input[type=text]:hover,.config-card-title input[type=text]:focus{border-bottom-color:var(--border);outline:none}.config-card-delete{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:1rem;padding:4px;border-radius:6px}.config-card-delete:hover{background:#fee2e2;color:var(--danger)}.config-field-label{font-size:.75rem;color:var(--text-muted);font-weight:600}.config-card input[type=number]{width:100%;font-size:1.1rem;padding:8px 10px}.config-card-hint{font-size:.75rem;color:var(--text-muted)}.config-card-color{display:flex;align-items:center;gap:8px}.config-card-color input[type=color]{width:32px;height:28px;padding:0;border:1px solid var(--border);border-radius:6px}.config-card-badge{position:absolute;top:12px;right:44px;font-size:.68rem}.config-note{margin-top:18px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:var(--radius);padding:12px 14px;font-size:.82rem;color:#1e40af}.config-note strong{color:#1e3a8a}.new-estado-card{border:1.5px dashed var(--border);display:flex;align-items:center;justify-content:center}.new-estado-card button{width:100%;height:100%;min-height:90px;background:transparent;border:none;cursor:pointer;color:var(--text-muted);font-weight:600}.new-estado-card button:hover{color:var(--primary)}.grupos-tabbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.grupo-tab{padding:8px 16px;border-radius:999px;border:1px solid var(--border);background:var(--bg-card);cursor:pointer;font-size:.85rem;font-weight:600;color:var(--text-muted)}.grupo-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.grupo-tab-new{border-style:dashed}.day-toggle-row{display:flex;flex-wrap:wrap;gap:8px}.day-toggle{padding:8px 16px;border-radius:999px;border:none;cursor:pointer;font-size:.8rem;font-weight:700;background:#e2e8f0;color:var(--text-muted)}.day-toggle.active{background:var(--primary);color:#fff}.pausas-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:8px}.pausas-actions{display:flex;gap:8px}.btn-pausa-break{background:#78350f;color:#fde68a}.btn-pausa-almuerzo{background:#4c1d95;color:#ddd6fe}.btn-pausa-otro{background:#334155;color:#e2e8f0}.pausa-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;margin-bottom:8px}.pausa-tipo-badge{font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:999px;text-transform:capitalize;flex-shrink:0;width:90px;text-align:center}.pausa-tipo-break{background:#fef3c7;color:#92400e}.pausa-tipo-almuerzo{background:#ede9fe;color:#5b21b6}.pausa-tipo-otro{background:#e2e8f0;color:#334155}.pausa-row input[type=text]{width:110px}.pausa-row input[type=time]{flex:1;min-width:100px}.pausa-row-sep{color:var(--text-muted)}.agentes-legend{display:flex;gap:18px;font-size:.78rem;color:var(--text-muted);margin:6px 0 14px;flex-wrap:wrap}.legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:middle}.agentes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.agente-card{border:2px solid var(--border);border-radius:10px;padding:12px 14px;cursor:pointer;background:var(--bg-card);transition:transform .06s ease}.agente-card:active{transform:scale(.98)}.agente-card-nombre{font-weight:700;font-size:.85rem}.agente-card-doc{font-size:.75rem;color:var(--text-muted)}.agente-card-conflicto-txt{font-size:.7rem;margin-top:6px}.agente-card-disponible{border-color:var(--border)}.agente-card-seleccionado{border-color:var(--primary);background:#eff6ff}.agente-card-seleccionado .agente-card-nombre{color:var(--primary-dark)}.agente-card-conflicto{border-color:var(--danger);background:#fef2f2;cursor:not-allowed;opacity:.85}.agente-card-conflicto .agente-card-nombre{color:#991b1b}.agente-card-conflicto .agente-card-conflicto-txt{color:#b91c1c}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:6px}.calendar-nav{display:flex;align-items:center;gap:6px}.calendar-range-label{font-weight:700;font-size:.9rem;margin-left:8px;min-width:180px}.calendar-grid-week{display:grid;grid-template-columns:repeat(7,minmax(140px,1fr));gap:10px;overflow-x:auto}.calendar-day-col{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:10px;min-height:160px;display:flex;flex-direction:column;gap:8px}.calendar-day-col.today{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset}.calendar-day-col-header{text-align:center;border-bottom:1px solid var(--border);padding-bottom:6px}.calendar-day-name{font-size:.72rem;color:var(--text-muted);text-transform:uppercase;font-weight:700}.calendar-day-num{font-size:1.1rem;font-weight:700}.calendar-day-col.today .calendar-day-num{color:var(--primary)}.calendar-shift-empty{color:var(--text-muted);font-size:.78rem;text-align:center;margin-top:12px;font-style:italic}.calendar-shift-chip{border-radius:8px;padding:8px 10px;font-size:.78rem;border-left:3px solid;background:#f8fafc}.calendar-shift-chip.origen-grupo{border-left-color:#3b82f6;background:#eff6ff}.calendar-shift-chip.origen-individual{border-left-color:#a855f7;background:#faf5ff}.calendar-shift-horas{font-weight:700;font-family:SFMono-Regular,Consolas,monospace}.calendar-shift-grupo{color:var(--text-muted);font-size:.72rem;margin-top:2px}.calendar-shift-pausas{margin-top:6px;font-size:.7rem;color:var(--text-muted);border-top:1px dashed var(--border);padding-top:4px}.calendar-shift-notas{margin-top:4px;font-size:.72rem;font-style:italic;color:var(--text-muted)}.calendar-grid-month-header{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:6px}.calendar-month-dayname{text-align:center;font-size:.72rem;font-weight:700;color:var(--text-muted);text-transform:uppercase}.calendar-grid-month{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar-day-cell{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:8px;min-height:84px;display:flex;flex-direction:column;gap:6px}.calendar-day-cell.other-month{opacity:.4}.calendar-day-cell.today{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset}.calendar-day-cell.has-shift{cursor:pointer}.calendar-day-cell-num{font-size:.82rem;font-weight:700}.calendar-day-cell.today .calendar-day-cell-num{color:var(--primary)}.calendar-shift-pill{font-size:.68rem;font-weight:700;padding:4px 6px;border-radius:6px;text-align:center;font-family:SFMono-Regular,Consolas,monospace}.calendar-shift-pill.origen-grupo{background:#dbeafe;color:#1d4ed8}.calendar-shift-pill.origen-individual{background:#f3e8ff;color:#7e22ce}.calendar-detail-panel{margin-top:16px}.team-calendar-wrap{overflow-x:auto}.team-calendar-table{min-width:900px}.team-calendar-table th,.team-calendar-table td{text-align:center}.team-calendar-name-col{text-align:left!important;min-width:160px}.team-calendar-today-col{background:#eff6ff}.team-calendar-empty{color:var(--text-muted)}@media (max-width: 800px){.calendar-grid-week{grid-template-columns:repeat(7,minmax(120px,1fr))}}.toggle-row{margin-bottom:10px}.switch{display:flex;align-items:center;gap:10px;font-size:.9rem;cursor:pointer}.switch input{width:18px;height:18px}
