.shift-calendar-container{padding:1.5rem;background:var(--color-white);border-radius:var(--card-radius);border:1px solid var(--color-border-subtle);box-shadow:var(--card-shadow);display:flex;flex-direction:column;gap:1.25rem}.calendar-header-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border-subtle)}.nav-controls{display:flex;align-items:center;gap:.5rem}.calendar-nav-btn{background:var(--color-bg-ice);border:1px solid var(--color-border-subtle);color:var(--color-text-slate);width:36px;height:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition-fast)}.calendar-nav-btn:hover{background:#ebf2f6;color:var(--color-primary-navy);border-color:var(--color-primary-navy)}.calendar-today-btn{background:var(--color-bg-ice);border:1px solid var(--color-border-subtle);color:var(--color-primary-navy);font-weight:600;font-size:.85rem;padding:0 .85rem;height:36px;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-fast)}.calendar-today-btn:hover{background:#ebf2f6;border-color:var(--color-primary-navy)}.calendar-current-title{font-size:1.2rem;font-weight:700;color:var(--color-primary-navy);margin-left:.5rem;min-width:180px}.view-mode-toggle{display:flex;background:var(--color-bg-ice);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);padding:3px;gap:2px}.view-mode-toggle .toggle-btn{background:none;border:none;color:var(--color-text-muted);font-size:.85rem;font-weight:600;padding:.4rem .85rem;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:var(--transition-fast)}.view-mode-toggle .toggle-btn.active{background:var(--color-white);color:var(--color-primary-navy);box-shadow:0 1px 3px #0f3d5c14}.calendar-month-grid{display:flex;flex-direction:column;width:100%;border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);overflow:hidden}.calendar-weekdays-row{display:grid;grid-template-columns:repeat(7,1fr);background:var(--color-bg-ice);border-bottom:1px solid var(--color-border-subtle)}.calendar-weekday-cell{padding:.65rem .5rem;text-align:center;font-size:.8rem;font-weight:700;color:var(--color-primary-navy);text-transform:uppercase;letter-spacing:.04em}.calendar-days-grid{display:grid;grid-template-columns:repeat(7,1fr);background:var(--color-border-subtle);gap:1px}.calendar-day-cell{background:var(--color-white);min-height:100px;padding:.45rem;display:flex;flex-direction:column;gap:.35rem;cursor:pointer;transition:background var(--transition-fast)}.calendar-day-cell:hover{background:#f8fafc}.calendar-day-cell.out-month{background:#fafafa;opacity:.6}.calendar-day-cell.is-today{background:#f0fdf4}.day-cell-header{display:flex;align-items:center;justify-content:space-between}.day-number{font-size:.85rem;font-weight:600;color:var(--color-text-slate);width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%}.day-number.today-badge{background:var(--color-primary-navy);color:var(--color-white);font-weight:700}.day-shift-count-badge{font-size:.7rem;font-weight:700;background:#eaf2f7;color:var(--color-primary-navy);padding:.1rem .4rem;border-radius:10px;border:1px solid var(--badge-admin-border)}.day-cell-events{display:flex;flex-direction:column;gap:.25rem;flex:1}.shift-pill-badge{display:flex;align-items:center;gap:.3rem;padding:.2rem .4rem;border-radius:4px;font-size:.72rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid transparent;transition:transform .1s ease}.shift-pill-badge:hover{transform:translateY(-1px)}.shift-pill-badge .status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.shift-pill-badge.status-completed{background:var(--status-success-bg);color:var(--status-success-text);border-color:var(--status-success-border)}.shift-pill-badge.status-completed .status-dot{background:var(--status-success-text)}.shift-pill-badge.status-in-progress{background:#eaf2f7;color:var(--color-primary-navy);border-color:#b7d2e2}.shift-pill-badge.status-in-progress .status-dot{background:var(--color-primary-navy)}.shift-pill-badge.status-pending{background:#f1f5f9;color:#475569;border-color:#e2e8f0}.shift-pill-badge.status-pending .status-dot{background:#94a3b8}.shift-pill-time{font-weight:700}.shift-pill-title{overflow:hidden;text-overflow:ellipsis}.shift-pill-more{font-size:.7rem;color:var(--color-text-muted);font-weight:600;padding-left:.2rem}.calendar-week-container{overflow-x:auto;border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm)}.calendar-week-columns{display:grid;grid-template-columns:repeat(7,minmax(140px,1fr));background:var(--color-border-subtle);gap:1px}.calendar-week-col{background:var(--color-white);min-height:380px;display:flex;flex-direction:column}.calendar-week-col.is-today-col{background:#f8fafc}.week-col-header{padding:.75rem .5rem;text-align:center;background:var(--color-bg-ice);border-bottom:1px solid var(--color-border-subtle);display:flex;flex-direction:column;align-items:center;gap:.2rem;cursor:pointer}.week-col-header:hover{background:#ebf2f6}.week-day-name{font-size:.75rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase}.week-day-number{font-size:1rem;font-weight:700;color:var(--color-text-slate);width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%}.week-day-number.today-badge{background:var(--color-primary-navy);color:var(--color-white)}.week-col-body{padding:.6rem;display:flex;flex-direction:column;gap:.6rem;flex:1}.week-empty-slot{text-align:center;color:var(--color-text-muted);font-size:.9rem;padding:1.5rem 0}.week-shift-card{background:var(--color-white);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);padding:.65rem;display:flex;flex-direction:column;gap:.4rem;box-shadow:0 1px 3px #0f3d5c0a;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.week-shift-card:hover{transform:translateY(-2px);box-shadow:var(--card-shadow);border-color:var(--color-primary-navy)}.week-shift-card.status-completed{border-left:4px solid var(--color-accent-green)}.week-shift-card.status-in-progress{border-left:4px solid var(--color-primary-navy)}.week-shift-card.status-pending{border-left:4px solid #CBD5E1}.week-shift-header{display:flex;align-items:center;justify-content:space-between;gap:.25rem}.week-shift-time{font-size:.75rem;font-weight:700;color:var(--color-primary-navy);display:flex;align-items:center;gap:.25rem}.week-shift-worker{display:flex;align-items:center;gap:.3rem;font-size:.8rem;font-weight:600;color:var(--color-text-slate)}.week-shift-location .service-title{display:flex;align-items:center;gap:.3rem;font-size:.75rem;color:var(--color-text-muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:999;padding:1rem}.modal-content.calendar-modal{background:var(--color-white);border-radius:var(--card-radius);border:1px solid var(--color-border-subtle);box-shadow:0 20px 40px #0f3d5c26;width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.modal-content.admin-day-modal{max-width:600px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.4rem;border-bottom:1px solid var(--color-border-subtle);background:var(--color-bg-ice)}.modal-title-group{display:flex;align-items:center;gap:.6rem;color:var(--color-primary-navy)}.modal-title-group h3{font-size:1.1rem;font-weight:700}.close-modal-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.3rem;border-radius:var(--radius-sm);display:flex;align-items:center}.close-modal-btn:hover{background:#e2e8f0;color:var(--color-text-slate)}.modal-body{padding:1.4rem;overflow-y:auto;display:flex;flex-direction:column;gap:1rem}.modal-info-card{display:flex;flex-direction:column;gap:1rem}.modal-info-header{display:flex;align-items:center;justify-content:space-between}.shift-date-badge{display:flex;align-items:center;gap:.4rem;font-weight:700;font-size:.95rem;color:var(--color-primary-navy)}.modal-detail-rows{display:flex;flex-direction:column;gap:.6rem;background:var(--color-bg-ice);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);padding:.85rem}.detail-row{display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.detail-row .label{display:flex;align-items:center;gap:.4rem;color:var(--color-text-muted)}.detail-row .value{font-weight:600;color:var(--color-text-slate)}.service-highlight-row{border-top:1px dashed var(--color-border-subtle);padding-top:.5rem;margin-top:.25rem}.service-cell-action{display:flex;align-items:center;gap:.5rem}.clock-history-box{background:var(--color-white);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);padding:.85rem;display:flex;flex-direction:column;gap:.4rem}.clock-history-box h4{font-size:.85rem;font-weight:700;color:var(--color-primary-navy)}.clock-entry{display:flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:500}.clock-entry.checkin{color:var(--color-primary-navy)}.clock-entry.checkout{color:var(--status-success-text)}.modal-clock-actions{display:flex;gap:.75rem;margin-top:.5rem}.full-width{width:100%}.admin-day-shifts-list{display:flex;flex-direction:column;gap:1rem}.day-count-summary-bar{display:flex;align-items:center;justify-content:space-between;padding-bottom:.5rem;border-bottom:1px solid var(--color-border-subtle);font-size:.85rem;font-weight:600}.day-count-indicator{color:var(--color-primary-navy);font-weight:700}.total-workers-indicator{color:var(--color-text-muted)}.grouped-shift-card{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-white);overflow:hidden;transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.grouped-shift-card:hover{border-color:#b7d2e2;box-shadow:0 2px 8px #0f3d5c0f}.grouped-shift-header{padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.75rem;cursor:pointer;background:var(--color-white);transition:background var(--transition-fast)}.grouped-shift-header:hover{background:#f8fafc}.grouped-shift-top-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;width:100%}.grouped-shift-main-info{display:flex;flex-direction:column;gap:.35rem;flex:1}.info-row-time{display:flex;align-items:center;gap:.4rem;font-size:1rem;color:var(--color-primary-navy);font-weight:700}.location-text{color:var(--color-text-slate);font-size:.875rem;display:flex;align-items:center;gap:.4rem}.service-linked-row.group-level-service{margin-top:.25rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:var(--color-bg-ice);padding:.4rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--color-border-subtle);width:100%}.grouped-shift-meta-controls{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.worker-count-badge{display:inline-flex;align-items:center;gap:.4rem;background:#eaf2f7;color:var(--color-primary-navy);font-weight:700;font-size:.8rem;padding:.35rem .65rem;border-radius:20px;border:1px solid #B7D2E2}.toggle-accordion-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:.25rem;border-radius:var(--radius-sm);transition:var(--transition-fast)}.toggle-accordion-btn:hover{color:var(--color-primary-navy);background:#e2e8f0}.grouped-workers-list-wrapper{background:#f8fafc;border-top:1px solid var(--color-border-subtle);padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.65rem}.workers-section-title{display:flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.workers-cards-grid{display:flex;flex-direction:column;gap:.5rem}.worker-item-row{background:var(--color-white);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);padding:.65rem .85rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.worker-item-identity{display:flex;align-items:center;gap:.6rem}.worker-avatar-icon{width:28px;height:28px;border-radius:50%;background:var(--color-bg-ice);color:var(--color-primary-navy);display:flex;align-items:center;justify-content:center;flex-shrink:0}.worker-name-group{display:flex;flex-direction:column}.worker-name{font-size:.875rem;color:var(--color-text-slate);font-weight:600}.worker-email{font-size:.75rem;color:var(--color-text-muted)}.worker-item-status-col{display:flex;align-items:center;gap:.75rem}.fichajes-mini-timestamps{display:flex;gap:.5rem;font-size:.75rem;font-weight:600;color:var(--color-text-muted);background:#f1f5f9;padding:.2rem .5rem;border-radius:4px}.careers-page{min-height:100vh;background-color:#faf8f5;color:#2d3748;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex;flex-direction:column}.careers-header{background:#fff;border-bottom:1px solid #e2e8f0;padding:1.25rem 2rem;box-shadow:0 1px 3px #0000000d}.careers-header-container{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.careers-brand{display:flex;align-items:center;gap:.75rem}.careers-logo{width:42px;height:42px;background:linear-gradient(135deg,#059669,#10b981);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 12px #10b98140}.careers-brand-name{font-size:1.35rem;font-weight:800;color:#065f46;letter-spacing:-.02em}.careers-brand-sub{font-size:.8rem;color:#6b7280;font-weight:500}.careers-main{flex:1;max-width:900px;margin:0 auto;padding:3.5rem 1.5rem;display:flex;flex-direction:column;align-items:center;text-align:center}.careers-hero-badge{background-color:#ecfdf5;border:1px solid #a7f3d0;color:#047857;font-size:.85rem;font-weight:600;padding:.4rem 1rem;border-radius:9999px;display:inline-flex;align-items:center;gap:.5rem;margin-bottom:1.5rem}.careers-title{font-size:2.75rem;font-weight:800;line-height:1.2;color:#111827;margin-bottom:1.25rem;letter-spacing:-.03em}.careers-title highlight{color:#059669}.careers-subtitle{font-size:1.2rem;line-height:1.6;color:#4b5563;max-width:680px;margin-bottom:2.5rem}.careers-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;width:100%;margin-bottom:3rem}.careers-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:1.75rem;text-align:left;box-shadow:0 4px 6px -1px #0000000a,0 2px 4px -2px #0000000a;transition:transform .2s ease,box-shadow .2s ease}.careers-card:hover{transform:translateY(-3px);box-shadow:0 10px 20px -5px #00000014}.careers-card-icon{width:48px;height:48px;background-color:#f0fdf4;color:#059669;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:1rem}.careers-card-title{font-size:1.15rem;font-weight:700;color:#1f2937;margin-bottom:.5rem}.careers-card-desc{font-size:.925rem;color:#6b7280;line-height:1.5}.careers-contact-box{background:linear-gradient(135deg,#fff,#f0fdf4);border:1.5px solid #a7f3d0;border-radius:20px;padding:2.5rem;width:100%;max-width:650px;box-shadow:0 10px 30px -10px #10b98126}.careers-contact-box h3{font-size:1.5rem;font-weight:700;color:#065f46;margin-bottom:.75rem}.careers-contact-box p{font-size:.975rem;color:#4b5563;margin-bottom:1.75rem}.careers-contact-buttons{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.careers-btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.85rem 1.5rem;font-size:.95rem;font-weight:600;border-radius:12px;text-decoration:none;transition:all .2s ease;cursor:pointer;border:none}.careers-btn-email{background-color:#059669;color:#fff;box-shadow:0 4px 12px #0596694d}.careers-btn-email:hover{background-color:#047857}.careers-btn-whatsapp{background-color:#25d366;color:#fff;box-shadow:0 4px 12px #25d3664d}.careers-btn-whatsapp:hover{background-color:#1da851}.careers-footer{background-color:#fff;border-top:1px solid #e5e7eb;padding:1.5rem 2rem;text-align:center;font-size:.85rem;color:#9ca3af}.careers-login-link{display:inline-flex;align-items:center;gap:.4rem;color:#4b5563;font-weight:600;text-decoration:none;font-size:.9rem;padding:.5rem 1rem;border-radius:8px;border:1px solid #d1d5db;transition:background-color .2s ease}.careers-login-link:hover{background-color:#f3f4f6}:root{--color-primary-navy: #0F3D5C;--color-primary-navy-dark: #0A2B42;--color-accent-green: #2D8A6E;--color-accent-green-dark: #226B55;--color-white: #FFFFFF;--color-bg-ice: #F4F7F6;--color-text-slate: #33424A;--color-text-muted: #5D727D;--color-border-subtle: #DCE4E2;--color-border-focus: #0F3D5C;--bg-primary: var(--color-bg-ice);--bg-surface: var(--color-white);--bg-card: var(--color-white);--bg-hover: #EBF1F0;--text-primary: var(--color-text-slate);--text-secondary: var(--color-text-muted);--text-muted: #7A8E99;--text-inverse: var(--color-white);--border-color: var(--color-border-subtle);--border-hover: #0F3D5C;--accent-primary: var(--color-primary-navy);--accent-hover: var(--color-primary-navy-dark);--accent-emerald: var(--color-accent-green);--accent-amber: #D97706;--accent-rose: #DC2626;--btn-min-height: 52px;--btn-padding-x: 28px;--btn-padding-y: 12px;--btn-font-size: 16px;--btn-font-weight: 600;--btn-radius: 8px;--btn-primary-bg: var(--color-primary-navy);--btn-primary-text: var(--color-white);--btn-primary-hover: var(--color-primary-navy-dark);--btn-success-bg: var(--color-accent-green);--btn-success-text: var(--color-white);--btn-success-hover: var(--color-accent-green-dark);--btn-secondary-bg: var(--color-white);--btn-secondary-border: 1px solid var(--color-primary-navy);--btn-secondary-text: var(--color-primary-navy);--btn-secondary-hover: #EBF2F6;--card-border: 1px solid var(--color-border-subtle);--card-radius: 10px;--card-shadow: 0 2px 8px rgba(15, 61, 92, .04);--shadow-sm: 0 1px 2px rgba(15, 61, 92, .04);--shadow-md: 0 4px 12px rgba(15, 61, 92, .06);--shadow-lg: 0 8px 24px rgba(15, 61, 92, .08);--radius-sm: 8px;--radius-md: 10px;--radius-lg: 12px;--space-1: 8px;--space-2: 16px;--space-3: 24px;--space-4: 32px;--space-5: 40px;--space-6: 48px;--transition-fast: .15s ease;--transition-normal: .25s ease;--font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--status-success-bg: #E6F5EF;--status-success-text: #0D5C3A;--status-success-border: #A5DEC6;--status-warning-bg: #FEF3E6;--status-warning-text: #B45309;--status-warning-border: #FCD34D;--status-danger-bg: #FEECEB;--status-danger-text: #B91C1C;--status-danger-border: #FCA5A5;--status-info-bg: #EAF2F7;--status-info-text: var(--color-primary-navy);--status-info-border: #B7D2E2;--badge-admin-bg: #EAF2F7;--badge-admin-text: var(--color-primary-navy);--badge-admin-border: #B7D2E2;--badge-ceo-bg: #EEF2FF;--badge-ceo-text: #312E81;--badge-ceo-border: #C7D2FE;--badge-worker-bg: #F1F5F9;--badge-worker-text: #334155;--badge-worker-border: #CBD5E1}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--color-bg-ice);color:var(--color-text-slate);min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased}#root,.page-layout{min-height:100vh;display:flex;flex-direction:column}.app-header{background-color:var(--color-white);border-bottom:1px solid var(--color-border-subtle);position:sticky;top:0;z-index:50;padding:.9rem 1.5rem;box-shadow:0 1px 3px #0f3d5c08}.header-container{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:.75rem}.brand-header-logo{height:44px;width:auto;max-width:180px;object-fit:contain;display:block}.brand-logo{width:40px;height:40px;background:var(--color-primary-navy);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--color-white)}.brand-name{font-size:1.25rem;font-weight:700;letter-spacing:-.025em;color:var(--color-primary-navy)}.brand-tagline{font-size:.75rem;color:var(--color-text-muted);display:block}.header-actions{display:flex;align-items:center;gap:1rem}.language-selector{display:flex;align-items:center;gap:.4rem;background:var(--color-bg-ice);border:1px solid var(--color-border-subtle);padding:.4rem .75rem;border-radius:var(--radius-sm);color:var(--color-text-slate)}.language-selector .icon-globe{color:var(--color-primary-navy)}.lang-btn{background:none;border:none;color:var(--color-text-muted);font-size:.8rem;font-weight:600;cursor:pointer;padding:.2rem .4rem;border-radius:4px;transition:var(--transition-fast)}.lang-btn.active,.lang-btn:hover{color:var(--color-primary-navy);background:#ebf2f6}.divider{color:var(--color-border-subtle);font-size:.75rem}.user-profile-badge{display:flex;align-items:center;gap:.75rem;background:var(--color-bg-ice);border:1px solid var(--color-border-subtle);padding:.35rem .85rem;border-radius:var(--radius-sm)}.role-icon .icon-admin{color:var(--color-primary-navy)}.role-icon .icon-worker{color:var(--status-success-text)}.user-info{display:flex;flex-direction:column}.user-name{font-size:.85rem;font-weight:600;color:var(--color-text-slate)}.role-pill{font-size:.7rem;font-weight:600;text-transform:capitalize}.role-pill.role-admin{color:var(--color-primary-navy)}.role-pill.role-ceo{color:var(--badge-ceo-text)}.role-pill.role-trabajador{color:var(--status-success-text)}.logout-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.3rem;border-radius:var(--radius-sm);transition:var(--transition-fast);display:flex;align-items:center}.logout-btn:hover{color:var(--status-danger-text);background:var(--status-danger-bg)}.auth-container{flex:1;display:flex;align-items:center;justify-content:center;padding:2.5rem 1rem;background:var(--color-bg-ice)}.auth-card{width:100%;max-width:440px;background:var(--color-white);border:1px solid var(--color-border-subtle);border-radius:var(--card-radius);padding:2.5rem 2rem;box-shadow:var(--card-shadow)}.auth-form{display:flex;flex-direction:column;gap:1.5rem}.auth-logo-header{display:flex;align-items:center;justify-content:flex-start;margin-bottom:.25rem}.auth-logo-img{height:56px;width:auto;max-width:200px;object-fit:contain;display:block}.form-title{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;color:var(--color-primary-navy)}.form-subtitle{font-size:.875rem;color:var(--color-text-muted);margin-top:-.75rem}.input-group{display:flex;flex-direction:column;gap:.45rem}.label-row{display:flex;justify-content:space-between;align-items:center}label{font-size:.875rem;font-weight:500;color:var(--color-text-slate)}.input-wrapper{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:.95rem;color:var(--color-text-muted)}input[type=email],input[type=password],input[type=text]{width:100%;min-height:48px;padding:.75rem .95rem .75rem 2.75rem;background:var(--color-white);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);color:var(--color-text-slate);font-size:16px;font-family:var(--font-family);transition:var(--transition-fast)}.input-wrapper input.has-toggle{padding-right:2.85rem}.password-toggle-btn{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:transparent;border:none;padding:.35rem;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:color var(--transition-fast),background-color var(--transition-fast);z-index:2}.password-toggle-btn:hover{color:var(--color-primary-navy);background-color:#0f3d5c0f}.password-toggle-btn:focus-visible{outline:2px solid var(--color-primary-navy);outline-offset:1px}input:focus{outline:none;border-color:var(--color-primary-navy);box-shadow:0 0 0 3px #0f3d5c1f}.submit-btn{width:100%;min-height:var(--btn-min-height);padding:var(--btn-padding-y) var(--btn-padding-x);background:var(--btn-primary-bg);border:none;border-radius:var(--btn-radius);color:var(--btn-primary-text);font-weight:var(--btn-font-weight);font-size:var(--btn-font-size);font-family:var(--font-family);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.6rem;transition:background-color var(--transition-fast);box-shadow:none}.submit-btn:hover:not(:disabled){background:var(--btn-primary-hover)}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.confirm-btn,.btn-success{min-height:var(--btn-min-height);padding:var(--btn-padding-y) var(--btn-padding-x);background:var(--btn-success-bg);border:none;border-radius:var(--btn-radius);color:var(--btn-success-text);font-weight:var(--btn-font-weight);font-size:var(--btn-font-size);font-family:var(--font-family);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:background-color var(--transition-fast)}.confirm-btn:hover:not(:disabled),.btn-success:hover:not(:disabled){background:var(--btn-success-hover)}.secondary-btn{min-height:var(--btn-min-height);padding:var(--btn-padding-y) var(--btn-padding-x);background:var(--btn-secondary-bg);border:var(--btn-secondary-border);border-radius:var(--btn-radius);color:var(--btn-secondary-text);font-weight:500;font-size:var(--btn-font-size);font-family:var(--font-family);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:background-color var(--transition-fast)}.secondary-btn:hover{background:var(--btn-secondary-hover)}.link-btn{background:none;border:none;color:var(--color-primary-navy);font-size:.875rem;font-weight:500;cursor:pointer;padding:0}.link-btn:hover{text-decoration:underline}.back-btn{background:none;border:none;color:var(--color-text-muted);font-size:.875rem;cursor:pointer;display:flex;align-items:center;gap:.4rem;padding:0;margin-bottom:.5rem}.back-btn:hover{color:var(--color-text-slate)}.alert-box{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;line-height:1.4}.alert-error{background:var(--status-danger-bg);border:1px solid var(--status-danger-border);color:var(--status-danger-text)}.alert-success{background:var(--status-success-bg);border:1px solid var(--status-success-border);color:var(--status-success-text)}.alert-warning{background:var(--status-warning-bg);border:1px solid var(--status-warning-border);color:var(--status-warning-text)}.dashboard-container{flex:1;max-width:1100px;margin:0 auto;width:100%;padding:2rem 1.5rem}.dashboard-content{display:flex;flex-direction:column;gap:1.75rem}.welcome-banner{background:var(--color-white);border:1px solid var(--color-border-subtle);border-radius:var(--card-radius);padding:1.75rem 2rem;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--card-shadow)}.welcome-text h2{font-size:1.6rem;font-weight:700;color:var(--color-primary-navy)}.welcome-text .subtitle{color:var(--color-text-muted);font-size:.95rem;margin-top:.25rem}.banner-badge{width:56px;height:56px;border-radius:50%;background:var(--color-bg-ice);border:1px solid var(--color-border-subtle);display:flex;align-items:center;justify-content:center}.admin-icon{color:var(--color-primary-navy)}.ceo-icon{color:var(--badge-ceo-text)}.worker-icon{color:var(--status-success-text)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem}.card{background:var(--color-white);border:1px solid var(--color-border-subtle);border-radius:var(--card-radius);padding:1.5rem;box-shadow:var(--card-shadow);display:flex;flex-direction:column;gap:1.25rem}.card-header{display:flex;align-items:center;gap:.6rem;border-bottom:1px solid var(--color-border-subtle);padding-bottom:.75rem;color:var(--color-primary-navy)}.card-header h3{font-size:1.15rem;font-weight:700;color:var(--color-primary-navy)}.card-body{display:flex;flex-direction:column;gap:1rem}.info-row{display:flex;justify-content:space-between;align-items:center;font-size:.875rem;padding:.5rem 0;border-bottom:1px solid var(--color-border-subtle)}.info-row:last-child{border-bottom:none}.info-row .label{display:flex;align-items:center;gap:.4rem;color:var(--color-text-muted)}.info-row .value{font-weight:500;color:var(--color-text-slate)}.role-tag,.role-pill{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600}.role-tag.role-admin,.role-pill.role-admin{background:var(--badge-admin-bg);color:var(--badge-admin-text);border:1px solid var(--badge-admin-border)}.role-tag.role-ceo,.role-pill.role-ceo{background:var(--badge-ceo-bg);color:var(--badge-ceo-text);border:1px solid var(--badge-ceo-border)}.role-tag.role-trabajador,.role-pill.role-trabajador{background:var(--badge-worker-bg);color:var(--badge-worker-text);border:1px solid var(--badge-worker-border)}.status-tag.active{display:inline-flex;align-items:center;color:var(--status-success-text);background:var(--status-success-bg);border:1px solid var(--status-success-border);padding:.2rem .6rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600}.security-prompt{display:flex;flex-direction:column;gap:1rem;font-size:.875rem;color:var(--color-text-muted)}.cancel-btn{margin-top:1rem;display:inline-block}.loading-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--color-text-muted)}.spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.dashboard-tabs{display:flex;gap:.75rem;border-bottom:1px solid var(--color-border-subtle);padding-bottom:.75rem;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.dashboard-tabs::-webkit-scrollbar{display:none}.tab-btn{background:var(--color-white);border:1px solid var(--color-border-subtle);color:var(--color-text-muted);padding:.65rem 1.25rem;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;font-family:var(--font-family);cursor:pointer;display:flex;align-items:center;gap:.5rem;white-space:nowrap;transition:var(--transition-fast)}.tab-btn:hover{color:var(--color-primary-navy);border-color:var(--color-primary-navy);background:#ebf2f6}.tab-btn.active{background:var(--color-primary-navy);border-color:var(--color-primary-navy);color:var(--color-white);font-weight:600}.tab-btn-ceo{border-color:var(--badge-ceo-border)}.alert-banner{display:flex;align-items:center;gap:.75rem;padding:.85rem 1.1rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;margin-bottom:1rem}.alert-banner.alert-error{background:var(--status-danger-bg);border:1px solid var(--status-danger-border);color:var(--status-danger-text)}.alert-banner.alert-success{background:var(--status-success-bg);border:1px solid var(--status-success-border);color:var(--status-success-text)}.worker-shifts-container{display:flex;flex-direction:column;gap:1.5rem}.shifts-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.25rem}.shift-card{background:var(--color-white);border:1px solid var(--color-border-subtle);border-radius:var(--card-radius);padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem;box-shadow:var(--card-shadow);transition:var(--transition-fast)}.shift-card:hover{border-color:var(--color-primary-navy)}.shift-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--color-border-subtle);padding-bottom:.6rem}.shift-date{display:flex;align-items:center;gap:.4rem;font-weight:700;color:var(--color-primary-navy);font-size:.95rem}.status-badge{padding:.25rem .65rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600}.status-pending{background:var(--status-warning-bg);color:var(--status-warning-text);border:1px solid var(--status-warning-border)}.status-in-progress{background:var(--status-info-bg);color:var(--status-info-text);border:1px solid var(--status-info-border)}.status-completed{background:var(--status-success-bg);color:var(--status-success-text);border:1px solid var(--status-success-border)}.photo-badge-before{background:#edf2f7;color:#2d3748;border:1px solid #CBD5E0}.photo-badge-after{background:var(--status-success-bg);color:var(--status-success-text);border:1px solid var(--status-success-border)}.photo-badge-incident{background:var(--status-danger-bg);color:var(--status-danger-text);border:1px solid var(--status-danger-border)}.photo-badge-equipment{background:var(--status-info-bg);color:var(--status-info-text);border:1px solid var(--status-info-border)}.photo-badge-marketing{background:#fef3e6;color:#b45309;border:1px solid #FCD34D}.shift-details{display:flex;flex-direction:column;gap:.5rem}.shift-row{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--color-text-muted)}.clock-records{background:var(--color-bg-ice);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);padding:.75rem 1rem;display:flex;flex-direction:column;gap:.4rem;font-size:.85rem}.clock-record{display:flex;align-items:center;gap:.4rem}.clock-record.checkin{color:var(--color-primary-navy);font-weight:600}.clock-record.checkout{color:var(--status-success-text);font-weight:600}.shift-actions{display:flex;gap:.75rem;margin-top:.25rem}.clock-btn{flex:1;min-height:var(--btn-min-height);padding:var(--btn-padding-y) var(--btn-padding-x);border-radius:var(--btn-radius);font-size:var(--btn-font-size);font-weight:600;font-family:var(--font-family);display:flex;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;transition:background-color var(--transition-fast);border:none}.checkin-btn{background:var(--color-primary-navy);color:var(--color-white)}.checkin-btn:hover{background:var(--color-primary-navy-dark)}.checkout-btn{background:var(--color-accent-green);color:var(--color-white)}.checkout-btn:hover{background:var(--color-accent-green-dark)}.admin-shifts-container{display:flex;flex-direction:column;gap:1.5rem}.admin-shifts-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.title-group{display:flex;align-items:center;gap:.6rem;color:var(--color-primary-navy)}.title-group h3{font-size:1.25rem;font-weight:700;color:var(--color-primary-navy)}.primary-btn{min-height:var(--btn-min-height);padding:var(--btn-padding-y) var(--btn-padding-x);background:var(--color-primary-navy);border:none;border-radius:var(--btn-radius);color:var(--color-white);font-weight:600;font-size:var(--btn-font-size);font-family:var(--font-family);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;transition:background-color var(--transition-fast)}.primary-btn:hover:not(:disabled){background:var(--color-primary-navy-dark)}.primary-btn:disabled{opacity:.6;cursor:not-allowed}.secondary-btn{min-height:var(--btn-min-height);padding:var(--btn-padding-y) var(--btn-padding-x);background:var(--btn-secondary-bg);border:var(--btn-secondary-border);border-radius:var(--btn-radius);color:var(--btn-secondary-text);font-weight:600;font-size:var(--btn-font-size);font-family:var(--font-family);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;white-space:nowrap;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.secondary-btn:hover:not(:disabled){background:var(--btn-secondary-hover)}.secondary-btn:disabled{opacity:.6;cursor:not-allowed}.danger-btn{min-height:var(--btn-min-height);padding:var(--btn-padding-y) var(--btn-padding-x);background:var(--status-danger-bg);border:1px solid var(--status-danger-border);border-radius:var(--btn-radius);color:var(--status-danger-text);font-weight:600;font-size:var(--btn-font-size);font-family:var(--font-family);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;white-space:nowrap;transition:var(--transition-fast)}.danger-btn:hover:not(:disabled){background:#fbd5d5}.danger-btn:disabled{opacity:.6;cursor:not-allowed}.add-btn{min-height:var(--btn-min-height);padding:var(--btn-padding-y) var(--btn-padding-x);font-size:var(--btn-font-size)}.form-card{background:var(--color-white);border:1px solid var(--color-border-subtle);border-radius:var(--card-radius);box-shadow:var(--card-shadow)}.shift-form{display:flex;flex-direction:column;gap:1.25rem;margin-top:.5rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.form-group{display:flex;flex-direction:column;gap:.45rem}.form-group label{font-size:.875rem;font-weight:500;color:var(--color-text-slate);display:flex;align-items:center;gap:.4rem}.form-group select,.form-group input[type=date],.form-group input[type=time],.form-group input[type=text],.form-group input[type=tel],.form-group textarea,.modal-form input,.modal-form select,.modal-form textarea{width:100%;min-height:48px;padding:.75rem 1rem;background:var(--color-white);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);color:var(--color-text-slate);font-size:16px;font-family:var(--font-family);transition:var(--transition-fast)}.form-group textarea,.modal-form textarea{min-height:80px;resize:vertical}.form-group select:focus,.form-group input:focus,.form-group textarea:focus,.modal-form input:focus,.modal-form select:focus,.modal-form textarea:focus{outline:none;border-color:var(--color-primary-navy);box-shadow:0 0 0 3px #0f3d5c1f}.form-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.75rem}.shifts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.25rem}.shift-admin-card,.service-card{display:flex;flex-direction:column;justify-content:space-between;background:var(--color-white);border:1px solid var(--color-border-subtle);border-radius:var(--card-radius);padding:1.5rem;box-shadow:var(--card-shadow);transition:var(--transition-fast)}.shift-admin-card:hover,.service-card:hover{border-color:var(--color-primary-navy)}.shift-card-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--color-border-subtle);padding-bottom:.75rem}.worker-info{display:flex;align-items:center;gap:.4rem;color:var(--text-primary);font-size:.9rem}.shift-card-body{display:flex;flex-direction:column;gap:.5rem;margin:.6rem 0}.info-item{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text-secondary)}.fichajes-summary{background:#0003;border-radius:var(--radius-sm);padding:.4rem .6rem;font-size:.75rem;color:var(--accent-primary)}.shift-card-footer{display:flex;justify-content:flex-end;border-top:1px solid var(--border-color);padding-top:.5rem}.icon-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.3rem;border-radius:var(--radius-sm);transition:var(--transition-fast)}.icon-btn.delete-btn:hover{color:var(--accent-rose);background:#f43f5e1a}.empty-state{text-align:center;padding:2.5rem 1rem;color:var(--text-secondary);background:var(--bg-surface);border:1px dashed var(--border-color);border-radius:var(--radius-lg)}.staff-manager-container{display:flex;flex-direction:column;gap:1.5rem}.staff-manager-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.staff-form{display:flex;flex-direction:column;gap:1.25rem;margin-top:.5rem}.staff-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.25rem}.staff-card{display:flex;flex-direction:column;justify-content:space-between;background:var(--color-white);border:1px solid var(--color-border-subtle);border-radius:var(--card-radius);padding:1.5rem;box-shadow:var(--card-shadow);transition:var(--transition-fast)}.staff-card:hover{border-color:var(--color-primary-navy)}.staff-card.inactive-card{opacity:.75;border-color:#cbd5e0;background:#f8fafc}.staff-card-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--color-border-subtle);padding-bottom:.75rem}.staff-identity{display:flex;align-items:center;gap:.6rem}.staff-name{font-size:1.05rem;font-weight:700;color:var(--color-primary-navy)}.staff-card-body{display:flex;flex-direction:column;gap:.5rem;margin:.8rem 0}.staff-card-footer{display:flex;flex-direction:column;align-items:stretch;border-top:1px solid var(--color-border-subtle);padding-top:.75rem;gap:.5rem}.staff-card-footer button,.status-toggle-btn,.rating-trigger-btn{width:100%}.status-toggle-btn{background:var(--color-white);border:1px solid var(--color-border-subtle);color:var(--color-text-muted);min-height:var(--btn-min-height);padding:var(--btn-padding-y) var(--btn-padding-x);border-radius:var(--btn-radius);font-size:var(--btn-font-size);font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;cursor:pointer;transition:var(--transition-fast)}.status-toggle-btn.deactivate-btn:hover{color:var(--status-danger-text);border-color:var(--status-danger-border);background:var(--status-danger-bg)}.status-toggle-btn.activate-btn:hover{color:var(--status-success-text);border-color:var(--status-success-border);background:var(--status-success-bg)}.rating-trigger-btn{min-height:var(--btn-min-height);padding:var(--btn-padding-y) var(--btn-padding-x);font-size:var(--btn-font-size);font-weight:600;border-radius:var(--btn-radius)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f3d5c73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.modal-card,.modal-container{width:100%;max-width:580px;max-height:90vh;overflow-y:auto;background:var(--color-white);border:1px solid var(--color-border-subtle);border-radius:var(--card-radius);padding:1.75rem;box-shadow:0 10px 30px #0f3d5c26;display:flex;flex-direction:column;gap:1.25rem}.modal-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--color-border-subtle);padding-bottom:.75rem}.modal-header h3{font-size:1.2rem;font-weight:700;color:var(--color-primary-navy)}.close-btn{color:var(--color-text-muted);background:none;border:none;cursor:pointer;padding:.3rem;border-radius:var(--radius-sm);transition:var(--transition-fast)}.close-btn:hover{color:var(--color-primary-navy);background:#ebf2f6}.rating-form{display:flex;flex-direction:column;gap:1rem;background:var(--color-bg-ice);border:1px solid var(--color-border-subtle);padding:1.25rem;border-radius:var(--radius-sm)}.star-picker{display:flex;align-items:center;gap:.4rem;margin-top:.25rem}.star-btn{background:none;border:none;cursor:pointer;padding:.2rem;transition:transform .15s ease}.star-btn:hover{transform:scale(1.2)}.score-number{margin-left:.5rem;font-weight:700;color:#b45309;font-size:1rem}.rating-form textarea{width:100%;padding:.75rem 1rem;background:var(--color-white);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);color:var(--color-text-slate);font-size:16px;font-family:var(--font-family);resize:vertical}.submit-rating-btn{min-height:var(--btn-min-height);padding:var(--btn-padding-y) var(--btn-padding-x);font-size:var(--btn-font-size)}.ratings-history-section{display:flex;flex-direction:column;gap:.75rem}.ratings-history-section h4{font-size:1rem;font-weight:700;color:var(--color-primary-navy)}.ratings-list{display:flex;flex-direction:column;gap:.75rem}.rating-item-card{background:var(--color-bg-ice);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);padding:.85rem 1rem;display:flex;flex-direction:column;gap:.4rem}.rating-item-header{display:flex;justify-content:space-between;align-items:center}.rating-stars{display:flex;align-items:center;gap:.25rem}.rating-num{font-size:.85rem;font-weight:700;color:#b45309;margin-left:.3rem}.evaluator-tag{display:flex;align-items:center;gap:.35rem;font-size:.75rem;color:var(--color-text-muted)}.rating-comment{font-size:.875rem;color:var(--color-text-slate);font-style:italic;margin:.2rem 0}.rating-date{display:flex;align-items:center;gap:.3rem;font-size:.75rem;color:var(--color-text-muted)}.empty-ratings{font-size:.85rem;color:var(--color-text-muted);font-style:italic}.hours-summary-card{margin-bottom:1.5rem;background:var(--color-white);border:1px solid var(--color-border-subtle);border-radius:var(--card-radius);box-shadow:var(--card-shadow)}.hours-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-top:1rem}.hours-metric{background:var(--color-bg-ice);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);padding:1.25rem 1rem;display:flex;flex-direction:column;gap:.4rem;transition:var(--transition-fast)}.hours-metric:hover{border-color:var(--color-primary-navy);background:#ebf1f0}.hours-metric .metric-label{font-size:.8rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.hours-metric .metric-value{font-size:1.75rem;font-weight:700;color:var(--color-primary-navy);display:flex;align-items:baseline;gap:.4rem}.hours-metric .metric-value small{font-size:.9rem;font-weight:500;color:var(--color-text-muted)}.hours-badge-item{background:var(--color-bg-ice);padding:.5rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--color-border-subtle);font-size:.825rem;color:var(--color-text-muted);margin-top:.5rem;display:flex;align-items:center;gap:.5rem}.hours-badge-item strong{color:var(--color-primary-navy)}.incidents-container{display:flex;flex-direction:column;gap:1.5rem}.incidents-header-card{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.incidents-filters-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;background:var(--bg-surface);padding:1.25rem;border-radius:var(--radius-lg);border:1px solid var(--border-color)}.filter-item{display:flex;flex-direction:column;gap:.35rem}.filter-item label{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:.35rem}.filter-item select,.form-group select{background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-primary);padding:.6rem .85rem;border-radius:var(--radius-md);font-size:.875rem;outline:none;cursor:pointer}.filter-item select:focus,.form-group select:focus{border-color:var(--accent-primary)}.incidents-grid{display:flex;flex-direction:column;gap:1rem}.incident-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:1rem;transition:border-color var(--transition-fast),transform var(--transition-fast)}.incident-card:hover{border-color:var(--border-hover)}.incident-card-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.incident-tags{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.incident-category-badge{background:#edf2f7;color:#2d3748;padding:.3rem .75rem;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;border:1px solid #CBD5E0}.incident-priority-badge{padding:.3rem .75rem;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600}.incident-priority-badge.priority-alta{background:var(--status-danger-bg);color:var(--status-danger-text);border:1px solid var(--status-danger-border)}.incident-priority-badge.priority-media{background:var(--status-warning-bg);color:var(--status-warning-text);border:1px solid var(--status-warning-border)}.incident-priority-badge.priority-baja{background:#edf2f7;color:#33424a;border:1px solid #CBD5E0}.incident-status-badge{padding:.3rem .75rem;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;display:inline-flex;align-items:center;gap:.4rem}.incident-status-badge.status-abierta{background:#fdf2f8;color:#9d174d;border:1px solid #FBCFE8}.incident-status-badge.status-en_curso{background:#e0f2fe;color:#0369a1;border:1px solid #7DD3FC}.incident-status-badge.status-resuelta,.incident-status-badge.status-cerrada{background:var(--status-success-bg);color:var(--status-success-text);border:1px solid var(--status-success-border)}.status-pending-read{background:#f5f5f4;color:#44403c;border:1px solid #D6D3D1}.incident-meta-row{display:flex;flex-wrap:wrap;gap:1.25rem;font-size:.8rem;color:var(--color-text-muted)}.incident-meta-item{display:flex;align-items:center;gap:.4rem}.incident-service-box{background:var(--color-bg-ice);border:1px solid var(--color-border-subtle);padding:.75rem 1rem;border-radius:var(--radius-sm);font-size:.85rem;color:var(--color-text-slate);display:flex;align-items:center;gap:.5rem}.incident-description{font-size:.9rem;color:var(--color-text-slate);line-height:1.6;white-space:pre-wrap;background:var(--color-bg-ice);padding:.85rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--color-border-subtle)}.incident-resolution-box{background:#e6f5ef;border:1px solid #A5DEC6;padding:1rem;border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:.5rem}.resolution-title{font-size:.8rem;font-weight:700;color:#0d5c3a;display:flex;align-items:center;gap:.4rem;text-transform:uppercase;letter-spacing:.05em}.resolution-text{font-size:.875rem;color:#0d5c3a;line-height:1.5;white-space:pre-wrap}.notice-banner{background:var(--status-warning-bg);border:1px solid var(--status-warning-border);color:var(--status-warning-text);padding:.75rem 1rem;border-radius:var(--radius-sm);font-size:.85rem;display:flex;align-items:center;gap:.6rem}.announcements-container{display:flex;flex-direction:column;gap:1.5rem}.announcement-card{background:var(--color-white);border:1px solid var(--color-border-subtle);border-radius:var(--card-radius);padding:1.5rem;box-shadow:var(--card-shadow);display:flex;flex-direction:column;gap:1rem;transition:border-color var(--transition-fast)}.announcement-card.unread{border-left:4px solid var(--status-warning-text);background:#fffdf9}.announcement-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border-subtle)}.announcement-title-group{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.announcement-title{font-size:1.15rem;font-weight:700;color:var(--color-primary-navy)}.scope-badge{font-size:.75rem;font-weight:600;padding:.25rem .65rem;border-radius:var(--radius-sm);display:inline-flex;align-items:center;gap:.35rem}.scope-badge.all{background:#eaf2f7;color:var(--color-primary-navy);border:1px solid #B7D2E2}.scope-badge.specific{background:#f3e8ff;color:#6b21a8;border:1px solid #D8B4FE}.announcement-body{background:var(--color-bg-ice);border:1px solid var(--color-border-subtle);padding:1rem 1.25rem;border-radius:var(--radius-sm);font-size:.9rem;color:var(--color-text-slate);line-height:1.6;white-space:pre-wrap}.recipient-radio-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin-bottom:.75rem}.radio-card{display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;background:var(--color-bg-ice);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);cursor:pointer;font-size:.85rem;font-weight:600;color:var(--color-text-slate);transition:var(--transition-fast)}.radio-card.active{border-color:var(--color-primary-navy);background:#ebf2f6;color:var(--color-primary-navy)}.workers-selection-box{background:var(--color-bg-ice);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);padding:.75rem;max-height:180px;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem}.worker-check-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-radius:var(--radius-sm);background:var(--color-white);border:1px solid var(--color-border-subtle);cursor:pointer;font-size:.85rem;color:var(--color-text-slate)}.worker-check-item:hover{border-color:var(--color-primary-navy)}.readers-list{display:flex;flex-direction:column;gap:.6rem;max-height:320px;overflow-y:auto}.reader-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--color-bg-ice);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);font-size:.85rem;color:var(--color-text-slate)}.onboarding-manager-container,.onboarding-container{display:flex;flex-direction:column;gap:1.5rem}.onboarding-manager-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.onboarding-form{display:flex;flex-direction:column;gap:1.25rem;margin-top:.5rem}.onboarding-admin-list{display:flex;flex-direction:column;gap:1rem}.onboarding-admin-item{display:flex;align-items:flex-start;gap:1.25rem;padding:1.5rem;background:var(--color-white);border:1px solid var(--color-border-subtle);border-radius:var(--card-radius);box-shadow:var(--card-shadow);transition:var(--transition-fast)}.onboarding-admin-item:hover{border-color:var(--color-primary-navy)}.resource-icon-wrapper{width:48px;height:48px;border-radius:var(--radius-sm);background:var(--color-bg-ice);border:1px solid var(--color-border-subtle);display:flex;align-items:center;justify-content:center;flex-shrink:0}.resource-icon-wrapper .icon-doc{color:var(--color-primary-navy)}.resource-icon-wrapper .icon-video{color:#9d174d}.resource-admin-details{flex:1;display:flex;flex-direction:column;gap:.4rem}.details-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.details-header h4{font-size:1.1rem;font-weight:700;color:var(--color-primary-navy)}.order-tag{background:#edf2f7;color:#33424a;border:1px solid #CBD5E0;padding:.2rem .5rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:700}.resource-admin-details .desc{font-size:.875rem;color:var(--color-text-slate);line-height:1.5}.url-link{display:inline-flex;align-items:center;gap:.4rem;color:var(--color-primary-navy);font-size:.825rem;font-weight:600;text-decoration:none;margin-top:.25rem;word-break:break-all}.url-link:hover{text-decoration:underline}.item-actions{display:flex;align-items:center;gap:.5rem}.onboarding-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.25rem}.onboarding-card{background:var(--color-white);border:1px solid var(--color-border-subtle);border-radius:var(--card-radius);padding:1.5rem;box-shadow:var(--card-shadow);display:flex;flex-direction:column;gap:1.25rem;justify-content:space-between;transition:var(--transition-fast)}.onboarding-card:hover{border-color:var(--color-primary-navy)}.resource-info{display:flex;flex-direction:column;gap:.4rem}.resource-title{font-size:1.1rem;font-weight:700;color:var(--color-primary-navy)}.resource-desc{font-size:.875rem;color:var(--color-text-slate);line-height:1.5}.open-resource-btn{width:100%;min-height:var(--btn-min-height);font-size:var(--btn-font-size);text-decoration:none}.advanced-ceo-panel-container{display:flex;flex-direction:column;gap:1.5rem}.ceo-panel-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1.25rem;background:var(--color-white);border:1px solid var(--color-border-subtle);padding:1.75rem;border-radius:var(--card-radius);box-shadow:var(--card-shadow)}.ceo-panel-title-area{display:flex;align-items:center;gap:1rem}.ceo-panel-title-area .icon-badge{width:52px;height:52px;border-radius:var(--radius-sm);background:var(--color-bg-ice);color:var(--color-primary-navy);display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border-subtle)}.ceo-panel-title-area h2{font-size:1.4rem;font-weight:700;margin-bottom:.2rem;color:var(--color-primary-navy)}.ceo-panel-title-area .subtitle{color:var(--color-text-muted);font-size:.9rem}.ceo-subtabs-nav{display:flex;align-items:center;gap:.5rem;background:var(--color-bg-ice);padding:.4rem;border-radius:var(--radius-sm);border:1px solid var(--color-border-subtle);flex-wrap:wrap}.subtab-btn{display:flex;align-items:center;gap:.45rem;padding:.6rem 1rem;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);border:none;font-size:.85rem;font-weight:600;font-family:var(--font-family);cursor:pointer;transition:var(--transition-fast)}.subtab-btn:hover{color:var(--color-primary-navy);background:#ebf2f6}.subtab-btn.active{background:var(--color-primary-navy);color:var(--color-white);box-shadow:0 2px 6px #0f3d5c26}.ceo-sections-wrapper{display:flex;flex-direction:column;gap:1.5rem}.ceo-panel-card{background:var(--color-white);border:1px solid var(--color-border-subtle);border-radius:var(--card-radius);padding:1.75rem;box-shadow:var(--card-shadow)}.ceo-section-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border-subtle)}.title-with-badge{display:flex;align-items:center;gap:.75rem}.title-with-badge h3{font-size:1.2rem;font-weight:700;color:var(--color-primary-navy)}.live-indicator{display:inline-flex;align-items:center;gap:.4rem;background:var(--status-success-bg);color:var(--status-success-text);border:1px solid var(--status-success-border);padding:.25rem .65rem;border-radius:9999px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.pulse-dot{width:8px;height:8px;border-radius:50%;background-color:var(--color-accent-green);box-shadow:0 0 #2d8a6eb3;animation:pulse-dot-anim 1.8s infinite}@keyframes pulse-dot-anim{0%{transform:scale(.95);box-shadow:0 0 #2d8a6eb3}70%{transform:scale(1);box-shadow:0 0 0 8px #2d8a6e00}to{transform:scale(.95);box-shadow:0 0 #2d8a6e00}}.ceo-alert-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.alert-metric-card{background:var(--color-bg-ice);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);padding:1.25rem 1rem;display:flex;flex-direction:column;gap:.35rem;transition:var(--transition-fast)}.alert-metric-card:hover{border-color:var(--color-primary-navy)}.alert-metric-card .metric-number{font-size:1.85rem;font-weight:800;line-height:1.1}.alert-metric-card .metric-label{font-size:.8rem;color:var(--color-text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.alert-metric-card.total .metric-number{color:var(--color-primary-navy)}.alert-metric-card.late .metric-number{color:#b45309}.alert-metric-card.unclocked .metric-number{color:#b91c1c}.alert-metric-card.incidents .metric-number{color:#9d174d}.alerts-feed-list{display:flex;flex-direction:column;gap:.85rem}.alert-item-card{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem;background:var(--color-bg-ice);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);transition:border-color var(--transition-fast)}.alert-item-card:hover{border-color:var(--color-primary-navy)}.alert-card-late{border-left:4px solid #B45309;background:#fffdf9}.alert-card-unclocked{border-left:4px solid #B91C1C;background:#fffbfb}.alert-card-incident{border-left:4px solid #9D174D;background:#fdf8fa}.alert-icon-col{margin-top:.2rem;display:flex;align-items:center;justify-content:center}.alert-card-late .alert-icon-col{color:#b45309}.alert-card-unclocked .alert-icon-col{color:#b91c1c}.alert-card-incident .alert-icon-col{color:#9d174d}.alert-main-col{flex:1;display:flex;flex-direction:column;gap:.4rem}.alert-header-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.alert-title{font-size:.95rem;font-weight:700;color:var(--color-primary-navy)}.alert-time{margin-left:auto;font-size:.8rem;color:var(--color-text-muted)}.alert-description{font-size:.875rem;color:var(--color-text-slate);line-height:1.5}.alert-footer-meta{display:flex;align-items:center;gap:1.25rem;font-size:.8rem;color:var(--color-text-muted);margin-top:.25rem}.meta-item{display:flex;align-items:center;gap:.35rem}.all-clear-state{padding:3rem 1rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.5rem}.all-clear-state h4{font-size:1.2rem;font-weight:700;color:var(--color-primary-navy)}.all-clear-state p{color:var(--color-text-muted);max-width:420px}.all-clear-state .icon-success{color:var(--status-success-text)}.date-controls-group{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.quick-date-btn{min-height:44px;padding:.45rem .85rem;font-size:.85rem}.date-input{background:var(--color-white);border:1px solid var(--color-border-subtle);color:var(--color-text-slate);padding:.55rem .85rem;border-radius:var(--radius-sm);font-size:.85rem;font-family:var(--font-family);outline:none;min-height:44px}.date-input:focus{border-color:var(--color-primary-navy)}.attendance-summary-bar{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;flex-wrap:wrap}.summary-pill{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .95rem;background:var(--color-bg-ice);border:1px solid var(--color-border-subtle);border-radius:9999px;font-size:.825rem;font-weight:600}.summary-pill.total .pill-num{color:var(--color-primary-navy);font-weight:800}.summary-pill.on-time .pill-num{color:var(--status-success-text);font-weight:800}.summary-pill.late .pill-num{color:#b45309;font-weight:800}.summary-pill.unclocked .pill-num{color:#b91c1c;font-weight:800}.table-responsive{width:100%;overflow-x:auto}.ceo-data-table{width:100%;border-collapse:collapse;font-size:.875rem}.ceo-data-table th{background:var(--color-bg-ice);text-align:left;padding:.85rem 1rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border-subtle)}.ceo-data-table td{padding:.95rem 1rem;border-bottom:1px solid #EBF1F0;vertical-align:middle;color:var(--color-text-slate)}.ceo-data-table tbody tr:hover{background:#f8fafc}.clickable-row{cursor:pointer;transition:background var(--transition-fast)}.cell-worker-info{display:flex;align-items:center;gap:.65rem}.worker-avatar-icon{color:var(--color-primary-navy)}.cell-service-info{display:flex;align-items:center;gap:.45rem;color:var(--color-text-slate)}.time-recorded{font-weight:600;color:var(--color-primary-navy)}.time-empty{color:var(--color-text-muted)}.rating-stars-inline{display:flex;align-items:center;gap:.6rem}.stars-group{display:flex;align-items:center;gap:.15rem}.rating-score-num{font-weight:700;color:#b45309}.count-pill{display:inline-block;background:#eaf2f7;color:var(--color-primary-navy);border:1px solid #B7D2E2;padding:.25rem .65rem;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600}.view-history-btn{display:inline-flex;align-items:center;gap:.35rem;font-size:.825rem;font-weight:600;color:var(--color-primary-navy);background:none;border:none;cursor:pointer}.view-history-btn:hover{text-decoration:underline}.badge-success{background:var(--status-success-bg);color:var(--status-success-text);border:1px solid var(--status-success-border)}.badge-warning{background:var(--status-warning-bg);color:var(--status-warning-text);border:1px solid var(--status-warning-border)}.badge-danger,.badge-priority-alta{background:var(--status-danger-bg);color:var(--status-danger-text);border:1px solid var(--status-danger-border)}.badge-priority-media{background:var(--status-warning-bg);color:var(--status-warning-text);border:1px solid var(--status-warning-border)}.badge-priority-baja{background:#edf2f7;color:#33424a;border:1px solid #CBD5E0}.tab-btn-ceo{background:var(--badge-ceo-bg);border:1px solid var(--badge-ceo-border);color:var(--badge-ceo-text);font-weight:600}.tab-btn-ceo:hover{background:#d5e5f2;color:var(--badge-ceo-text)}.tab-btn-ceo.active{background:var(--color-primary-navy);border-color:var(--color-primary-navy);color:var(--color-white)}@media(max-width:640px){.app-header{padding:.6rem .85rem}.header-container{gap:.5rem}.brand-tagline{display:none}.header-actions{gap:.4rem}.language-selector{padding:.3rem .5rem}.user-profile-badge{padding:.25rem .5rem;gap:.35rem}.user-name{max-width:75px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.75rem}.role-pill{font-size:.65rem}.welcome-banner{padding:1.25rem 1rem}.welcome-text h2{font-size:1.35rem}.dashboard-tabs{-webkit-mask-image:linear-gradient(to right,#000 80%,transparent 100%);mask-image:linear-gradient(to right,#000 80%,transparent 100%);padding-right:2rem}}
