@charset "UTF-8";:root{color-scheme:light;--font-sans: "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: "Space Grotesk", var(--font-sans);--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-xs: 12px;--text-sm: 13px;--text-base: 14px;--text-md: 15px;--text-lg: 17px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 30px;--text-4xl: 38px;--text-5xl: 48px;--leading-tight: 1.15;--leading-snug: 1.3;--leading-normal: 1.5;--leading-relaxed: 1.65;--tracking-tight: -.02em;--tracking-snug: -.01em;--tracking-normal: 0;--tracking-wide: .02em;--indigo-50: #eef0ff;--indigo-100: #e0e4ff;--indigo-200: #c4cbff;--indigo-300: #9ba5ff;--indigo-400: #7079ff;--indigo-500: #4f46e5;--indigo-600: #3f36cc;--indigo-700: #322aa6;--indigo-800: #262085;--indigo-900: #1a1659;--violet-50: #f6f1ff;--violet-100: #ecdfff;--violet-200: #d6beff;--violet-300: #b998ff;--violet-400: #9b70ff;--violet-500: #7c3aed;--violet-600: #6926d6;--violet-700: #561cb3;--slate-0: #ffffff;--slate-50: #fafafb;--slate-100: #f3f4f7;--slate-200: #e5e7ec;--slate-300: #cdd1d9;--slate-400: #9ca1ac;--slate-500: #6b7280;--slate-600: #4b5260;--slate-700: #353b47;--slate-800: #1f232c;--slate-900: #15181f;--slate-950: #0b0b12;--emerald-50: #ecfdf5;--emerald-500: #10b981;--emerald-600: #059669;--emerald-700: #047857;--amber-50: #fffbeb;--amber-500: #f59e0b;--amber-600: #d97706;--amber-700: #b45309;--rose-50: #fff1f2;--rose-500: #f43f5e;--rose-600: #e11d48;--rose-700: #be123c;--sky-50: #f0f9ff;--sky-500: #0ea5e9;--sky-600: #0284c7;--bg: var(--slate-50);--surface-0: var(--slate-0);--surface-1: var(--slate-50);--surface-2: var(--slate-100);--surface-hover: var(--slate-100);--fg: var(--slate-900);--fg-1: var(--slate-700);--fg-2: var(--slate-500);--fg-3: var(--slate-400);--fg-on-primary: var(--slate-0);--border: var(--slate-200);--border-strong: var(--slate-300);--primary: var(--indigo-500);--primary-hover: var(--indigo-600);--primary-press: var(--indigo-700);--primary-soft: var(--indigo-50);--primary-soft-fg: var(--indigo-700);--accent: var(--violet-500);--accent-soft: var(--violet-50);--accent-soft-fg: var(--violet-700);--success: var(--emerald-600);--success-soft: var(--emerald-50);--success-soft-fg: var(--emerald-700);--warning: var(--amber-600);--warning-soft: var(--amber-50);--warning-soft-fg: var(--amber-700);--danger: var(--rose-600);--danger-soft: var(--rose-50);--danger-soft-fg: var(--rose-700);--info: var(--sky-600);--info-soft: var(--sky-50);--info-soft-fg: var(--sky-600);--focus-ring: 0 0 0 2px var(--surface-0), 0 0 0 4px var(--indigo-500);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(15, 17, 26, .04);--shadow-sm: 0 1px 3px rgba(15, 17, 26, .06), 0 1px 2px rgba(15, 17, 26, .04);--shadow-md: 0 4px 12px rgba(15, 17, 26, .08), 0 2px 4px rgba(15, 17, 26, .04);--shadow-lg: 0 12px 32px rgba(15, 17, 26, .12), 0 4px 8px rgba(15, 17, 26, .06);--shadow-xl: 0 24px 64px rgba(15, 17, 26, .16), 0 8px 16px rgba(15, 17, 26, .08);--ease: cubic-bezier(.2, 0, 0, 1);--ease-out: cubic-bezier(0, 0, 0, 1);--duration-fast: .12s;--duration-base: .18s;--duration-slow: .28s;--page-title-size: 24px;--page-title-weight: 700;--page-title-letter-spacing: 0;--page-subtitle-size: 14px;--page-subtitle-weight: 400;--input-padding: 10px 12px;--input-font-size: 14px;--input-border-radius: 6px;--input-border-color: var(--border);--input-bg: var(--surface-0);--select-padding: 10px 12px;--select-font-size: 14px;--select-border-radius: 6px;--select-border-color: var(--border);--select-bg: var(--surface-0);--select-min-width: 160px;--pill-container-padding: 4px;--pill-button-padding: 8px 16px;--pill-border-radius: 8px;--pill-bg-inactive: var(--surface-2);--pill-bg-active: var(--primary);--pill-fg-active: var(--fg-on-primary);--filter-bar-padding: 14px 16px;--filter-bar-background: var(--surface-0);--filter-bar-border-radius: 12px;--filter-bar-gap: 12px}[data-theme=dark]{color-scheme:dark;--bg: var(--slate-950);--surface-0: var(--slate-900);--surface-1: #15151f;--surface-2: #1c1c28;--surface-hover: rgba(255, 255, 255, .04);--fg: #f2f3f7;--fg-1: #c9ccd6;--fg-2: #8a8f9c;--fg-3: #5c616e;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .14);--primary: #6366f1;--primary-hover: #7c7ff7;--primary-press: #4f46e5;--primary-soft: rgba(99, 102, 241, .14);--primary-soft-fg: #b0b4ff;--accent: #a78bfa;--accent-soft: rgba(167, 139, 250, .14);--accent-soft-fg: #d6beff;--success-soft: rgba(16, 185, 129, .14);--success-soft-fg: #6ee7b7;--warning-soft: rgba(245, 158, 11, .14);--warning-soft-fg: #fcd34d;--danger-soft: rgba(244, 63, 94, .16);--danger-soft-fg: #fda4af;--info-soft: rgba(14, 165, 233, .14);--info-soft-fg: #7dd3fc;--focus-ring: 0 0 0 2px var(--bg), 0 0 0 4px var(--primary);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .35);--shadow-md: 0 6px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .5);--shadow-xl: 0 24px 64px rgba(0, 0, 0, .6)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes scaleIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}h1,h2,h3,h4,h5,h6{margin:0;color:var(--fg);font-weight:700;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}p{margin:0}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-hover)}.logo-light{display:block}.logo-dark,[data-theme=dark] .logo-light{display:none}[data-theme=dark] .logo-dark{display:block}.form-control{font-family:var(--font-sans);font-size:var(--text-base);color:var(--fg);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);height:44px;padding:0 12px;transition:border-color var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease)}.form-control::placeholder{color:var(--fg-3)}.form-control:focus{color:var(--fg);background:var(--surface-0);border-color:var(--primary);box-shadow:var(--focus-ring);outline:none}.form-label{font-size:var(--text-sm);font-weight:500;color:var(--fg-1);margin-bottom:6px}.form-select,.select-dropdown,.select,.select-input{padding:var(--select-padding);border:1px solid var(--select-border-color);border-radius:var(--select-border-radius);font-size:var(--select-font-size);font-family:inherit;background-color:var(--select-bg);cursor:pointer;min-width:var(--select-min-width);max-width:var(--select-max-width);width:100%;color:var(--fg);transition:border-color .15s,box-shadow .15s}.form-select option,.select-dropdown option,.select option,.select-input option{color:var(--fg);background:var(--surface-0)}.form-select:focus,.select-dropdown:focus,.select:focus,.select-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.form-select:disabled,.select-dropdown:disabled,.select:disabled,.select-input:disabled{opacity:.6;cursor:not-allowed}.card-body{padding:24px}.table-wrap{width:100%;background:var(--surface-0);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.table{width:100%;border-collapse:collapse}.table thead{background:var(--surface-1)}.table thead th{padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-2);border-bottom:1px solid var(--border)}.table tbody tr{border-bottom:1px solid var(--border);transition:background .1s}.table tbody tr:last-child{border-bottom:none}.table tbody tr:hover{background:var(--surface-1)}.table tbody td{padding:var(--space-4);font-size:var(--input-font-size);color:var(--fg-1);vertical-align:middle}.table tbody td.num{color:var(--fg-2);font-variant-numeric:tabular-nums}.btn{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;border-radius:var(--radius-md);height:40px;padding:0 16px;display:inline-flex;align-items:center;gap:6px;cursor:pointer;border:1px solid transparent;transition:background var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease),transform .1s}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-lg{height:48px;font-size:var(--text-md);padding:0 20px;border-radius:var(--radius-lg)}.btn-sm{height:32px;font-size:var(--text-xs);padding:0 12px;border-radius:var(--radius-sm)}.btn-link{background:transparent;color:var(--primary);border:none;padding:var(--space-1) var(--space-2);display:inline-flex;align-items:center;gap:var(--space-1);font-weight:600}.btn-link:hover{color:var(--primary-hover)}.btn-primary{background:var(--primary);color:var(--fg-on-primary)}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-primary:active:not(:disabled){background:var(--primary-press)}.btn-secondary{background:var(--surface-0);color:var(--fg);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--surface-hover)}.btn-ghost{background:transparent;color:var(--fg)}.btn-ghost:hover:not(:disabled){background:var(--surface-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){opacity:.9}.btn-success{background:var(--success);color:#fff}.btn-success:hover:not(:disabled){opacity:.9}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field.field-spacer{margin-top:var(--space-2)}.field-label{font-size:var(--text-xs);font-weight:600;color:var(--fg-2);letter-spacing:.05em}.field-hint{font-size:var(--text-xs);color:var(--fg-3)}.req{color:var(--danger)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.input,.textarea,.input-custom{width:100%;padding:var(--input-padding);border:1px solid var(--input-border-color);border-radius:var(--input-border-radius);background:var(--input-bg);color:var(--fg);font-size:var(--input-font-size);line-height:1.5;font-family:inherit;outline:none;caret-color:var(--primary);transition:border-color .15s,box-shadow .15s}.input:hover,.textarea:hover,.input-custom:hover{border-color:var(--fg-3)}.input:focus,.textarea:focus,.input-custom:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.input:disabled,.textarea:disabled,.input-custom:disabled{opacity:.6;cursor:not-allowed}.input::placeholder,.textarea::placeholder,.input-custom::placeholder{color:var(--fg-3)}.textarea{min-height:80px;resize:vertical}.docs-list{display:flex;flex-direction:column;gap:var(--space-2)}.docs-empty{padding:var(--space-4);background:var(--surface-1);border-radius:var(--radius-md);text-align:center;color:var(--fg-3);font-size:var(--text-sm)}.doc-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-md)}.doc-item:hover{background:var(--surface-2)}.doc-icon{color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.doc-info{flex:1;min-width:0}.doc-name{font-size:var(--text-sm);font-weight:500;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-meta{font-size:var(--text-xs);color:var(--fg-2);margin-top:2px}.btn-doc-download{width:28px;height:28px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--fg-3);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all var(--duration-fast)}.btn-doc-download:hover{background:var(--primary-soft);color:var(--primary-soft-fg)}.btn-doc-remove{width:28px;height:28px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--fg-3);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all var(--duration-fast)}.btn-doc-remove:hover{background:var(--danger-soft);color:var(--danger-soft-fg)}.docs-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.btn-add-doc{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:600;cursor:pointer;background:var(--primary);color:#fff;border:none;transition:all var(--duration-fast)}.btn-add-doc:hover{background:var(--primary-hover)}.upload-area{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-md)}.upload-form{padding:var(--space-4);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-3)}.upload-file-row{display:flex;align-items:center;gap:var(--space-3)}.upload-filename{font-size:var(--text-xs);color:var(--fg-3);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-filename.upload-filename--active{color:var(--fg);font-weight:500}.filename{display:inline-block;padding:var(--space-2) var(--space-3);background:var(--surface-0);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-desc-row{display:flex;gap:var(--space-2)}.upload-desc-row .upload-desc-select,.upload-desc-row .upload-desc-custom{flex:1}.btn-adjuntar{align-self:flex-start}.file-input-hidden{display:none}.upload-list{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border)}.upload-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--surface-0);border:1px solid var(--border);border-radius:var(--radius-md)}.upload-item-icon{color:var(--primary);flex-shrink:0}.upload-item-info{flex:1;min-width:0}.upload-item-name{font-size:var(--text-sm);font-weight:600;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-item-label{font-size:var(--text-xs);color:var(--fg-2)}.btn-remove-file{width:28px;height:28px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--fg-3);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .15s,color .15s}.btn-remove-file:hover{background:var(--danger-soft);color:var(--danger-soft-fg)}.btn-download{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:600;cursor:pointer;transition:all .15s;border:1px solid var(--border);background:var(--surface-0);color:var(--primary);white-space:nowrap;flex-shrink:0}.btn-download:hover{background:var(--primary-soft);border-color:transparent}.form-actions{display:flex;gap:var(--space-3);margin-top:var(--space-2)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);margin-bottom:var(--space-4)}.section-divider{height:1px;background:var(--border);margin:var(--space-6) 0}.dias-strip{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--surface-1);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.dias-label{font-size:var(--text-xs);font-weight:600;color:var(--fg-2);text-transform:uppercase;letter-spacing:.05em}.dias-num{font-size:var(--text-2xl);font-weight:800;color:var(--primary)}.dias-num.dias-habiles{color:var(--primary)}.dias-num.dias-num--error{color:var(--danger)}.dias-box{display:flex;gap:var(--space-6);margin-top:var(--space-4);padding:var(--space-4);background:var(--surface-1);border-radius:var(--radius-md)}.dias-box.dias-box--error{background:var(--danger-soft);border:1px solid rgba(220,38,38,.2)}.dias-item{flex:1}.dias-error{font-size:var(--text-xs);color:var(--danger-soft-fg);margin-top:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--danger-soft);border-radius:var(--radius-sm)}.date-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.info-box{background:var(--primary-soft);color:var(--primary-soft-fg);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);margin-bottom:var(--space-4)}.jefe-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--input-padding);border:1px solid var(--input-border-color);border-radius:var(--input-border-radius);background:var(--input-bg);cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s}.jefe-trigger:hover,.jefe-trigger:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a;outline:none}.jefe-trigger-placeholder{display:flex;align-items:center;gap:var(--space-2);color:var(--fg-3);font-size:var(--input-font-size)}.jefe-trigger-selected{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0}.jefe-mini-avatar{width:28px;height:28px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:#fff;font-size:10px;font-weight:700;flex-shrink:0}.jefe-trigger-info{min-width:0;display:flex;flex-direction:column}.jefe-trigger-name{font-size:var(--input-font-size);font-weight:600;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jefe-trigger-cargo{font-size:var(--text-xs);color:var(--fg-2)}.jefe-trigger-icon{color:var(--fg-3);flex-shrink:0}.jefe-cards{overflow-y:auto;padding:var(--space-2);display:flex;flex-direction:column;gap:2px}.jefe-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);cursor:pointer;border:none;background:transparent;text-align:left;width:100%;transition:background .12s}.jefe-card:hover{background:var(--surface-1)}.jefe-avatar{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--text-xs);font-weight:700;flex-shrink:0}.jefe-card-info{flex:1;min-width:0;text-align:left}.jefe-card-nombre{font-size:var(--text-sm);font-weight:600;color:var(--fg)}.jefe-card-cargo{font-size:var(--text-xs);color:var(--fg-2)}.jefe-card-area{font-size:var(--text-xs);color:var(--fg-3)}.jefe-card-check{color:var(--primary);flex-shrink:0}.historial-list{display:flex;flex-direction:column;gap:var(--space-1);max-height:65vh;overflow-y:auto}.historial-item{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) 0;border-bottom:1px solid var(--border)}.historial-item:last-child{border-bottom:none}.historial-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3)}.historial-info{flex:1;min-width:0}.historial-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.historial-header .section-title{margin:0}.historial-header-lg{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5)}.historial-card{position:sticky;top:var(--space-6)}.section-title{display:flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-1);font-size:var(--text-xs);font-weight:700;color:var(--fg-2);letter-spacing:.05em}.section-title-lg{font-size:var(--text-lg);font-weight:700;margin-bottom:10px}.section-desc{font-size:var(--text-xs);color:var(--fg-2);margin:0 0 var(--space-4)}.table-card{background:var(--surface-0);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.table-wrapper{width:100%;overflow-x:auto}.table-historial{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table-historial thead{background:var(--surface-1);border-bottom:1px solid var(--border)}.table-historial thead th{padding:var(--space-4);text-align:left;font-weight:600;color:var(--fg-2);text-transform:uppercase;font-size:var(--text-xs);letter-spacing:.05em;white-space:nowrap}.table-historial td{padding:var(--space-4);border-bottom:1px solid var(--border);color:var(--fg);vertical-align:middle}.table-historial tbody tr:hover{background:var(--surface-hover)}.table-historial tbody tr:last-child td{border-bottom:0}.cell-date{color:var(--fg-2);font-size:var(--text-xs);white-space:nowrap}.cell-period{font-weight:500}.cell-days{text-align:center;font-weight:600;color:var(--primary)}.cell-status{width:130px}.cell-admin{width:150px}.admin-name{font-weight:500;color:var(--fg)}.admin-pending{color:var(--fg-3);font-style:italic}.cell-observation{max-width:250px}.obs-cell{max-width:200px}.cell-actions{text-align:center;width:80px}.obs-empty{color:var(--fg-3)}.type-badge{padding:var(--space-1) var(--space-3);background:var(--primary-soft);color:var(--primary-soft-fg);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:600}.doc-badge{display:inline-block;padding:4px 8px;background:var(--primary-soft);color:var(--primary-soft-fg);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:600}.formatos-list{display:flex;flex-direction:column;gap:var(--space-2)}.formato-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-md)}.formato-info{display:flex;align-items:flex-start;gap:var(--space-2);color:var(--fg-2);flex:1;min-width:0}.formato-nombre{font-size:var(--text-sm);font-weight:600;color:var(--fg)}.formato-desc{font-size:var(--text-xs);color:var(--fg-2);margin-top:2px}.licencias-grid{display:grid;grid-template-columns:3fr 2fr;gap:var(--space-4);align-items:start}.vacaciones-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.button-group{display:flex;gap:var(--space-3)}.btn-submit{width:100%}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}.page-header.header-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4)}.card{background:var(--surface-0);border:1px solid var(--border);border-radius:var(--radius-lg)}.card.card-pad{padding:var(--space-6)}.section-title{margin:0 0 var(--space-4);font-size:var(--text-lg);font-weight:700;color:var(--fg)}.section-subtitle{font-size:var(--text-sm);font-weight:400;color:var(--fg-2)}.section-title--sm{margin:0 0 var(--space-3);font-size:var(--text-sm);font-weight:700;color:var(--fg)}.progress-ring{--ring-size: 48px;--ring-bg: var(--surface-2);--ring-fill: var(--primary);--ring-stroke: 4px;--ring-pct: 0;width:var(--ring-size);height:var(--ring-size);border-radius:50%;background:conic-gradient(var(--ring-fill) 0deg calc(var(--ring-pct) * 3.6deg),var(--ring-bg) calc(var(--ring-pct) * 3.6deg) 360deg);display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative}.progress-ring-inner{width:calc(var(--ring-size) - var(--ring-stroke) * 2);height:calc(var(--ring-size) - var(--ring-stroke) * 2);border-radius:50%;background:var(--surface-0);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--fg)}.progress-ring--sm{--ring-size: 36px;--ring-stroke: 3px}.progress-ring--sm .progress-ring-inner{font-size:9px}.progress-ring--lg{--ring-size: 64px;--ring-stroke: 5px}.progress-ring--lg .progress-ring-inner{font-size:14px}.progress-ring--success{--ring-fill: var(--success)}.progress-ring--warning{--ring-fill: var(--warning)}.progress-ring--danger{--ring-fill: var(--danger)}.stage-transition{animation:stageSlideIn var(--duration-base) var(--ease)}@keyframes stageSlideIn{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.empty-state{text-align:center;color:var(--fg-2);padding:var(--space-8) var(--space-4)!important}.badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);font-weight:700;padding:2px 8px;border-radius:var(--radius-full);line-height:1.3;white-space:nowrap}.badge--success{background:var(--success-soft);color:var(--success-soft-fg)}.badge--warning{background:var(--warning-soft);color:var(--warning-soft-fg)}.badge--danger{background:var(--danger-soft);color:var(--danger-soft-fg)}.badge--info{background:var(--info-soft);color:var(--info-soft-fg)}.badge--primary{background:var(--primary-soft);color:var(--primary-soft-fg)}.badge--neutral{background:var(--surface-2);color:var(--fg-2)}.badge--accent{background:var(--accent-soft);color:var(--accent)}.badge--required{background:#4f46e51a;color:var(--primary)}.badge--optional{background:#10b9811a;color:var(--success)}.request-item-title{font-size:13px;font-weight:600;color:var(--fg)}.request-item-date{font-size:11px;color:var(--fg-2)}.result-label{font-size:11px;font-weight:600;color:var(--fg-2)}.result-heading{margin:0 0 8px;font-size:28px;font-family:var(--font-display);color:var(--fg)}.result-subtext{margin:0 0 24px;font-size:15px;color:var(--fg-2);max-width:480px;text-align:center}.result-actions{justify-content:center}.respuestas-detalle{margin-block-start:2rem}.respuestas-detalle h4{margin-block-end:1rem;font-size:16px;font-weight:700;color:var(--fg)}.qa-card{margin-block-end:1rem}.qa-row{display:flex;align-items:flex-start;gap:.75rem}.qa-icon{flex-shrink:0;margin-block-start:.15rem}.icon-success{color:var(--success)}.icon-danger{color:var(--danger)}.qa-content{flex:1}.qa-enunciado{font-weight:600;margin-block-end:.5rem;color:var(--fg)}.qa-opcion{display:flex;align-items:center;gap:.5rem;padding:.25rem 0}.qa-spacer{width:4rem;flex-shrink:0}.badge-xs{font-size:.7rem;padding:1px 6px}.profile-layout{display:grid;grid-template-columns:280px 1fr;gap:24px;align-items:start}.profile-avatar-card{display:flex;flex-direction:column;align-items:center;gap:4px}.profile-avatar{width:88px;height:88px;font-size:28px}.profile-name{font-size:18px;font-weight:700;margin-top:8px;text-align:center}.profile-role{font-size:13px;text-align:center}.profile-roles{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin-top:4px}.profile-status{margin-top:6px}.profile-contact{width:100%;margin-top:16px;padding-top:14px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:10px;font-size:13px}.profile-contact>*{display:flex;align-items:center;gap:8px;color:var(--fg-2)}.profile-contact>* svg{flex-shrink:0}.profile-tabs{display:flex;border-bottom:1px solid var(--border);padding:0 24px}.profile-tabs .tab{padding:14px 16px 12px;margin-bottom:-1px}.profile-fields{padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:16px 24px}.profile-tab-empty{padding:24px}.badge.bg-success{background:var(--success-soft);color:var(--success-soft-fg)}.badge.bg-warning{background:var(--warning-soft);color:var(--warning-soft-fg)}.badge.bg-danger{background:var(--danger-soft);color:var(--danger-soft-fg)}.badge.bg-info{background:var(--info-soft);color:var(--info-soft-fg)}.badge.bg-primary{background:var(--primary-soft);color:var(--primary-soft-fg)}.badge.bg-neutral{background:var(--surface-2);color:var(--fg-2)}.badge.bg-accent{background:var(--accent-soft);color:var(--accent)}.invalid-feedback,.field-error{font-size:var(--text-xs);color:var(--danger);margin-top:4px}.is-invalid{border-color:var(--danger)!important}.is-invalid:focus{box-shadow:0 0 0 2px var(--surface-0),0 0 0 4px var(--danger)}.pagination{gap:4px}.pagination .page-item .page-link{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:500;color:var(--fg-1);background:var(--surface-0);border:1px solid var(--border);border-radius:var(--radius-sm)!important;padding:6px 12px;transition:background var(--duration-fast),color var(--duration-fast)}.pagination .page-item .page-link:hover{background:var(--surface-hover);color:var(--fg)}.pagination .page-item .page-link:focus{box-shadow:var(--focus-ring)}.pagination .page-item.active .page-link{background:var(--primary);border-color:var(--primary);color:#fff}.pagination .page-item.disabled .page-link{background:var(--surface-1);color:var(--fg-3);border-color:var(--border)}.flex{display:flex}.flex.gap-2{gap:var(--space-2)}.flex.gap-3{gap:var(--space-3)}.flex.gap-4{gap:var(--space-4)}.flex.gap-6{gap:var(--space-6)}.flex.items-center{align-items:center}.flex.justify-between{justify-content:space-between}.flex.flex-col{flex-direction:column}.avatar{border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff}.avatar.avatar-sm{width:32px;height:32px;font-size:var(--text-xs)}.avatar.avatar-md{width:40px;height:40px;font-size:var(--text-xs)}.semibold{font-weight:600}.muted{color:var(--fg-2);font-size:var(--text-xs)}.num{font-variant-numeric:tabular-nums}.page-container{width:100%;padding:var(--space-6);display:flex;flex-direction:column}.page-title{font-family:var(--font-display);font-size:var(--page-title-size);font-weight:var(--page-title-weight);letter-spacing:var(--page-title-letter-spacing);color:var(--fg);margin:0}.page-subtitle{font-size:var(--page-subtitle-size);font-weight:var(--page-subtitle-weight);color:var(--fg-2);margin:0;margin-top:var(--space-1)}.drawer-backdrop{position:fixed;inset:0;background:#00000080;z-index:1000;animation:fadeIn .2s var(--ease)}.drawer-panel{position:fixed;right:0;top:0;width:500px;height:100vh;background:var(--surface-0);border-left:1px solid var(--border);display:flex;flex-direction:column;z-index:1001;animation:slideInRight .3s var(--ease)}@media(max-width:768px){.drawer-panel{width:100%}}.drawer-header{padding:var(--space-6);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.drawer-title{font-size:var(--text-lg);font-weight:700;margin:0}.btn-drawer-close{width:36px;height:36px;border-radius:var(--radius-md);border:none;background:transparent;color:var(--fg-2);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--duration-fast)}.btn-drawer-close:hover{background:var(--surface-1);color:var(--fg)}.drawer-body{flex:1;overflow-y:auto;padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-6)}.detail-section,.detail-grid{display:flex;flex-direction:column;gap:var(--space-3)}.detail-row{display:flex;gap:var(--space-3);align-items:flex-start}.detail-row.full-width{flex-direction:column;gap:var(--space-2)}.detail-label{font-size:var(--text-xs);font-weight:600;color:var(--fg-2);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;min-width:120px}.full-width .detail-label{min-width:unset}.detail-value{font-size:var(--text-sm);color:var(--fg);flex:1}.detail-value.obs-full{line-height:1.5;color:var(--fg-2)}.action-buttons{display:flex;flex-direction:column;gap:var(--space-3)}.timeline{display:flex;flex-direction:column;gap:var(--space-4);position:relative;padding-left:var(--space-6)}.timeline:before{content:"";position:absolute;left:8px;top:0;bottom:0;width:1px;background:var(--border)}.timeline-item{display:flex;gap:var(--space-3);position:relative}.timeline-marker{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:absolute;left:-32px;top:2px;background:var(--surface-0);border:2px solid var(--border)}.timeline-marker.marker-generada{background:var(--primary-soft);border-color:var(--primary)}.timeline-marker.marker-en-tr\e1mite,.timeline-marker.marker-en\ tr\e1mite{background:var(--warning-soft);border-color:var(--warning)}.timeline-marker.marker-aprobado{background:var(--success-soft);border-color:var(--success)}.timeline-marker.marker-rechazado,.timeline-marker.marker-anulada{background:var(--danger-soft);border-color:var(--danger)}.marker-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.timeline-content{display:flex;flex-direction:column;gap:var(--space-1)}.timeline-estado{font-weight:600;color:var(--fg);font-size:var(--text-sm)}.timeline-fecha{font-size:var(--text-xs);color:var(--fg-2)}.timeline-nota{font-size:var(--text-xs);color:var(--fg-2);margin-top:var(--space-1);line-height:1.4}.modal-overlay{position:fixed;inset:0;background:#00000073;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:5vh var(--space-4);overflow-y:auto}.modal-card,.modal-content,.modal-box{background:var(--surface-0);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:480px;display:flex;flex-direction:column;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border)}.modal-title{font-size:var(--text-md);font-weight:700;margin:0;color:var(--fg)}.btn-modal-close{width:32px;height:32px;border-radius:var(--radius-md);border:none;background:transparent;color:var(--fg-2);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,color .15s}.btn-modal-close:hover{background:var(--surface-2);color:var(--fg)}.modal-search-wrap{position:relative;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.modal-search-icon{position:absolute;left:calc(var(--space-4) + 12px);top:50%;transform:translateY(-50%);color:var(--fg-3);pointer-events:none}.modal-search-input{width:100%;padding:var(--space-2) var(--space-3) var(--space-2) var(--space-8);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--input-font-size);font-family:inherit;background:var(--input-bg);color:var(--fg);outline:none}.modal-search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.modal-search-input::placeholder{color:var(--fg-3)}.modal-empty{text-align:center;padding:var(--space-8) var(--space-4);color:var(--fg-2);font-size:var(--text-sm)}.btn-action{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);border:1px solid var(--border);background:transparent;color:var(--fg-2);cursor:pointer;transition:all var(--duration-fast)}.btn-action:hover{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.btn-action.btn-action-danger:hover{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.textarea-motivo,.textarea-anulacion{width:100%;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--input-bg);color:var(--fg);font-family:inherit;font-size:var(--text-sm);resize:vertical;min-height:120px;outline:none}.textarea-motivo:focus,.textarea-anulacion:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.textarea-motivo::placeholder,.textarea-anulacion::placeholder{color:var(--fg-3)}.modal-body{padding:16px 24px}.modal-body p{font-size:var(--text-base);color:var(--fg-1);margin:0;line-height:var(--leading-relaxed)}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:0 24px 24px}.row-actions{display:inline-flex;align-items:center;gap:2px;padding:2px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-md)}.row-actions .btn{height:30px;width:30px;padding:0;border-radius:var(--radius-sm);background:transparent;border:0;color:var(--fg-2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:background .15s,color .15s}.row-actions .btn:hover{background:var(--surface-0);color:var(--fg-1);box-shadow:0 1px 2px #0000000d}.row-actions .btn .icon-sm{width:16px;height:16px}.row-actions .btn[data-action=upload]:hover{color:var(--primary)}.row-actions .btn[data-action=edit]:hover{color:var(--accent)}.row-actions .btn[data-action=courses]:hover,.row-actions .btn[data-action=show]:hover{color:var(--info)}.row-actions .btn[data-action=check]:hover{color:var(--success)}.row-actions .btn[data-action=delete]:hover{color:var(--danger)}.row-actions .btn[data-action=download]:hover{color:var(--primary)}.row-actions .btn[data-tip]:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%) translateY(2px);background:var(--fg);color:var(--bg);font-size:var(--text-xs);font-weight:500;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s,transform .12s;z-index:5}.row-actions .btn:hover[data-tip]:after{opacity:1;transform:translate(-50%) translateY(0)}.row-actions .sep{width:1px;height:16px;background:var(--border);margin:0 2px}.error-message,.error-text{display:block;margin-top:.25rem;color:var(--danger, #dc2626);font-size:.8125rem}.file-input-wrapper{position:relative;overflow:hidden;border:2px dashed var(--border-color, var(--border, #d1d5db));border-radius:var(--radius-sm, 6px);background:var(--bg-secondary, var(--surface-1, #f9fafb));cursor:pointer;transition:all .2s}.file-input-wrapper:hover{border-color:var(--primary-color, var(--primary, #3b82f6));background:#3b82f60d}.file-input{position:absolute;inset:0;opacity:0;cursor:pointer}.file-input:disabled{cursor:not-allowed}.file-input-label{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 16px;color:var(--text-secondary, var(--fg-2, #6b7280));font-size:14px;font-weight:500}.file-input-label svg{color:var(--text-tertiary, var(--fg-3, #9ca3af))}.alert{padding:12px 16px;border-radius:var(--radius-sm, 6px);font-size:14px}.alert.alert-error{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:var(--danger, #dc2626)}.alert.alert-success{background:#22c55e1a;border:1px solid rgba(34,197,94,.2);color:var(--success, #16a34a)}.alert.alert-info{background:#3b82f61a;border:1px solid rgba(59,130,246,.2);color:var(--info, #1d4ed8)}.alert .alert-content{display:flex;gap:12px;align-items:flex-start}.alert .alert-icon{flex-shrink:0;margin-top:2px}.alert .alert-text{flex:1}.alert .alert-text p{margin:0}.alert .alert-text p:last-child{margin-bottom:0}.modal-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-lg)}.modal-icon--warning{background:var(--warning-soft);color:var(--warning)}.modal-icon--danger{background:var(--danger-soft);color:var(--danger)}.modal-icon--success{background:var(--success-soft);color:var(--success)}.modal-icon--info,.modal-icon--primary{background:var(--primary-soft);color:var(--primary)}.btn-close,.modal-close-btn{border:none;background:transparent;color:var(--fg-3);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;transition:color .12s}.btn-close:hover,.modal-close-btn:hover{color:var(--fg)}.btn-check{border:none;background:transparent;color:var(--primary);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:var(--text-sm);font-weight:500;transition:color .12s}.btn-check:hover{color:var(--primary-hover)}.campana-detail-container{display:flex;flex-direction:column;gap:2rem;padding:2rem;max-width:1200px;margin:0 auto}.detail-header{padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.detail-header .btn-back{display:flex;align-items:center;gap:.5rem;background:none;border:none;color:var(--primary);cursor:pointer;font-weight:500;transition:all .2s ease}.detail-header .btn-back .icon{width:18px;height:18px}.detail-header .btn-back:hover{color:var(--primary-dark);gap:.75rem}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem;color:var(--text-secondary)}.loading-state .spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.campaign-content{display:flex;flex-direction:column;gap:2rem}.campaign-card{border:1px solid var(--border-color);border-radius:8px;background:var(--background-primary);overflow:hidden}.campaign-header{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;padding:2rem}.campaign-header .campaign-title h1{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0 0 1rem}.campaign-header .campaign-dates{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);margin:0}.campaign-header .campaign-dates .icon{width:18px;height:18px;color:var(--primary)}.campaign-header .campaign-stats{display:flex;gap:2rem}.campaign-header .campaign-stats .stat{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center}.campaign-header .campaign-stats .stat .label{font-size:.85rem;color:var(--text-secondary);text-transform:uppercase;font-weight:500}.campaign-header .campaign-stats .stat .value{font-size:2rem;font-weight:700;color:var(--primary)}.tabs-section{padding:1rem 0}.section{display:flex;flex-direction:column;gap:1.5rem;padding:2rem;border:1px solid var(--border-color);border-radius:8px;background:var(--background-primary)}.section-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.section-header h2{display:flex;align-items:center;gap:.75rem;font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.section-header h2 .icon{width:24px;height:24px;color:var(--primary)}.section-header .btn{white-space:nowrap}.certificadores-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.certificador-card{border:1px solid var(--border-color);border-radius:8px;background:var(--background-secondary);overflow:hidden;transition:all .3s ease}.certificador-card:hover{border-color:var(--primary);box-shadow:0 4px 12px #00000014}.certificador-content{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.certificador-info{display:flex;flex-direction:column;gap:.75rem}.certificador-info h3{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0}.certificador-info .cargo{color:var(--text-secondary);font-size:.9rem;margin:0}.certificador-info .firma-preview{margin-top:.5rem}.certificador-info .firma-preview img{max-width:150px;max-height:80px;border:1px solid var(--border-color);border-radius:4px;display:block}.certificador-actions{display:flex;gap:.5rem;padding-top:1rem;border-top:1px solid var(--border-color);justify-content:flex-end}.empleados-table-container{overflow-x:auto}.empleados-table{width:100%;border-collapse:collapse;font-size:.95rem}.empleados-table thead{background:var(--background-secondary);border-bottom:2px solid var(--border-color)}.empleados-table thead th{padding:1rem;text-align:left;font-weight:600;color:var(--text-primary);white-space:nowrap}.empleados-table tbody tr{border-bottom:1px solid var(--border-color);transition:background .2s ease}.empleados-table tbody tr:hover{background:var(--background-secondary)}.empleados-table tbody tr:last-child{border-bottom:none}.empleados-table tbody td{padding:1rem;color:var(--text-primary)}.empleado-row .empleado-cell .empleado-info{display:flex;align-items:center;gap:.75rem;font-weight:500}.empleado-row .empleado-cell .empleado-info .icon{width:18px;height:18px;color:var(--primary);flex-shrink:0}.empleado-row .nota-cell .nota-badge{display:inline-block;padding:.4rem .8rem;background:var(--primary-soft);color:var(--primary);border-radius:20px;font-weight:500;font-size:.9rem}.empleado-row .nota-cell .nota-badge.empty{background:var(--background-secondary);color:var(--text-secondary)}.empleado-row .estado-cell .estado-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .8rem;border-radius:20px;font-weight:500;font-size:.9rem}.empleado-row .estado-cell .estado-badge .icon{width:16px;height:16px}.empleado-row .estado-cell .estado-badge.estado-aprobado{background:var(--success-soft);color:var(--success)}.empleado-row .estado-cell .estado-badge.estado-rechazado{background:var(--danger-soft);color:var(--danger)}.empleado-row .estado-cell .estado-badge.estado-pendiente{background:var(--warning-soft);color:var(--warning)}.empleado-row .actions-cell{display:flex;gap:.5rem;justify-content:flex-end}.btn-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:6px;background:var(--background-secondary);cursor:pointer;transition:all .2s ease;color:var(--text-secondary)}.btn-icon .icon{width:18px;height:18px}.btn-icon:hover{background:var(--primary-soft);color:var(--primary)}.btn-icon.btn-danger:hover{background:var(--danger-soft);color:var(--danger)}@media(max-width:768px){.campana-detail-container{padding:1rem;gap:1.5rem}.campaign-header{flex-direction:column}.campaign-header .campaign-stats{width:100%;justify-content:space-around}.section{padding:1rem}.certificadores-grid{grid-template-columns:1fr}.empleados-table{font-size:.85rem}.empleados-table thead th,.empleados-table tbody td{padding:.75rem .5rem}}.modal-backdrop{position:fixed;inset:0;background:#00000073;z-index:1000;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}.modal-backdrop.open{opacity:1;visibility:visible}.modal{background:var(--surface-0);border-radius:8px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a}.modal.modal-wide{max-width:800px}.mode-toggle{display:flex;gap:.5rem;background:var(--surface-1);padding:.5rem;border-radius:6px}.mode-toggle .mode-option{flex:1;padding:.5rem 1rem;border:none;border-radius:4px;background:transparent;color:var(--fg-2);font-weight:500;cursor:pointer;transition:all .2s ease;font-size:.9rem}.mode-toggle .mode-option:hover{color:var(--fg);background:var(--surface-0)}.mode-toggle .mode-option.active{background:var(--primary);color:#fff;box-shadow:0 2px 4px #4f46e533}.file-label{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem;border:2px dashed var(--border);border-radius:6px;text-align:center;cursor:pointer;transition:all .2s ease;background:var(--surface-1)}.file-label svg{color:var(--primary);flex-shrink:0}.file-label span{color:var(--primary);font-weight:500}.file-label:hover{border-color:var(--primary);background:var(--primary-soft)}.firma-preview{margin-top:1rem;padding:1rem;border:1px solid var(--border);border-radius:6px;background:var(--surface-1)}.firma-preview .preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.firma-preview .preview-header p{font-size:.85rem;color:var(--fg-2);margin:0;text-transform:uppercase;font-weight:500}.firma-preview .btn-remove-firma{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:var(--danger-soft);color:var(--danger);border-radius:4px;cursor:pointer;transition:all .2s ease}.firma-preview .btn-remove-firma:hover{background:var(--danger);color:#fff}.firma-preview img{max-width:100%;max-height:150px;display:block;border-radius:4px}@media(max-width:480px){.modal{max-width:100%}}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:480px){.form-row{grid-template-columns:1fr}}.campanas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.campanas-grid app-card{display:flex}.card-header-content{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px}.card-header-content h3{margin:0;font-size:16px;font-weight:700;line-height:1.3;flex:1}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table thead{background:var(--surface-1);border-bottom:1px solid var(--border)}.data-table thead th{padding:12px 16px;text-align:left;font-weight:600;color:var(--fg);white-space:nowrap}.data-table tbody tr{border-bottom:1px solid var(--border);transition:background .15s ease}.data-table tbody tr:hover{background:var(--surface-1)}.data-table tbody tr td{padding:12px 16px;color:var(--fg-1)}.data-table tbody tr td.font-weight-medium{font-weight:500;color:var(--fg)}.view-toggle{display:flex;gap:.5rem;background:var(--surface-1);padding:.5rem;border-radius:6px}.view-toggle .toggle-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:4px;background:transparent;color:var(--fg-2);cursor:pointer;transition:all .2s ease}.view-toggle .toggle-btn:hover{color:var(--fg);background:var(--surface-0)}.view-toggle .toggle-btn.active{background:var(--primary);color:#fff}.campanas-filters{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}.campanas-filters app-pill-tabs{flex:1;min-width:300px}.campanas-filters app-select-dropdown{min-width:200px}.campanas-content{flex:1}.course-meta{display:flex;gap:14px;color:var(--fg-2);font-size:12px;flex-wrap:wrap}.course-meta span{display:inline-flex;gap:4px;align-items:center}.curso-picker-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.75rem;border:1px solid var(--border);border-radius:6px;background:var(--surface-0);cursor:pointer;transition:all .2s ease;text-align:left;color:var(--fg-2)}.curso-picker-trigger:hover{border-color:var(--primary);background:var(--surface-1)}.curso-picker-trigger:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.curso-picker-trigger.has-selection{color:var(--fg)}.curso-picker-trigger .placeholder{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.5rem}.curso-picker-trigger .placeholder span{flex:1}.curso-picker-trigger .selected-curso{display:flex;align-items:center;gap:.75rem;width:100%}.curso-picker-trigger .selected-curso .curso-title{flex:1;color:var(--fg);font-weight:500}.curso-picker-trigger .selected-curso svg{flex-shrink:0;color:var(--fg-2)}.curso-picker-trigger svg{color:var(--fg-2);flex-shrink:0}.modal-card{background:var(--background-primary);border-radius:8px;max-width:500px;width:100%;box-shadow:0 20px 25px -5px #0000001a}.modal-search{padding:16px 24px;border-bottom:1px solid var(--border);background:var(--surface-1)}.modal-search .search-wrapper{position:relative;display:flex;align-items:center}.modal-search .search-wrapper svg{position:absolute;left:12px;color:var(--fg-2);pointer-events:none}.modal-search .search-wrapper .search-input{width:100%;padding-left:40px!important;border:1px solid var(--border)!important;background:var(--surface-0)!important}.modal-search .search-wrapper .search-input:focus{outline:none;border-color:var(--primary)!important;box-shadow:0 0 0 3px var(--primary-soft)}.modal-search .search-wrapper .search-input::placeholder{color:var(--fg-2)}.picker-grid{display:grid;grid-template-columns:1fr;gap:12px}.picker-card{padding:16px;border:1px solid var(--border);border-radius:8px;background:var(--surface-0);cursor:pointer;transition:all .2s ease}.picker-card:hover{border-color:var(--primary);background:var(--surface-1);box-shadow:0 2px 8px #4f46e51a}.picker-card:active{transform:scale(.98)}.picker-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:8px}.picker-card-header h4{margin:0;font-size:14px;font-weight:600;color:var(--fg);flex:1}.picker-card-header .badge{flex-shrink:0}.picker-card-description{margin:0 0 8px;font-size:13px;color:var(--fg-2);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.picker-card-meta{display:flex;gap:16px;font-size:12px;color:var(--fg-2)}.picker-card-meta .meta-item{display:flex;gap:4px}.picker-card-meta .meta-item strong{color:var(--fg);font-weight:600}@media(max-width:640px){.modal{width:95%;max-height:80vh}.picker-grid{gap:8px}.picker-card{padding:12px}.picker-card-header{gap:.5rem}.picker-card-header h4{font-size:13px}}.code{font-family:var(--font-mono);font-size:var(--text-xs);background:var(--surface-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs);color:var(--fg-1)}@media(max-width:1024px){.table{font-size:13px}.table th,.table td{padding:var(--space-3) var(--space-2)}.avatar.avatar-sm{width:28px;height:28px;font-size:10px}}.modal-container{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:1001;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;padding:16px}.modal-container.open{opacity:1;visibility:visible}.modal-subtitle{color:var(--fg-2, #6b7280);font-size:14px;margin-bottom:20px}.videos-section{margin-top:24px;padding-top:16px;border-top:1px solid var(--border, #e5e7eb)}.videos-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.videos-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px;background:var(--surface-2, #f3f4f6);border-radius:8px;color:var(--fg-3, #9ca3af);font-size:13px}.videos-list{display:flex;flex-direction:column;gap:12px}.video-item{padding:12px;background:var(--surface-2, #f9fafb);border-radius:8px;border:1px solid var(--border, #e5e7eb)}.video-row{display:flex;gap:8px;align-items:flex-end;margin-bottom:8px}.flex-between{display:flex;justify-content:space-between;align-items:center}.courses-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.course-card{background:var(--surface-0);border:1px solid var(--border);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:12px}.course-card h4{margin:0;font-size:var(--text-lg);font-weight:700;line-height:1.3}.course-card .top{display:flex;align-items:center;justify-content:space-between}.course-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center}.course-foot{display:flex;gap:6px;padding-top:12px;border-top:1px solid var(--border);align-items:center}.course-foot .btn-primary{flex:1}.course-actions-more{display:flex;gap:4px}.course-actions-more .btn{padding:6px;min-width:32px;justify-content:center}.loading-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;color:var(--fg-2)}.loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.loading-text{font-size:14px}.empty-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;background:var(--surface-0);border:1px solid var(--border);border-radius:12px}.empty-icon{color:var(--fg-2);margin-bottom:16px;opacity:.5}.empty-title{font-size:16px;font-weight:600;color:var(--fg);margin-bottom:4px}.empty-text{font-size:13px;color:var(--fg-2)}@media(max-width:1200px){.courses-grid{grid-template-columns:repeat(2,1fr)}}.header-actions{display:flex;gap:8px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.kpi-card{background:var(--surface-0);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px}.kpi-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.kpi-icon{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.kpi-badge{font-size:var(--text-xs);font-weight:700;padding:2px 8px;border-radius:var(--radius-full);background:var(--success-soft);color:var(--success-soft-fg)}.kpi-value{font-size:var(--text-3xl);font-weight:700;color:var(--fg);font-variant-numeric:tabular-nums;line-height:1;margin-bottom:6px}.kpi-label{font-size:var(--text-sm);color:var(--fg-2)}.content-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px}.card-pad{padding:20px}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-head h3{font-size:var(--text-base);font-weight:700;color:var(--fg)}.card-head .ver-todas{font-size:var(--text-sm);font-weight:600;color:var(--primary);text-decoration:none}.card-head .ver-todas:hover{color:var(--primary-hover)}.solicitudes-list{display:flex;flex-direction:column;gap:10px}.solicitud-item{display:flex;align-items:center;gap:12px;padding:14px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-md)}.solicitud-info{flex:1;min-width:0}.solicitud-info .solicitud-nombre{font-size:var(--text-sm);font-weight:600;color:var(--fg)}.solicitud-info .solicitud-detalle{font-size:var(--text-xs);color:var(--fg-2);margin-top:2px}.solicitudes-empty{text-align:center;padding:32px 16px;color:var(--fg-2);font-size:var(--text-sm)}.areas-list{display:flex;flex-direction:column;gap:16px;margin-top:16px}.area-item{display:flex;flex-direction:column;gap:6px}.area-row{display:flex;justify-content:space-between;font-size:var(--text-sm)}.area-row .area-nombre{font-weight:600;color:var(--fg)}.area-row .area-pct{color:var(--fg-2);font-variant-numeric:tabular-nums}.progress-track{height:6px;background:var(--surface-2);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;border-radius:var(--radius-full);transition:width .4s var(--ease)}.modal-content{display:flex;gap:24px;flex:1;min-height:0;margin-bottom:24px}.empleados-section{flex:0 0 35%}.empleados-list{display:flex;flex-direction:column;gap:8px;flex:1;overflow-y:auto;max-height:400px}.empleado-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--surface-1);border-radius:var(--radius-md);border:1px solid var(--border)}.empleado-item .empleado-avatar{flex-shrink:0;width:40px;height:40px;border-radius:8px;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px}.empleado-item .empleado-info{flex:1;min-width:0}.empleado-item .empleado-info .empleado-name{font-weight:600;color:var(--fg);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empleado-item .empleado-info .empleado-meta{font-size:12px;color:var(--fg-3);margin-top:2px}.divider{flex-shrink:0;width:1px;background:var(--border);min-height:400px}.cursos-section{flex:0 0 65%}.search-box{position:relative;margin-bottom:12px}.search-box .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--fg-3);pointer-events:none}.search-box .search-input{width:100%;border:1px solid var(--border);border-radius:var(--radius-lg);padding:10px 12px 10px 40px;font-family:inherit;font-size:14px;color:var(--fg);background:var(--surface-0);transition:border-color .12s,box-shadow .12s}.search-box .search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--surface-0),0 0 0 4px var(--primary)}.search-box .search-input::placeholder{color:var(--fg-3)}.curso-list{flex:1;overflow-y:auto;max-height:400px;border:1px solid var(--border);border-radius:var(--radius-lg)}.curso-item{display:flex;align-items:center;gap:12px;padding:12px;border-bottom:1px solid var(--border);cursor:pointer;transition:all .12s}.curso-item:last-child{border-bottom:none}.curso-item:hover{background:var(--surface-1)}.curso-item.selected{background:var(--primary-soft)}.curso-item .check-box{flex-shrink:0;width:20px;height:20px;border:2px solid var(--border);border-radius:4px;display:flex;align-items:center;justify-content:center;background:var(--surface-0);transition:all .12s}.curso-item .check-box svg{color:#fff;flex-shrink:0}.curso-item .check-box.checked{background:var(--primary);border-color:var(--primary)}.curso-item .curso-info{flex:1;min-width:0}.curso-item .curso-info .curso-title{font-weight:600;color:var(--fg);font-size:14px;margin-bottom:4px}.curso-item .curso-info .curso-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.curso-item .curso-info .curso-meta .duracion{font-size:12px;color:var(--fg-3)}.curso-item .badge-assigned{flex-shrink:0;background:var(--surface-2);color:var(--fg-2);padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;white-space:nowrap}.text-small{font-size:12px}.fw-bold{font-weight:600}.mb-0{margin-bottom:0}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mt-3{margin-top:12px}.ps-3{padding-left:16px}.text-muted{color:var(--text-secondary, #6b7280)}.text-warning{color:#f59e0b}.import-dropdown-container{position:relative;display:inline-block}.import-dropdown-container .import-btn{display:flex;align-items:center;gap:.5rem;position:relative;z-index:10}.import-dropdown-container .import-btn .chevron{margin-left:.25rem;transition:transform .2s ease}.import-dropdown-container .import-btn .chevron.rotated{transform:rotate(180deg)}.import-dropdown-container .dropdown-menu{position:absolute;top:100%;right:0;margin-top:.5rem;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 10px 15px -3px #0000001a;min-width:280px;z-index:20;overflow:hidden}.import-dropdown-container .dropdown-menu .dropdown-item{display:block;width:100%;padding:.75rem 1rem;background:none;border:none;text-align:left;cursor:pointer;transition:background-color .2s ease;border-bottom:1px solid #f3f4f6}.import-dropdown-container .dropdown-menu .dropdown-item:last-child{border-bottom:none}.import-dropdown-container .dropdown-menu .dropdown-item:hover{background-color:#f9fafb}.import-dropdown-container .dropdown-menu .dropdown-item:active{background-color:#f3f4f6}.import-dropdown-container .dropdown-menu .dropdown-item .option-content{display:flex;flex-direction:column;gap:.25rem}.import-dropdown-container .dropdown-menu .dropdown-item .option-content .option-label{font-weight:500;color:#1f2937;font-size:.875rem}.import-dropdown-container .dropdown-menu .dropdown-item .option-content .option-description{font-size:.75rem;color:#6b7280;line-height:1.4}.dropdown-overlay{position:fixed;inset:0;z-index:5}dialog.modal-container{border:none;border-radius:.375rem;box-shadow:0 10px 25px #00000026;padding:0;max-width:600px;width:90%}dialog.modal-container::backdrop{background-color:#00000080}.form-content{display:flex;flex-direction:column;gap:20px}.input,.input-custom,.textarea{border:1px solid var(--border);border-radius:var(--radius-lg);padding:10px 12px;font-family:inherit;font-size:14px;color:var(--fg);background:var(--surface-0);transition:border-color .12s,box-shadow .12s}.input:focus,.input-custom:focus,.textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--surface-0),0 0 0 4px var(--primary)}.input:disabled,.input-custom:disabled,.textarea:disabled{opacity:.5;cursor:not-allowed}textarea.input,textarea.input-custom,textarea.textarea{resize:vertical;font-family:inherit}.dropzone{border:2px dashed var(--border);border-radius:var(--radius-lg);padding:32px;text-align:center;cursor:pointer;transition:all .18s cubic-bezier(.2,0,0,1);background:var(--surface-1)}.dropzone:hover{border-color:var(--primary);background:var(--primary-soft)}.dropzone.dragging{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 4px #4f46e51a}.dropzone.has-file{border-color:var(--primary);border-style:solid;background:var(--primary-soft)}.dropzone .text-secondary{color:var(--fg-2);font-size:14px;margin:0}.dropzone .text-hint{color:var(--fg-3);font-size:12px;margin:8px 0 0}.dropzone .file-preview{display:flex;align-items:center;justify-content:space-between;gap:12px}.dropzone .file-preview .file-info{flex:1;text-align:left}.dropzone .file-preview .file-info .file-name{font-weight:600;color:var(--fg);font-size:14px;margin:0;word-break:break-word}.dropzone .file-preview .file-info .file-size{color:var(--fg-2);font-size:12px;margin:4px 0 0}.dropzone .file-preview .btn-remove{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--danger-soft);border:none;border-radius:var(--radius-md);cursor:pointer;color:var(--danger);transition:all .12s}.dropzone .file-preview .btn-remove:hover{background:var(--danger);color:#fff}.dropzone .file-preview .btn-remove svg{flex-shrink:0}.contratos-container{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;background-color:#f8f9fa;border-radius:.375rem}.contratos-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.contratos-header h2{margin:0;font-size:1.5rem;font-weight:600;color:#212529}.contratos-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;padding:1rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.contratos-filters .filter-group{display:flex;flex-direction:column;gap:.5rem}.contratos-filters .filter-group label{font-weight:500;color:#212529;font-size:.9rem}.contratos-filters .filter-group .form-control{padding:.5rem .75rem;border:1px solid #ced4da;border-radius:.25rem;font-size:.9rem;transition:border-color .15s ease}.contratos-filters .filter-group .form-control:focus{border-color:#80bdff;box-shadow:0 0 0 .2rem #007bff40;outline:none}.loading-state,.empty-state{display:flex;justify-content:center;align-items:center;padding:2rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;text-align:center}.loading-state p,.empty-state p{margin:0;color:#6c757d;font-size:.95rem}.contratos-table-wrapper{overflow-x:auto;border-radius:.25rem;border:1px solid #dee2e6;background-color:#fff}.contratos-table{width:100%;border-collapse:collapse;margin:0}.contratos-table thead{background-color:#f8f9fa;border-bottom:2px solid #dee2e6}.contratos-table thead th{padding:.75rem;text-align:left;font-weight:600;color:#212529;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.contratos-table tbody tr{border-bottom:1px solid #dee2e6;transition:background-color .15s ease}.contratos-table tbody tr:hover{background-color:#f8f9fa}.contratos-table tbody tr:last-child{border-bottom:none}.contratos-table tbody tr td{padding:.75rem;color:#212529;font-size:.9rem}.badge-vigente,.badge-historico{display:inline-block;padding:.35rem .65rem;border-radius:.25rem;font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.3px}.badge-vigente{background-color:#d4edda;color:#155724}.badge-historico{background-color:#e2e3e5;color:#383d41}.page-content{max-width:100%}.courses-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.courses-summary .csum{background:var(--surface-0, #ffffff);border:1px solid var(--border, #e5e7eb);border-radius:12px;padding:16px;display:flex;gap:12px;align-items:center}.courses-summary .csum .ico{width:38px;height:38px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center}.courses-summary .csum .num{font-size:22px;font-weight:800;line-height:1}.courses-summary .csum .label{font-size:11px;color:var(--fg-2, #6b7280);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-top:2px}.pill-tabs{display:flex;background:var(--surface-2, #f3f4f6);border-radius:8px;padding:4px;margin-bottom:14px;width:fit-content}.pill-tabs button{padding:8px 16px;border:none;background:transparent;border-radius:6px;font-size:14px;font-weight:500;color:var(--fg-2, #6b7280);cursor:pointer;transition:all .15s}.pill-tabs button:hover{color:var(--fg-1, #1f2937)}.pill-tabs button.active{background:#fff;color:var(--fg-1, #1f2937);box-shadow:0 1px 2px #0000000d}.course-card-row{background:var(--surface-0, #ffffff);border:1px solid var(--border, #e5e7eb);border-radius:12px;padding:18px 20px;display:flex;align-items:center;gap:16px;margin-bottom:10px}.course-card-row .c-icon{width:44px;height:44px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;flex:none}.course-card-row .grow{flex:1;min-width:0}.course-card-row .title{font-size:15px;font-weight:700}.course-card-row .meta{font-size:12px;color:var(--fg-2, #6b7280);margin-top:4px;display:flex;gap:14px;flex-wrap:wrap}.course-card-row .meta span{display:inline-flex;align-items:center;gap:4px}.course-card-row .meta span svg{width:13px;height:13px;margin-right:3px;vertical-align:-2px}.course-card-row .progress-block{width:180px;flex:none}.course-card-row .progress-block .bar{height:6px;background:var(--surface-2, #f3f4f6);border-radius:9999px;overflow:hidden}.course-card-row .progress-block .bar>div{height:100%;background:var(--primary, #4f46e5);border-radius:9999px}.course-card-row .progress-block .pct{font-size:12px;color:var(--fg-2, #6b7280);margin-top:6px;display:flex;justify-content:space-between;font-variant-numeric:tabular-nums;font-weight:600}.course-card-row .progress-block .pct .num{color:var(--fg, #1f2937)}.form-card{background:var(--surface-0, #ffffff);border:1px solid var(--border, #e5e7eb);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-4)}.form-card .card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.form-card .card-header>div:first-child{flex:1}.form-card .button-group{display:flex;gap:var(--space-2)}.form-card h3{margin:0 0 var(--space-1);font-size:var(--text-md);font-weight:700}.form-card .sub{color:var(--fg-2, #6b7280);font-size:var(--text-xs);margin-bottom:var(--space-4)}.form-card .row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.form-card .row+.row{margin-top:var(--space-3)}.form-card .row.span2{grid-column:1/-1}.form-card.danger-card{border-color:var(--rose-100, #fee2e2);background:var(--danger-soft, #fef2f2)}.form-card.danger-card h3{color:var(--danger-soft-fg, #991b1b)}.danger-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.danger-row .text{font-size:var(--text-xs);color:var(--fg, #1f2937);font-weight:600}.danger-row .hint{font-size:var(--text-xs);color:var(--fg-2, #6b7280);margin-top:var(--space-1)}.danger-btn{color:var(--danger, #dc2626);border-color:var(--rose-100, #fee2e2)}.danger-btn:hover{background:#dc26260d}.sticky-foot{position:sticky;bottom:0;background:var(--surface-0, #ffffff);border-top:1px solid var(--border, #e5e7eb);border-radius:0 0 12px 12px;padding:var(--space-3) var(--space-6);display:flex;gap:var(--space-2);justify-content:flex-end;margin:calc(var(--space-4) * -1) calc(var(--space-6) * -1) calc(var(--space-6) * -1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10}.crumbs{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--fg-2, #6b7280);margin-bottom:12px}.crumbs .crumb-link{color:var(--fg-2, #6b7280);text-decoration:none;font-weight:500;display:inline-flex;align-items:center;gap:4px;cursor:pointer;transition:color .15s;background:transparent;border:none;padding:0;font-size:12px;font-family:inherit}.crumbs .crumb-link:hover{color:var(--fg, #1f2937)}.crumbs .crumb-link svg{width:14px;height:14px}.crumbs .crumb-icon{width:14px;height:14px}.crumbs .current{color:var(--fg, #1f2937);font-weight:600}.emp-header{background:var(--surface-0, #ffffff);border:1px solid var(--border, #e5e7eb);border-radius:12px;padding:20px 24px;margin-bottom:16px}.emp-header .top{display:flex;gap:16px;align-items:center}.emp-header .top .grow{flex:1;min-width:0}.emp-header .top h2{margin:0;font-size:22px;font-weight:700;letter-spacing:-.01em;display:flex;align-items:center;gap:10px}.emp-header .top h2 span:first-child{flex:1}.emp-header .top .meta{margin-top:4px;color:var(--fg-2, #6b7280);font-size:13px;display:flex;flex-wrap:wrap;gap:14px;align-items:center}.emp-header .top .meta span{display:inline-flex;align-items:center;gap:6px}.emp-header .top .meta span svg{width:14px;height:14px}.emp-header .emp-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border, #e5e7eb);margin:18px -24px -20px;padding:0 24px}.emp-header .emp-tabs a{padding:12px 14px;font-size:13px;font-weight:600;color:var(--fg-2, #6b7280);border-bottom:2px solid transparent;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:color .15s,border-color .15s;text-decoration:none}.emp-header .emp-tabs a svg{width:15px;height:15px}.emp-header .emp-tabs a:hover{color:var(--fg, #1f2937)}.emp-header .emp-tabs a.active{color:var(--primary, #4f46e5);border-bottom-color:var(--primary, #4f46e5)}.empty{text-align:center;padding:48px 20px}.empty p{color:var(--fg-2, #6b7280);margin-bottom:16px;font-size:16px}.filter-bar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap}.filter-bar .search{position:relative;display:flex;align-items:center;flex:1;min-width:240px}.filter-bar .search .search-icon{position:absolute;left:12px;color:var(--fg-3, #9ca3af);pointer-events:none}.filter-bar .search input{width:100%;padding:10px 12px 10px 40px;border:1px solid var(--border, #e5e7eb);border-radius:var(--radius-md);font-size:var(--input-font-size)}.filter-bar .search input:focus{outline:none;border-color:var(--primary, #4f46e5);box-shadow:0 0 0 3px #4f46e51a}.filter-bar .search input::placeholder{color:var(--fg-3, #9ca3af)}.filter-bar .select{width:auto;flex:0 0 auto}.file-link{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--primary, #4f46e5);font-weight:600;text-decoration:none}.file-link:hover{text-decoration:underline}.obs{color:var(--fg-2, #6b7280);font-size:var(--text-xs);max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loading{text-align:center;padding:var(--space-12) var(--space-5);color:var(--fg-2, #6b7280)}.inc-summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:16px}.inc-summary .isum{background:var(--surface-0, #ffffff);border:1px solid var(--border, #e5e7eb);border-radius:12px;padding:14px 16px;display:flex;gap:12px;align-items:center}.inc-summary .isum .ico{width:38px;height:38px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;flex:none}.inc-summary .isum .ico svg{width:18px;height:18px}.inc-summary .isum .num{font-size:18px;font-weight:800;line-height:1.2;white-space:nowrap}.inc-summary .isum .label{font-size:11px;color:var(--fg-2, #6b7280);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-top:2px}.inc-table{width:100%;border-collapse:collapse;font-size:13px}.inc-table th{text-align:left;padding:10px 12px;font-weight:600;color:var(--fg-2, #6b7280);border-bottom:2px solid var(--border, #e5e7eb);white-space:nowrap;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.inc-table td{padding:10px 12px;border-bottom:1px solid var(--border, #e5e7eb);color:var(--fg, #1f2937);white-space:nowrap}.inc-table tbody tr:hover{background:var(--surface-2, #f9fafb)}.chip{display:inline-block;padding:2px 8px;border-radius:9999px;font-size:11px;font-weight:600;background:var(--surface-2, #f3f4f6);color:var(--fg-1, #374151)}form{display:flex;flex-direction:column;gap:20px}.label-with-badge{display:flex;align-items:center;gap:8px}.label-with-badge .field-label{margin:0}.label-with-badge .badge-suggestion{display:inline-flex;align-items:center;background:var(--primary-soft);color:var(--primary);font-size:11px;font-weight:600;text-transform:uppercase;padding:2px 8px;border-radius:12px;letter-spacing:.5px}.title-input-wrapper{position:relative;display:flex;align-items:center}.title-input-wrapper .input,.title-input-wrapper .input-custom,.title-input-wrapper .textarea{width:100%;padding-right:44px}.title-input-wrapper .btn-suggestion{position:absolute;right:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--primary);transition:color .12s}.title-input-wrapper .btn-suggestion:hover{color:var(--primary-hover)}.title-input-wrapper .btn-suggestion svg{flex-shrink:0}.switch{display:inline-flex;align-items:center;position:relative;width:44px;height:24px}.switch input[type=checkbox]{appearance:none;width:100%;height:100%;background:var(--surface-1);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:all .12s;margin:0;position:relative}.switch input[type=checkbox]:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;box-shadow:0 2px 4px #0000001a;transition:transform .12s}.switch input[type=checkbox]:checked{background:var(--primary);border-color:var(--primary)}.switch input[type=checkbox]:checked:after{transform:translate(20px)}.contract-toggle{display:flex;justify-content:space-between;align-items:center}.contract-toggle .field-label{margin:0}.toggle-wrapper{display:flex;align-items:center;gap:8px}.toggle-checkbox{display:none}.toggle-label{position:relative;width:44px;height:24px;background:var(--surface-1);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:all .12s;display:flex;align-items:center;padding:2px}.toggle-label .toggle-dot{width:20px;height:20px;background:#fff;border-radius:10px;transition:transform .12s;box-shadow:0 2px 4px #0000001a}.toggle-checkbox:checked+.toggle-label{background:var(--primary);border-color:var(--primary)}.toggle-checkbox:checked+.toggle-label .toggle-dot{transform:translate(20px)}.toggle-text{font-size:13px;color:var(--fg-2);min-width:65px}.drawer-overlay{position:fixed;inset:0;background:#0000004d;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:39}.drawer-overlay.open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;right:0;bottom:0;width:480px;max-width:100%;background:var(--surface-0);border-left:1px solid var(--border);box-shadow:var(--shadow-xl);transform:translate(100%);transition:transform .2s ease;z-index:40;display:flex;flex-direction:column}.drawer.open{transform:translate(0)}.drawer-content{flex:1;overflow-y:auto;padding:28px;display:flex;flex-direction:column;gap:20px}.employee-header{display:flex;gap:16px;align-items:flex-start}.employee-header .avatar{width:64px;height:64px;display:flex;align-items:center;justify-content:center;border-radius:8px;color:#fff;font-weight:600;font-size:20px;flex-shrink:0}.employee-header .employee-name-section{flex:1}.employee-header .employee-name-section h3{margin:0;font-size:16px;font-weight:600;line-height:1.4}.employee-header .employee-name-section .subtitle{margin:4px 0 0;font-size:13px;color:var(--text-secondary)}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.info-item .info-label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:6px}.info-item .info-value{margin:0;font-size:14px;color:var(--text)}.info-item .info-value .badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.info-item .info-value .badge .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor}.info-item .info-value .badge.badge-success{background:var(--success-soft);color:var(--success-soft-fg)}.info-item .info-value .badge.badge-neutral{background:var(--surface-2);color:var(--fg-2)}.btn-back{align-self:flex-start;background:none;border:none;cursor:pointer;padding:8px 0;font-size:14px;color:var(--primary);font-weight:500;margin-bottom:8px}.btn-back:hover{text-decoration:underline}.documents-title{margin:0 0 16px;font-size:16px;font-weight:600}.documents-list{display:flex;flex-direction:column;gap:12px}.document-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--surface-1);border-radius:8px;border:1px solid var(--border)}.document-item .doc-info{flex:1}.document-item .doc-info .doc-name{margin:0;font-size:14px;font-weight:500;color:var(--text)}.document-item .doc-info .doc-meta{margin:4px 0 0;font-size:12px;color:var(--text-secondary)}.document-item .doc-size{font-size:12px;color:var(--text-secondary);flex-shrink:0}.empty-message{text-align:center;color:var(--text-secondary);font-size:14px;padding:20px}.page-header-actions{display:flex;gap:12px;align-items:center}.page-header-actions .btn{display:flex;align-items:center;gap:8px;white-space:nowrap}.empleado-cell{display:flex;align-items:center;gap:var(--space-3)}.empleado-cell .avatar{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--input-font-size);font-weight:600}.empleado-cell .empleado-info{display:flex;flex-direction:column}.empleado-cell .empleado-info .empleado-name{font-weight:600;color:var(--fg-1)}.empleado-cell .empleado-info .empleado-email{font-size:var(--text-xs);color:var(--fg-2)}.acciones{display:flex;gap:var(--space-1);justify-content:flex-end}.checkbox-col{width:44px;padding:var(--space-3) var(--space-2)!important;text-align:center}.checkbox{width:20px;height:20px;border:2px solid var(--border);border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;background:var(--surface-0);cursor:pointer;transition:all .12s;margin:0 auto}.checkbox svg{color:#fff;flex-shrink:0}.checkbox:hover{border-color:var(--primary)}.checkbox.checked{background:var(--primary);border-color:var(--primary)}.selected-row{background:var(--primary-soft)}.btn-compact{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);height:auto}.w-100{width:100%}.spacer{flex:1}.checkbox-label{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;cursor:pointer}.checkbox-label .checkbox-input{cursor:pointer}.checkbox-label span{margin:0}.error-message{display:block;color:#dc3545;font-size:.875rem;margin-top:.25rem}.form-hint{font-size:.85rem;color:var(--slate-600);margin:.5rem 0 0}.btn-upload{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:var(--slate-100);border:1px dashed var(--slate-400);border-radius:.375rem;cursor:pointer;font-size:.9rem;transition:all .2s}.btn-upload:hover{background-color:var(--slate-200);border-color:var(--slate-600)}.btn-upload .icon{font-size:1rem}.plantilla-selected{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background-color:#f0f9ff;border-radius:.375rem;border-left:4px solid #0284c7}.plantilla-selected .plantilla-name{font-size:.9rem;font-weight:500;color:var(--slate-700)}.plantilla-selected .btn-remove{background:none;border:none;color:#dc3545;cursor:pointer;font-size:1rem;padding:.25rem .5rem;transition:color .2s}.plantilla-selected .btn-remove:hover{color:#bb2d3b}.file-upload-wrapper{position:relative}.file-upload-wrapper input[type=file]{display:block;width:100%;padding:.5rem;border:2px dashed #ddd;border-radius:.25rem;background-color:#f9f9f9;cursor:pointer;transition:all .3s ease}.file-upload-wrapper input[type=file]:hover{border-color:#007bff;background-color:#f0f7ff}.file-upload-wrapper input[type=file]:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 .2rem #007bff40}.file-info{padding:.75rem;background-color:#e7f3ff;border-left:3px solid #007bff;border-radius:.25rem}.file-info small{display:block}.file-restrictions{padding:.5rem 0;font-size:.85rem;color:#666}.mt-2{margin-top:.5rem}.btn-secondary,.btn-primary{padding:.5rem 1rem;border:none;border-radius:.25rem;font-size:1rem;cursor:pointer;transition:all .3s ease}.btn-secondary:disabled,.btn-primary:disabled{opacity:.6;cursor:not-allowed}.company-info-section{margin-bottom:var(--space-8)}.company-info-section .company-header{display:flex;gap:var(--space-6);padding:var(--space-6);border-bottom:1px solid var(--border)}.company-info-section .logo-section{flex-shrink:0}.company-info-section .logo-box{width:120px;height:120px;background:var(--surface-1);border:2px solid var(--border);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;overflow:hidden}.company-info-section .logo-box:hover{border-color:var(--primary);background:var(--primary-soft)}.company-info-section .logo-image{width:100%;height:100%;object-fit:contain}.company-info-section .logo-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);color:var(--fg-3)}.company-info-section .logo-placeholder .placeholder-text{font-size:var(--text-xs);font-weight:600}.company-info-section .company-meta{flex:1;display:flex;flex-direction:column;justify-content:center}.company-info-section .company-name{margin:0;margin-bottom:var(--space-4);font-size:var(--text-2xl);font-weight:700;color:var(--fg)}.company-info-section .company-stats{display:flex;gap:var(--space-6)}.company-info-section .stat{display:flex;flex-direction:column;gap:var(--space-2)}.company-info-section .stat .stat-label{font-size:var(--text-xs);color:var(--fg-2);font-weight:600;letter-spacing:.5px}.company-info-section .stat .stat-value{font-size:var(--text-2xl);font-weight:700;color:var(--primary)}.company-details-section{padding:var(--space-6)}.company-details-section .section-title{margin:0;margin-bottom:var(--space-6);font-size:var(--text-lg);font-weight:700;color:var(--fg)}.company-details-section .details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-4)}.company-details-section .detail-card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4);transition:all .2s}.company-details-section .detail-card:hover{border-color:var(--primary);box-shadow:0 2px 8px #4f46e514}.company-details-section .detail-card .detail-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.company-details-section .detail-card .detail-header .detail-icon{width:18px;height:18px;color:var(--primary);flex-shrink:0;font-size:16px;display:flex;align-items:center;justify-content:center}.company-details-section .detail-card .detail-header .detail-icon:before{content:"";display:inline-block;width:16px;height:16px;background:currentColor;mask-size:contain;-webkit-mask-size:contain}.company-details-section .detail-card .detail-header .detail-label{font-size:var(--text-xs);font-weight:600;color:var(--fg-2);letter-spacing:.5px}.company-details-section .detail-card .detail-content{display:flex;align-items:center;gap:var(--space-2);justify-content:space-between}.company-details-section .detail-card .detail-content .detail-value{font-size:var(--text-sm);color:var(--fg);font-weight:500;flex:1;word-break:break-word}.company-details-section .detail-card .detail-content .btn-edit{padding:var(--space-2);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;color:var(--fg-2);transition:all .12s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.company-details-section .detail-card .detail-content .btn-edit:hover{background:var(--primary-soft);color:var(--primary)}.company-details-section .detail-card .detail-content .btn-edit svg{flex-shrink:0}.search-section{margin-bottom:2rem;background:#fff;padding:1.5rem;border-radius:.5rem;border:1px solid #e5e7eb}.search-section .search-form{display:flex;gap:1rem;align-items:flex-end}.search-section .search-form .form-group{flex:1;min-width:200px}.search-section .search-form .form-group input{width:100%;padding:.5rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem}.search-section .search-form .form-group input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.search-section .search-form .form-actions{display:flex;gap:.5rem}.results-section{background:#fff;border-radius:.5rem;border:1px solid #e5e7eb;overflow:hidden}.results-section .loading-state{padding:2rem;text-align:center}.results-section .loading-state .spinner{width:40px;height:40px;border:4px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 1rem}@keyframes spin{to{transform:rotate(360deg)}}.results-section .empty-state{padding:3rem 2rem;text-align:center;color:#666}.results-section .empty-state button{margin-top:1rem}.table-container{overflow-x:auto}.table-container .table{width:100%;border-collapse:collapse}.table-container .table thead{background-color:#f9fafb;border-bottom:1px solid #e5e7eb}.table-container .table thead th{padding:1rem;text-align:left;font-weight:600;font-size:.875rem;color:#374151}.table-container .table tbody tr{border-bottom:1px solid #e5e7eb}.table-container .table tbody tr:hover{background-color:#f9fafb}.table-container .table tbody tr td{padding:1rem;font-size:.875rem}.table-container .table tbody tr td.actions-cell{display:flex;gap:.5rem}.aprobaciones{padding-block:1.5rem}.aprobaciones h2{font-weight:600}.aprobaciones .table th{font-weight:600;white-space:nowrap}.aprobacion-drawer{position:fixed;top:0;right:0;height:100vh;width:100%;max-width:440px;background:#fff;box-shadow:-2px 0 8px #00000026;display:flex;flex-direction:column;z-index:1050;transform:translate(100%);transition:transform .25s ease}.aprobacion-drawer.open{transform:translate(0)}.aprobacion-drawer .drawer-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--bs-border-color, #dee2e6)}.aprobacion-drawer .drawer-body{flex:1;overflow-y:auto;padding:1rem}.aprobacion-drawer .drawer-footer{display:flex;gap:.5rem;padding:1rem;border-top:1px solid var(--bs-border-color, #dee2e6)}.approval-timeline{list-style:none;padding-left:0;margin:0}.approval-timeline .approval-step{display:flex;gap:.75rem;padding-block:.5rem;border-left:2px solid var(--bs-border-color, #dee2e6);padding-left:.75rem;position:relative}.approval-timeline .approval-step:last-child{border-left-color:transparent}.approval-timeline .approval-step.step--aprobado{border-left-color:var(--bs-success, #198754)}.approval-timeline .approval-step.step--rechazado{border-left-color:var(--bs-danger, #dc3545)}.approval-timeline .approval-step.step--pendiente{border-left-color:var(--bs-warning, #ffc107)}.approval-timeline .approval-step .step-indicator .step-orden{font-weight:700;font-size:.8rem;color:var(--bs-secondary, #6c757d)}.approval-timeline .approval-step .step-content{flex:1}.approval-timeline .approval-step .step-content .step-admin{font-weight:600;font-size:.9rem}.approval-timeline .approval-step .step-content .step-meta{display:flex;align-items:center;gap:.25rem;margin-top:.2rem}.reject-form{background:var(--bs-light, #f8f9fa);border-radius:.375rem;padding:.75rem;border:1px solid var(--bs-border-color, #dee2e6)}.admin-selector{display:flex;flex-direction:column;gap:.25rem}.proyecto-empleado-selector .form-label{font-weight:600}.solicitud-form .form-actions{display:flex;gap:.5rem}.crear-solicitud{padding-block:1.5rem;max-width:640px}.crear-solicitud .form-label{font-weight:600}.crear-solicitud .form-actions{display:flex;gap:.5rem;margin-top:1rem}.administradores-list .table{margin-bottom:0}.metrics-cards .metric-value{font-size:2rem;font-weight:700;margin-bottom:.25rem}.metrics-cards .metric-label{font-size:.85rem;margin-bottom:0}.proyecto-selector{display:flex;flex-direction:column;max-width:360px}.proyecto-selector .form-label{font-weight:600;margin-bottom:.25rem}.gerencia-dashboard{padding-block:1.5rem}.gerencia-dashboard h1{font-weight:700}.file-upload{border:2px dashed var(--bs-border-color, #ced4da);border-radius:.5rem;padding:2rem;text-align:center;cursor:pointer;transition:border-color .2s,background-color .2s}.file-upload.dragging{border-color:var(--bs-primary, #0d6efd);background-color:#0d6efd0d}.file-upload .upload-text{font-weight:600}.import-results .table{margin-bottom:0}.excel-import{padding-block:1.5rem;max-width:900px}.excel-import .actions{display:flex;gap:.5rem}.historial-drawer{position:fixed;top:0;right:0;height:100vh;width:100%;max-width:420px;background:#fff;box-shadow:-2px 0 8px #00000026;display:flex;flex-direction:column;z-index:1050}.historial-drawer .drawer-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--bs-border-color, #dee2e6)}.historial-drawer .drawer-body{flex:1;overflow-y:auto;padding:1rem}.historial-drawer .approval-chain{list-style:none;padding-left:0}.historial-drawer .approval-chain li{display:flex;align-items:center;gap:.5rem;padding-block:.25rem}.historial-drawer .approval-chain li .orden{font-weight:700}.historial-drawer .drawer-footer{display:flex;gap:.5rem;padding:1rem;border-top:1px solid var(--bs-border-color, #dee2e6)}.historial{padding-block:1.5rem}.historial .form-label{font-weight:600}.companies-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--space-6);margin-bottom:var(--space-8)}.company-card-wrapper{animation:fadeIn .3s ease-in-out}.company-card{background:var(--surface-0);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:12px}.company-card .card-header{border-bottom:none}.company-card .logo-container{flex-shrink:0;width:3rem;height:3rem;background:var(--surface-1);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;overflow:hidden}.company-card .company-logo{width:100%;height:100%;object-fit:contain}.company-card .logo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--primary-soft);color:var(--primary-soft-fg)}.company-card .company-meta{flex:1;display:flex;flex-direction:column;justify-content:center}.company-card .company-name{margin:0;margin-bottom:var(--space-2);font-size:var(--text-md);font-weight:700;line-height:1.3}.company-card .company-location{margin:0;display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--fg-2)}.company-card .company-location svg{flex-shrink:0}.company-card .info-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.company-card .info-item{display:flex;flex-direction:column;gap:var(--space-2)}.company-card .info-item .label{font-size:var(--text-xs);font-weight:600;color:var(--fg-2);text-transform:uppercase;letter-spacing:.5px}.company-card .info-item .value{font-size:var(--text-sm);color:var(--fg);font-weight:500;word-break:break-word}.landing{min-height:100vh;background:var(--surface-0);font-family:var(--font-sans)}.nav{display:flex;align-items:center;justify-content:space-between;padding:20px 48px;max-width:1280px;margin:0 auto}.nav-links{display:flex;gap:28px}.nav-links a{font-size:var(--text-sm);font-weight:500;color:var(--fg-1);text-decoration:none;transition:color var(--duration-fast)}.nav-links a:hover{color:var(--fg)}.nav-actions{display:flex;gap:8px}.hero{padding:80px 48px 100px;max-width:1280px;margin:0 auto;text-align:center}.hero-eyebrow{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--radius-full);background:var(--primary-soft);color:var(--primary-soft-fg);font-size:var(--text-xs);font-weight:600;margin-bottom:24px}h1{font-size:64px;font-weight:800;letter-spacing:-.03em;line-height:1.05;margin:0 0 20px;color:var(--fg)}.grad{background:linear-gradient(90deg,var(--primary),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}.hero>p{font-size:19px;line-height:1.55;color:var(--fg-2);max-width:620px;margin:0 auto 32px}.cta-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.btn-lg{height:48px;font-size:var(--text-md);padding:0 22px;border-radius:var(--radius-lg)}.logos{display:flex;gap:40px;justify-content:center;align-items:center;padding:48px 0 0;opacity:.45;flex-wrap:wrap}.logos span{font-weight:800;letter-spacing:-.02em;font-size:18px;color:var(--fg-2)}.section-lead{text-align:center;color:var(--fg-2);font-size:var(--text-base);max-width:560px;margin:0 auto 48px}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.feat-card{padding:28px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-0);transition:box-shadow var(--duration-base) var(--ease)}.feat-card:hover{box-shadow:var(--shadow-md)}.feat-card h3{font-size:var(--text-lg);font-weight:700;margin:0 0 6px;color:var(--fg)}.feat-card p{color:var(--fg-2);font-size:var(--text-sm);line-height:var(--leading-relaxed);margin:0}.feat-icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;margin-bottom:16px}.cta-band{background:linear-gradient(135deg,var(--primary),var(--accent));border-radius:var(--radius-2xl);padding:56px 48px;text-align:center;max-width:1184px;margin:40px auto}.cta-band h2{color:#fff;font-size:34px;letter-spacing:-.025em;margin-bottom:8px}.cta-band p{color:#fffc;font-size:var(--text-base);margin-bottom:24px}.cta-band-btn{background:#fff;color:var(--primary);border:none;font-weight:600;display:inline-flex;align-items:center;gap:6px;text-decoration:none;cursor:pointer;border-radius:var(--radius-lg)}.cta-band-btn:hover{background:var(--slate-50);color:var(--primary)}.footer{border-top:1px solid var(--border);padding:40px 48px;max-width:1280px;margin:40px auto 0;display:flex;justify-content:space-between;align-items:center;font-size:var(--text-xs);color:var(--fg-2)}.footer-links{display:flex;gap:24px}.footer-links a{color:var(--fg-2);text-decoration:none;font-size:var(--text-xs)}.footer-links a:hover{color:var(--fg)}.app-header{height:64px;background:var(--surface-0);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.header-left,.header-right{display:flex;align-items:center;gap:4px}.header-icon-btn{border:none;background:transparent;color:var(--fg-2);cursor:pointer;padding:8px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background .12s,color .12s}.header-icon-btn:hover{background:var(--surface-hover);color:var(--fg)}.header-sep{width:1px;height:20px;background:var(--border);margin:0 4px}.header-avatar-btn{border:none;background:#4f46e5;cursor:pointer;padding:4px;border-radius:9999px;display:flex;align-items:center}.header-avatar-btn:hover .avatar{opacity:.85}.header-dropdown{position:relative}.dropdown-menu{position:absolute;top:calc(100% + 8px);background:var(--surface-0);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);min-width:180px;padding:4px;z-index:200}.dropdown-menu--end{right:0;left:auto}.dropdown-header{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-2);padding:8px 12px 4px}.dropdown-divider{height:1px;background:var(--border);margin:4px 0}.dropdown-item{display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:13px;font-weight:500;color:var(--fg-1);border-radius:8px;cursor:pointer;text-decoration:none;border:none;background:transparent;width:100%;transition:background .12s,color .12s}.dropdown-item:hover{background:var(--surface-hover);color:var(--fg)}.dropdown-item--active{background:var(--primary-soft);color:var(--primary-soft-fg)}.dropdown-item--danger{color:var(--danger)}.dropdown-item--danger:hover{background:var(--danger-soft);color:var(--danger)}.header-notif-btn{position:relative}.notif-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;border-radius:9999px;background:var(--danger, #ef4444);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1;pointer-events:none}.notif-dropdown{width:360px}.notif-header{display:flex;align-items:center;justify-content:space-between}.notif-mark-all-btn{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--primary);background:none;border:none;cursor:pointer;padding:0;text-transform:none;letter-spacing:normal}.notif-mark-all-btn:hover{text-decoration:underline}.notif-empty{padding:24px 12px;text-align:center;font-size:13px;color:var(--fg-2)}.notif-item{flex-direction:column;align-items:flex-start!important;gap:2px!important}.notif-item-content{display:flex;flex-direction:column;gap:1px;min-width:0}.notif-item-title{font-size:12px;font-weight:600;color:var(--fg)}.notif-item-msg{font-size:11px;color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.notif-view-all{justify-content:center;font-size:12px;font-weight:600;color:var(--primary)}.sidebar{width:256px;height:100%;background:var(--slate-900, #15181f);border-right:1px solid rgba(255,255,255,.07);display:flex;flex-direction:column;transition:width .18s var(--ease, cubic-bezier(.2, 0, 0, 1));overflow:hidden;flex-shrink:0}.sidebar--collapsed{width:64px}.sidebar--collapsed .sidebar-header{justify-content:center;padding:0 12px}.sidebar-header{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid rgba(255,255,255,.07);flex-shrink:0}.sidebar-logo{height:32px;width:auto;object-fit:contain}.sidebar-logo-mark{height:32px;width:32px;object-fit:contain}.sidebar-toggle-btn{border:none;background:transparent;color:#ffffff80;cursor:pointer;padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background .12s,color .12s;flex-shrink:0}.sidebar-toggle-btn:hover{background:#ffffff14;color:#ffffffe6}.sidebar-nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:8px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.sidebar-group-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#ffffff59;padding:12px 12px 4px;white-space:nowrap}.sidebar-group-divider{height:1px;background:#ffffff12;margin:8px}.sidebar-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;font-size:13px;font-weight:500;color:#ffffffa6;cursor:pointer;text-decoration:none;width:100%;border:none;background:transparent;transition:background .12s,color .12s;white-space:nowrap}.sidebar-item:hover{background:#ffffff0f;color:#ffffffe6}.sidebar-item.active,.sidebar-item--open{background:#6366f129;color:#b0b4ff}.sidebar-item--parent{justify-content:flex-start}.sidebar-icon{flex-shrink:0}.sidebar-label{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis}.sidebar-chevron{flex-shrink:0;margin-left:auto;color:#ffffff59;transition:transform .18s var(--ease, cubic-bezier(.2, 0, 0, 1))}.sidebar-badge{margin-left:auto;background:var(--danger, #e11d48);color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:9999px;flex-shrink:0}.sidebar-sub{padding-left:8px;overflow:hidden}.sidebar-sub-item{display:flex;align-items:center;gap:8px;padding:7px 12px 7px 28px;border-radius:8px;font-size:13px;font-weight:400;color:#ffffff8c;text-decoration:none;transition:background .12s,color .12s;white-space:nowrap}.sidebar-sub-item:hover{background:#ffffff0d;color:#ffffffd9}.sidebar-sub-item.active{color:#b0b4ff;font-weight:500}.sidebar-bullet{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.5;flex-shrink:0}.app-shell{display:flex;height:100vh;overflow:hidden;position:relative}.app-main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;transition:none}.app-content{flex:1;overflow-y:auto;padding:24px 32px;background:var(--bg)}.sidebar-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:998;opacity:0;pointer-events:none;transition:opacity .18s cubic-bezier(.2,0,0,1)}.app-shell.sidebar-open .sidebar-overlay{opacity:1;pointer-events:auto}.login-main{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--bg)}.login-wrapper{width:100%;max-width:440px}.login-logo{display:flex;justify-content:center;margin-bottom:32px}.login-logo img{height:52px;width:auto;object-fit:contain}.login-card{background:var(--surface-0);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:40px}.login-header{text-align:center;margin-bottom:32px}.login-header h1{font-size:var(--text-2xl);font-weight:700;color:var(--fg);margin:0 0 8px}.login-header p{font-size:var(--text-sm);color:var(--fg-2);margin:0}.input-wrapper{position:relative}.input-wrapper .input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--fg-3);pointer-events:none}.input-wrapper .form-input{width:100%;height:44px;padding:0 40px;font-family:var(--font-sans);font-size:var(--text-base);color:var(--fg);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);outline:none;box-sizing:border-box;transition:border-color .12s,box-shadow .12s}.input-wrapper .form-input::placeholder{color:var(--fg-3)}.input-wrapper .form-input:focus{border-color:var(--primary);box-shadow:var(--focus-ring);background:var(--surface-0)}.input-wrapper .password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--fg-3);transition:color .12s}.input-wrapper .password-toggle:hover{color:var(--fg-1)}.input-wrapper .password-toggle .toggle-icon{flex-shrink:0}.btn-login{width:100%;height:44px;margin-top:8px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-sans);font-size:var(--text-base);font-weight:600;color:var(--fg-on-primary);background:var(--primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background .15s var(--ease),transform .1s}.btn-login:hover:not(:disabled){background:var(--primary-hover)}.btn-login:active:not(:disabled){background:var(--primary-press);transform:translateY(1px)}.btn-login:disabled{opacity:.5;cursor:not-allowed}.btn-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.demo-divider{display:flex;align-items:center;gap:12px;margin:24px 0 16px}.demo-divider:before,.demo-divider:after{content:"";flex:1;height:1px;background:var(--border)}.demo-divider span{font-size:var(--text-xs);color:var(--fg-3);white-space:nowrap}.demo-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.demo-btn{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:background var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease);text-align:left;width:100%}.demo-btn:hover{background:var(--surface-2);border-color:var(--border-strong)}.demo-btn:active{transform:translateY(1px)}.demo-btn-icon{color:var(--fg-2);flex-shrink:0}.demo-btn-label{font-size:var(--text-sm);font-weight:600;color:var(--fg);line-height:1.2}.demo-btn-desc{font-size:var(--text-xs);color:var(--fg-3);margin-top:2px}.login-footer{text-align:center;margin-top:24px;font-size:var(--text-xs);color:var(--fg-3)}.company-selector-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.company-selector-card{background:var(--bg-card, #fff);border-radius:12px;padding:32px;max-width:420px;width:90%;box-shadow:0 8px 32px #00000026}.company-selector-card h2{margin:0 0 8px;font-size:1.25rem;color:var(--fg-1)}.company-selector-card>p{margin:0 0 20px;font-size:var(--text-sm);color:var(--fg-3)}.empresa-list{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto}.empresa-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;background:transparent;cursor:pointer;transition:background .15s,border-color .15s;text-align:left;width:100%}.empresa-item:hover{background:var(--bg-hover, #f3f4f6);border-color:var(--primary, #3b82f6)}.empresa-logo{width:36px;height:36px;border-radius:6px;object-fit:contain}.empresa-info{display:flex;flex-direction:column}.empresa-name{font-weight:600;font-size:var(--text-sm);color:var(--fg-1)}.empresa-role{font-size:var(--text-xs);color:var(--fg-3)}.btn-cancel{margin-top:16px;width:100%;padding:10px;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;background:transparent;cursor:pointer;font-size:var(--text-sm);color:var(--fg-2)}.btn-cancel:hover{background:var(--bg-hover, #f3f4f6)}.paginator{display:flex;align-items:center;justify-content:space-between;padding:20px;gap:16px;flex-wrap:nowrap}.paginator ngb-pagination{display:flex;flex:1;min-width:0}.paginator ngb-pagination nav{width:100%}.paginator ngb-pagination ul.pagination{list-style:none;padding:0;margin:0;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:4px;align-items:center}.paginator ngb-pagination li.page-item{margin:0;padding:0;display:inline-flex!important;align-items:center}.paginator ngb-pagination li.page-item.disabled a{opacity:.5;cursor:not-allowed}.paginator ngb-pagination li.page-item a.page-link{display:flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 8px;border:1px solid var(--border);border-radius:6px;font-size:14px;color:var(--fg-2);text-decoration:none;background:var(--surface-0);cursor:pointer;transition:all .12s}.paginator ngb-pagination li.page-item a.page-link:hover:not(.disabled){border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.paginator ngb-pagination li.page-item.active a.page-link{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.paginator ngb-pagination li.page-item.disabled{opacity:.5}.paginator ngb-pagination li.page-item.disabled a.page-link{cursor:not-allowed}.paginator-total{font-size:var(--text-sm);color:var(--fg-2);white-space:nowrap}*{margin:0;padding:0}:host.success{border-left-color:#00a24f!important}:host.warning{border-left-color:#ffc900!important}:host.danger{border-left-color:#ef4444!important}:host.info{border-left-color:#00319b!important}:host.hiding{opacity:0!important;transform:translate(100%)!important}.toast-content{display:flex;align-items:flex-start;gap:12px}.toast-icon{flex-shrink:0;margin-top:2px}.icon-success{color:#00a24f}.icon-warning{color:#ffc900}.icon-danger{color:#ef4444}.icon-info{color:#00319b}.toast-body-content{flex:1;min-width:0}.toast-title{font-size:15px;font-weight:700;color:#111827;margin:0 0 4px;line-height:1.4}.toast-message{font-size:14px;color:#6b7280;margin:0;line-height:1.5;word-wrap:break-word}.toast-close-btn{flex-shrink:0;width:20px;height:20px;padding:0;border:none;background:transparent;cursor:pointer;color:#9ca3af;display:flex;align-items:center;justify-content:center;transition:color .2s;margin-top:2px;position:relative;z-index:10}.toast-close-btn:hover{color:#4b5563}.toast-close-btn:focus{outline:none}.toast-close-btn:active{transform:scale(.95)}.card-footer{padding:12px 16px;border-top:1px solid var(--color-border-light, #e5e7eb);display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.card-footer ::ng-deep button{white-space:nowrap}.card-header{padding:16px;border-bottom:1px solid var(--color-border-light, #e5e7eb);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.date-range-picker{position:relative;width:100%}.date-range-picker .input-group{cursor:pointer}.date-range-picker .input-group>.form-control{cursor:pointer;background-color:var(--cui-input-bg)!important;color:var(--cui-input-color)!important;border-color:var(--cui-border-color)!important}.date-range-picker .input-group>.form-control::placeholder{color:var(--cui-input-placeholder-color, #6c757d)!important}.date-range-picker .input-group>.form-control:focus{border-color:var(--cui-component-active-bg, #321fdb)!important;box-shadow:0 0 0 .25rem #321fdb40!important}.date-range-picker .input-group>.input-group-text{background-color:var(--cui-input-bg)!important;color:var(--cui-input-color)!important;border-color:var(--cui-border-color)!important}.date-range-dropdown{position:absolute;top:100%;left:0;z-index:1050;margin-top:.25rem;padding:.75rem;background-color:var(--cui-body-bg, #fff);border:1px solid var(--cui-border-color, #dee2e6);border-radius:.375rem;box-shadow:0 .5rem 1rem #00000026;width:320px;cursor:default}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--cui-border-color, #dee2e6)}.calendar-header .month-year{font-weight:600;color:var(--cui-body-color, #212529);cursor:pointer}.calendar-header .month-year:hover{color:var(--cui-component-active-bg, #321fdb)}.calendar-header .btn-link{color:var(--cui-body-color, #212529);text-decoration:none;padding:.25rem .5rem}.calendar-header .btn-link:hover{color:var(--cui-component-active-bg, #321fdb)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:.5rem}.calendar-weekdays .weekday{text-align:center;font-size:.75rem;font-weight:600;color:var(--cui-secondary-color, #6c757d);padding:.25rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:.25rem;font-size:.875rem;color:var(--cui-body-color, #212529);cursor:pointer;transition:all .15s ease-in-out}.calendar-day:hover:not(:disabled){background-color:var(--cui-tertiary-bg, #f8f9fa)}.calendar-day.other-month{color:var(--cui-tertiary-color, #adb5bd)}.calendar-day.today{font-weight:700;color:var(--cui-component-active-bg, #321fdb);background-color:var(--cui-primary-bg, rgba(50, 31, 219, .1));border-radius:.25rem}.calendar-day.disabled{color:var(--cui-tertiary-color, #adb5bd);cursor:not-allowed;text-decoration:line-through}.calendar-day.selected{background-color:var(--cui-component-active-bg, #321fdb);color:#fff}.calendar-day.in-range{background-color:var(--cui-primary-bg, rgba(50, 31, 219, .15));color:var(--cui-body-color, #212529)}.calendar-day.range-start{background-color:var(--cui-component-active-bg, #321fdb);color:#fff;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.calendar-day.range-end{background-color:var(--cui-component-active-bg, #321fdb);color:#fff;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.calendar-day.same-day{background-color:var(--cui-component-active-bg, #321fdb);color:#fff;border-radius:.25rem}.calendar-actions{display:flex;justify-content:space-between;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--cui-border-color, #dee2e6)}.filter-bar-container{display:flex;align-items:center;flex-wrap:wrap;gap:var(--filter-bar-gap);padding:var(--filter-bar-padding);background:var(--filter-bar-background);border-radius:var(--filter-bar-border-radius);margin-bottom:20px}.filter-bar-container>*{display:flex;align-items:center}.filter-bar-container app-search-input{flex:1;min-width:240px}.filter-card{background:var(--surface-0);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-6)}.filter-form{display:flex;gap:var(--space-4);align-items:flex-end;flex-direction:row}.filter-fields{display:flex;gap:var(--space-3);flex:1;flex-wrap:wrap;align-items:flex-end}.filter-actions{display:flex;gap:var(--space-2);flex-wrap:nowrap;flex-shrink:0}.filter-actions .btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:500;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .12s;white-space:nowrap}.filter-actions .btn svg{width:16px;height:16px;flex-shrink:0}.filter-actions .btn-primary{background:var(--primary);color:#fff}.filter-actions .btn-primary:hover{background:var(--primary-darker, var(--primary));transform:translateY(-1px)}.filter-actions .btn-primary:active{transform:translateY(0)}.filter-actions .btn-secondary{background:var(--surface-2);color:var(--fg-1)}.filter-actions .btn-secondary:hover{background:var(--surface-3, var(--surface-2))}.pill-tabs-group{display:flex;background:var(--pill-bg-inactive);border-radius:var(--pill-border-radius);padding:var(--pill-container-padding);gap:var(--space-1)}.pill-tabs-group .pill-tab{padding:var(--pill-button-padding);border:none;background:transparent;border-radius:var(--pill-border-radius);color:var(--fg-1);font-size:var(--input-font-size);font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.pill-tabs-group .pill-tab:hover{background:#0000000d}.pill-tabs-group .pill-tab.active{background:var(--pill-bg-active);color:var(--pill-fg-active);font-weight:600}.pill-tabs-group .pill-tab.active:hover{background:var(--primary-hover)}.search-input-wrapper{position:relative;display:flex;align-items:center;flex:1;min-width:240px;max-width:100%}.search-input-wrapper .search-icon{position:absolute;left:12px;color:var(--fg-3);pointer-events:none;flex-shrink:0}.search-input-wrapper .search-input{width:100%;padding:var(--input-padding);padding-left:40px;border:1px solid var(--input-border-color);border-radius:var(--input-border-radius);font-size:var(--input-font-size);background:var(--input-bg);color:var(--fg);transition:border-color .15s,box-shadow .15s}.search-input-wrapper .search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.search-input-wrapper .search-input::placeholder{color:var(--fg-3)}.filters{display:flex;gap:var(--space-3);margin-bottom:var(--space-6);flex-wrap:wrap}.filters .search-group{flex:1;min-width:200px}.filters .input-search{width:100%;padding:var(--input-padding);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--input-font-size);background:var(--surface-0);font-family:inherit;outline:none}.filters .input-search:focus{border-color:var(--primary)}.filters .input-search::placeholder{color:var(--fg-3)}.filters .filter-controls{display:flex;gap:var(--space-3)}.filters .filter-controls .select{width:auto;flex:0 0 auto}.contrato-section{margin-bottom:var(--space-10)}.contrato-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-5);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg)}.contrato-card .card-header{display:flex;align-items:center;gap:var(--space-3);flex:1}.contrato-card .card-header svg{flex-shrink:0;color:var(--primary)}.contrato-card .card-header .card-info h3{margin:0;font-size:var(--text-md);font-weight:600}.contrato-card .card-header .card-info .meta{margin:var(--space-1) 0 0;font-size:var(--text-xs);color:var(--fg-2)}.contrato-card .badge{flex-shrink:0}.contrato-card .card-actions{display:flex;gap:var(--space-2)}.boletas-section,.otros-section{margin-bottom:var(--space-10)}.docs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-4)}.doc-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-5);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center}.doc-card .card-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--surface-0);border-radius:var(--radius-md);color:var(--primary)}.doc-card h4{margin:0;font-size:var(--text-base);font-weight:600;line-height:1.4;color:var(--fg)}.doc-card .card-meta{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-xs);color:var(--fg-2);width:100%}.doc-card .card-meta .badge{align-self:center}.evaluacion{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:20px}.evaluacion__header{display:flex;align-items:center;gap:12px;background:var(--surface-0);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px}.evaluacion__header .btn-ghost{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--fg-2);border-radius:var(--radius-md);cursor:pointer;transition:background .12s,color .12s}.evaluacion__header .btn-ghost:hover{background:var(--surface-1);color:var(--fg)}.evaluacion__info{flex:1;min-width:0}.evaluacion__info h6{margin:0;font-size:var(--text-base);font-weight:700;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.evaluacion__info .badge{margin-top:2px}.evaluacion__timer{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-md);background:var(--surface-1);font-size:var(--text-sm);font-weight:600;font-variant-numeric:tabular-nums;color:var(--fg);flex-shrink:0}.evaluacion__timer.timer-warning{background:var(--danger-soft);color:var(--danger)}.evaluacion__progress .progress{height:8px;border-radius:9999px;background:var(--surface-2)}.evaluacion__progress .progress-bar{background:var(--primary);border-radius:9999px;font-size:0;transition:width .24s var(--ease)}.evaluacion__question .card{border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.evaluacion__question .card-title{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-2)}.evaluacion__question .card-text{font-size:var(--text-lg);line-height:1.5;color:var(--fg)}.evaluacion__options{display:flex;flex-direction:column;gap:10px}.option-card{display:flex;align-items:center;gap:14px;padding:14px 18px;border:2px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:all .15s var(--ease);background:var(--surface-0);-webkit-user-select:none;user-select:none}.option-card:hover{border-color:var(--border-strong);background:var(--surface-1)}.option-card.selected{border-color:var(--primary);background:var(--primary-soft)}.option-card span{font-size:var(--text-base);line-height:1.4;color:var(--fg)}.option-radio{width:24px;height:24px;border-radius:50%;border:2px solid var(--border-strong);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .15s}.option-card.selected .option-radio{border-color:var(--primary);background:var(--primary)}.radio-circle{width:10px;height:10px;border-radius:50%;background:transparent;transition:background .15s}.option-card.selected .radio-circle{background:#fff}.evaluacion__actions{display:flex;justify-content:space-between;gap:12px}.evaluacion__actions .btn{min-height:44px;padding:10px 24px;font-weight:600;border-radius:var(--radius-md);display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface-0);color:var(--fg);cursor:pointer;transition:all .12s}.evaluacion__actions .btn:hover:not(:disabled){background:var(--surface-1);border-color:var(--border-strong)}.evaluacion__actions .btn:disabled{opacity:.4;cursor:not-allowed}.evaluacion__actions .btn.btn-primary{background:var(--primary);color:var(--fg-on-primary);border-color:var(--primary)}.evaluacion__actions .btn.btn-primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.evaluacion__error{text-align:center;padding:48px 24px;display:flex;flex-direction:column;align-items:center;gap:12px}.evaluacion__error h5{margin:0;color:var(--fg)}.evaluacion__error p{color:var(--fg-2);font-size:var(--text-sm)}.evaluacion__loading{text-align:center;padding:64px 24px;display:flex;flex-direction:column;align-items:center;gap:16px}.evaluacion__loading p{color:var(--fg-2);font-size:var(--text-sm)}@media(max-width:768px){.evaluacion{gap:14px}.evaluacion__header{padding:12px 14px;gap:10px;flex-wrap:wrap}.evaluacion__info h6{font-size:var(--text-sm)}.evaluacion__timer{font-size:var(--text-xs);padding:4px 10px}.evaluacion__question .card-text{font-size:var(--text-base)}.option-card{padding:12px 14px;gap:12px}.option-card span{font-size:var(--text-sm)}.evaluacion__actions{flex-direction:column}.evaluacion__actions .btn{width:100%;justify-content:center}}.documentos-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.documento-item{padding:1rem;border-radius:.5rem;border:1px solid var(--slate-200);background:var(--slate-50)}.documento-item.documento-obligatorio{border-left:4px solid var(--red-500);background:#fff5f5}.documento-item.documento-obligatorio .lock-icon{color:var(--red-500)}.documento-item.documento-opcional{border-left:4px solid var(--slate-300);background:var(--slate-50)}.documento-item.documento-opcional .paperclip-icon{color:var(--slate-600)}.documento-info{display:flex;gap:.75rem;align-items:flex-start}.documento-info svg{margin-top:2px;flex-shrink:0}.documento-titulo{font-weight:500;color:var(--slate-900);font-size:.95rem}.documento-desc{font-size:.85rem;color:var(--slate-600);margin-top:.25rem;line-height:1.4}.formato-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.formato-actions .btn{flex-shrink:0}.formato-archivo-subido{font-size:.85rem;color:var(--slate-600);margin-top:.25rem;display:flex;align-items:center;gap:.25rem}.cert-wrapper{display:grid;place-items:center}.cert-card{background:linear-gradient(135deg,var(--surface-0) 0%,var(--violet-50) 100%);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-8);max-width:720px;text-align:center;position:relative;overflow:hidden;width:100%}.cert-card:before{content:"";position:absolute;top:-40px;right:-40px;width:200px;height:200px;background:radial-gradient(circle,var(--violet-200),transparent 60%)}.cert-card:after{content:"";position:absolute;bottom:-40px;left:-40px;width:160px;height:160px;background:radial-gradient(circle,var(--indigo-200),transparent 60%)}.cert-card>*{position:relative;z-index:1}.cert-eyebrow{font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-soft-fg);font-weight:700;margin-bottom:var(--space-2)}.cert-name{font-size:var(--text-5xl);font-weight:800;letter-spacing:var(--tracking-tight);margin:var(--space-4) 0 var(--space-2)}.cert-course{font-size:var(--text-2xl);font-weight:700;margin:var(--space-2) 0 var(--space-6)}.cert-details{display:flex;justify-content:center;gap:var(--space-12);padding-top:var(--space-5);border-top:1px solid var(--border)}.cert-label{font-size:var(--text-xs);color:var(--fg-2);margin-bottom:var(--space-1)}.cert-value{font-size:var(--input-font-size);font-weight:600}.cert-value.num{font-variant-numeric:tabular-nums}.cert-actions{margin-top:var(--space-6);display:flex;gap:var(--space-2);justify-content:center}.other-certificates-section{max-width:720px;margin:var(--space-6) auto 0}.other-cert-card{background:var(--surface-0);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-2)}.other-cert-card:last-child{margin-bottom:0}.cert-card-content{display:flex;align-items:center;gap:var(--space-3)}.cert-info{flex:1;min-width:0}.cert-course-title{font-weight:600}.cert-meta{font-size:var(--text-xs);color:var(--fg-2);margin-top:var(--space-1)}.bg-neutral{background:var(--surface-2);color:var(--fg-2)}.pct{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--fg-2)}.progress{height:6px;background:var(--surface-2);border-radius:var(--radius-full);overflow:hidden}.progress>div{height:100%;background:linear-gradient(90deg,var(--indigo-500),var(--violet-500));border-radius:var(--radius-full);transition:width .24s ease}.course-completed{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:var(--text-sm);font-weight:600;color:var(--success)}.result-circle{width:160px;height:160px;border-radius:50%;margin:0 auto 24px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative}.result-circle.pass{background:conic-gradient(var(--success) 85%,var(--success-soft) 0)}.result-circle.fail{background:conic-gradient(var(--danger) 55%,var(--danger-soft) 0)}.result-inner{width:130px;height:130px;border-radius:50%;background:var(--surface-0);display:flex;align-items:center;justify-content:center;flex-direction:column}.kpi-sub{font-size:var(--text-xl);font-weight:600;color:var(--fg-2)}.grow{flex:1;min-width:0}.course-title{font-size:var(--input-font-size);margin:0}.progress-bar{height:6px;background:var(--surface-2);border-radius:var(--radius-full);overflow:hidden;margin-top:var(--space-2)}.courses-list,.requests-list{display:flex;flex-direction:column;gap:var(--space-3)}.tabs-row{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.tab-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:600;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface-0);color:var(--fg-2);cursor:pointer;transition:all .12s ease}.tab-btn:hover{border-color:var(--primary);color:var(--primary)}.tab-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700;border-radius:var(--radius-full);background:#00000014;color:inherit}.tab-btn.active .tab-count{background:#ffffff40}.request-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--border)}.request-item:last-child{border-bottom:none}.tabs{display:flex;border-bottom:1px solid var(--border)}.tab{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:600;color:var(--fg-2);cursor:pointer;border-bottom:2px solid transparent;transition:all .12s ease}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.tab:hover:not(.active){color:var(--fg)}.header-content{display:flex;flex-direction:column;gap:var(--space-1)}.back-link{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--fg-2);font-size:var(--text-xs);text-decoration:none;cursor:pointer}.back-link:hover{color:var(--fg)}.player-grid{display:grid;grid-template-columns:1fr 320px;gap:var(--space-4)}.video-player{display:flex;flex-direction:column}.video-frame{background:#000;aspect-ratio:16/9;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;color:#ffffff80;position:relative;overflow:hidden}.video-frame:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 40%,rgba(124,58,237,.3),transparent 60%)}.video-frame svg{position:relative;z-index:1}.video-info{padding:var(--space-4) 0}.video-title{margin:var(--space-1) 0 var(--space-2);font-size:var(--text-xl);font-weight:700}.video-desc{font-size:var(--text-xs)}.nav-buttons{display:flex;justify-content:space-between;align-items:center;padding-top:var(--space-3);border-top:1px solid var(--border);gap:var(--space-2)}.video-list{background:var(--surface-0);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-3)}.list-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-1) var(--space-1) var(--space-3)}.v-num{width:var(--space-6);height:var(--space-6);border-radius:50%;background:var(--surface-2);color:var(--fg-2);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}.v-title{font-size:var(--text-xs);font-weight:600;line-height:1.3}.v-time{font-size:11px;color:var(--fg-2);margin-top:var(--space-1)}.curso-start-prompt{text-align:center;padding:3rem 1rem}.curso-start-desc{margin-block-end:1.5rem}.curso-start-error{margin-block-end:1rem;padding:10px 14px;border-radius:8px;font-size:13px}.etapa-progress-track{height:4px;margin-block-start:4px}.recurso-check-icon{margin-inline-start:auto;color:var(--success)}.mis-curso-estado{margin-inline-start:auto}.curso-card-btn{margin-top:8px}.curso-card-btn-full{width:100%}.curso-completed-icon{color:var(--success);flex-shrink:0}.emp-cert-section{margin-top:24px}.emp-cert-heading{margin:0 0 12px;font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px}.emp-cert-icon{color:var(--warning);flex-shrink:0}.emp-cert-count{font-weight:400;font-size:13px;color:var(--muted)}.emp-cert-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}.emp-cert-card{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--border-color, var(--border));border-radius:12px;background:var(--accent-soft)}.emp-cert-info{min-width:0}.emp-cert-title{font-size:13px;font-weight:600;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.emp-cert-meta{font-size:11px;color:var(--muted)}.vaca-empleado-cargo{font-size:11px}.cert-subtext{font-size:14px}@media(max-width:1024px){.info-grid{grid-template-columns:1fr 1fr}}@media(max-width:768px){.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:999;transform:translate(-100%);transition:transform .2s var(--ease);box-shadow:4px 0 24px #0003}.sidebar--collapsed{width:256px;transform:translate(-100%)}.app-shell.sidebar-open .sidebar{transform:translate(0)}.sidebar-overlay{display:block}.app-shell.sidebar-open .sidebar-overlay{opacity:1;pointer-events:auto}.sidebar--collapsed .sidebar-group-label,.sidebar--collapsed .sidebar-group-divider{display:flex}.sidebar--collapsed .sidebar-item .sidebar-label,.sidebar--collapsed .sidebar-item .sidebar-chevron,.sidebar--collapsed .sidebar-item .sidebar-badge{display:inline}.sidebar--collapsed .sidebar-sub{display:block}.app-content{padding:12px 16px}.page-header{flex-wrap:wrap;gap:12px}.page-header-actions{flex-wrap:wrap}.header-actions{flex-wrap:wrap;gap:6px}.flex-between{flex-wrap:wrap;gap:8px}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:10px}.kpi-card{padding:14px}.kpi-value{font-size:var(--text-2xl)}.content-grid,.courses-grid{grid-template-columns:1fr}.table-container,.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table{font-size:13px}table th,table td{padding:8px 6px;white-space:nowrap}.form-row,.form-grid,.vacaciones-grid,.licencias-grid,.date-grid,.form-card .row{grid-template-columns:1fr}.filter-bar{flex-direction:column;gap:8px}.filter-bar .filter-group{width:100%}.form-actions{flex-direction:column;gap:8px}.form-actions .btn{width:100%}.card-pad{padding:14px}.card-head{flex-direction:column;align-items:flex-start;gap:8px}.btn,button.header-icon-btn,button.header-avatar-btn,.dropdown-item,.sidebar-item,.sidebar-sub-item,.demo-btn{min-height:44px}.header-icon-btn,.header-avatar-btn{width:44px;height:44px}.btn{padding:10px 16px;font-size:14px}.drawer-panel{width:100%}.modal{max-width:100%;margin:0 8px}.modal-container{padding:8px}.modal-container .modal{margin:0}.paginator{flex-direction:column;gap:12px}.paginator .page-of{text-align:center}.info-grid,.profile-layout,.profile-fields{grid-template-columns:1fr}.emp-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap}.danger-row{flex-wrap:wrap}.modal-content{flex-direction:column;align-items:stretch}.empleados-section,.cursos-section{flex:1 1 auto;width:100%}.divider{width:100%;height:1px;min-height:0}.curso-item{flex-wrap:wrap}.detail-row{flex-direction:column;gap:2px}.detail-label{min-width:unset}.course-card{padding:14px}.course-card h4{font-size:var(--text-base)}.course-foot{flex-direction:column;gap:8px}.course-foot .btn,.course-actions-more{width:100%}.course-actions-more{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.campana-detail-container{padding:.75rem;gap:1rem}.campaign-header{flex-direction:column;gap:12px}.campaign-header .campaign-stats{width:100%;justify-content:space-around}.section{padding:.75rem}.certificadores-grid{grid-template-columns:1fr}.empleados-table{font-size:.8rem}.empleados-table thead th,.empleados-table tbody td{padding:.5rem .4rem}.player-grid,.ver-curso-grid{grid-template-columns:1fr}.video-title{font-size:var(--text-lg)}.nav-buttons{flex-wrap:wrap;gap:8px}.courses-summary{grid-template-columns:repeat(2,1fr)}.course-card-row{flex-wrap:wrap;padding:14px 16px;gap:12px}.course-card-row .progress-block{width:100%}.login-card{padding:24px 20px}.login-main{padding:12px}.login-wrapper{max-width:100%}.login-header h1{font-size:var(--text-xl)}.demo-grid{grid-template-columns:1fr;gap:8px}.demo-btn{padding:10px 12px}.login-logo img{height:40px}.landing .nav{padding:14px 16px}.landing .nav-links{display:none}.landing .hero{padding:40px 16px 60px}.landing .hero h1{font-size:32px}.landing .hero>p{font-size:15px;padding:0 8px}.landing .btn-lg{height:44px;font-size:var(--text-sm);padding:0 16px}.landing .cta-row{flex-direction:column;align-items:stretch;padding:0 8px}.landing .cta-row .btn{width:100%;justify-content:center}.landing .logos{gap:24px;padding:36px 0 0}.landing .logos span{font-size:14px}.landing .features-grid{grid-template-columns:1fr;gap:14px}.landing .feat-card{padding:20px}.landing .section-lead{padding:0 16px;font-size:var(--text-sm);margin-bottom:28px}.landing .cta-band{margin:24px 16px;padding:36px 24px;border-radius:var(--radius-xl)}.landing .cta-band h2{font-size:24px}.landing .cta-band p{font-size:var(--text-sm)}.landing .cta-band-btn{width:100%;justify-content:center;padding:12px 20px}.landing .footer{flex-direction:column;gap:16px;text-align:center;padding:24px 16px}.landing .footer-links{gap:16px;flex-wrap:wrap;justify-content:center}.avatar{width:32px;height:32px;font-size:11px}.avatar.avatar-sm{width:26px;height:26px;font-size:9px}input.form-input,select.form-select,.select-input,.search-wrapper input{height:40px;font-size:14px}}@media(max-width:480px){.kpi-grid{grid-template-columns:1fr}.kpi-card{padding:12px}.courses-grid,.courses-summary{grid-template-columns:1fr}.landing .hero h1{font-size:26px}.login-card{padding:20px 16px;border-radius:var(--radius-lg)}.form-row{grid-template-columns:1fr}.header-actions,.page-header-actions{flex-direction:column;align-items:stretch}.header-actions .btn,.page-header-actions .btn{width:100%;justify-content:center}}
