:root{--color-primary: #2563eb;--color-primary-dark: #1d4ed8;--color-accent: #7c3aed;--sidebar-bg: #0f172a;--sidebar-text: #e2e8f0;--topbar-bg: #ffffff;--topbar-text: #1e293b;--topbar-border: #e2e8f0;--shadow-xs: 0 1px 2px rgba(15,23,42,.06);--shadow-sm: 0 1px 3px rgba(15,23,42,.08), 0 1px 2px rgba(15,23,42,.06);--shadow-md: 0 4px 6px rgba(15,23,42,.07), 0 2px 4px rgba(15,23,42,.06);--shadow-lg: 0 10px 15px rgba(15,23,42,.08), 0 4px 6px rgba(15,23,42,.05);--shadow-xl: 0 20px 25px rgba(15,23,42,.1), 0 8px 10px rgba(15,23,42,.06);--shadow-2xl: 0 25px 50px rgba(15,23,42,.18);--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.25rem;--radius-2xl: 1.5rem;--transition-fast: .12s cubic-bezier(.4,0,.2,1);--transition-normal: .2s cubic-bezier(.4,0,.2,1);--transition-slow: .35s cubic-bezier(.4,0,.2,1);--content-bg: #f8fafc}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--content-bg);color:#1e293b;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.auth-split{min-height:100vh;display:flex}.auth-brand-panel{flex:0 0 420px;position:relative;overflow:hidden;background:linear-gradient(145deg,var(--color-primary),var(--color-accent));display:flex;align-items:center;justify-content:center}.auth-brand-panel:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.12) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(0,0,0,.15) 0%,transparent 50%)}.auth-brand-panel:after{content:"";position:absolute;width:400px;height:400px;border-radius:50%;border:1px solid rgba(255,255,255,.1);top:-100px;right:-120px}.auth-brand-content{position:relative;z-index:1;padding:3rem 2.5rem;color:#fff}.auth-brand-logo{width:64px;height:64px;background:#ffffff26;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;font-size:2rem;margin-bottom:2rem}.auth-brand-title{font-size:2rem;font-weight:800;margin:0 0 .75rem;line-height:1.15;letter-spacing:-.5px}.auth-brand-sub{font-size:.975rem;opacity:.8;margin:0 0 2.5rem;line-height:1.6}.auth-brand-features{display:flex;flex-direction:column;gap:.875rem}.auth-brand-feature{display:flex;align-items:center;gap:.875rem;font-size:.9rem;opacity:.9}.auth-feature-icon{width:36px;height:36px;flex-shrink:0;background:#ffffff26;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1rem}.auth-form-panel{flex:1;display:flex;align-items:center;justify-content:center;padding:2.5rem 2rem;background:#fff;overflow-y:auto}.auth-form-inner{width:100%;max-width:420px}.auth-form-header{margin-bottom:2.25rem}.auth-form-eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:600;color:var(--color-primary);text-transform:uppercase;letter-spacing:.8px;margin-bottom:.75rem}.auth-form-eyebrow i{font-size:.9rem}.auth-form-title{font-size:1.75rem;font-weight:800;margin:0 0 .4rem;letter-spacing:-.4px;color:#0f172a}.auth-form-subtitle{color:#64748b;font-size:.9rem;margin:0}.input-icon-wrap{position:relative}.input-icon-wrap .input-icon{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);color:#94a3b8;font-size:1rem;pointer-events:none;z-index:2;transition:color var(--transition-fast)}.input-icon-wrap .form-control{padding-left:2.625rem}.input-icon-wrap:focus-within .input-icon{color:var(--color-primary)}.auth-submit{height:46px;font-size:.9rem;font-weight:600;letter-spacing:.2px;border-radius:var(--radius-md);transition:all var(--transition-normal);display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.auth-submit:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 8px 20px #2563eb59}.auth-submit:active{transform:translateY(0)}.auth-divider{text-align:center;color:#94a3b8;font-size:.82rem;margin:1.25rem 0}.auth-link-row{text-align:center;font-size:.875rem;color:#64748b}.auth-link-row a{color:var(--color-primary);text-decoration:none;font-weight:500}.auth-link-row a:hover{text-decoration:underline}.auth-demo-hint{background:#f8fafc;border:1px solid #e2e8f0;border-radius:var(--radius-md);padding:.6rem .875rem;font-size:.8rem;color:#64748b;margin-bottom:1.25rem}.auth-demo-hint code{color:var(--color-primary);font-weight:600;background:none}@media (max-width: 768px){.auth-split{flex-direction:column}.auth-brand-panel{flex:0 0 auto;min-height:240px}.auth-brand-content{padding:2rem 1.5rem}.auth-brand-title{font-size:1.5rem}.auth-brand-features{display:none}.auth-form-panel{padding:2rem 1.25rem}}.form-label{font-size:.82rem;font-weight:600;color:#374151;margin-bottom:.375rem;letter-spacing:.1px}.form-control,.form-select{height:42px;border-radius:var(--radius-sm);border:1.5px solid #e2e8f0;font-size:.875rem;color:#1e293b;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);background-color:#fff}textarea.form-control{height:auto}.form-control::placeholder{color:#b0bec5}.form-control:hover,.form-select:hover{border-color:#cbd5e1}.form-control:focus,.form-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1f;background-color:#fff}.form-control.is-invalid{border-color:#ef4444}.form-control.is-invalid:focus{box-shadow:0 0 0 3px #ef44441f}.invalid-feedback{font-size:.78rem}.btn{font-weight:500;border-radius:var(--radius-sm);font-size:.875rem;letter-spacing:.1px;transition:all var(--transition-normal)}.btn-sm{font-size:.815rem}.btn-primary{--bs-btn-bg: var(--color-primary);--bs-btn-border-color: var(--color-primary);--bs-btn-hover-bg: var(--color-primary-dark);--bs-btn-hover-border-color: var(--color-primary-dark);--bs-btn-active-bg: var(--color-primary-dark);box-shadow:0 2px 6px #2563eb4d}.btn-primary:hover{box-shadow:0 4px 12px #2563eb66;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0);box-shadow:0 2px 4px #2563eb40}.btn-outline-secondary{--bs-btn-color: #64748b;--bs-btn-border-color: #e2e8f0;--bs-btn-hover-bg: #f8fafc;--bs-btn-hover-border-color: #cbd5e1;--bs-btn-hover-color: #1e293b}.btn-danger{box-shadow:0 2px 6px #dc262633}.btn-danger:hover{box-shadow:0 4px 12px #dc26264d;transform:translateY(-1px)}.inner-title{font-size:1.25rem;font-weight:700;margin:0 0 1.5rem;color:#0f172a;letter-spacing:-.2px}.inner-sub{color:#64748b;margin:-.25rem 0 1.5rem;font-size:.875rem}.card-panel{background:#fff;border-radius:var(--radius-xl);padding:1.75rem;box-shadow:var(--shadow-sm);border:1px solid rgba(226,232,240,.8)}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem}.page-header h3{margin:0;font-size:1.2rem;font-weight:700;color:#0f172a;letter-spacing:-.2px}.page-header h3 i{opacity:.55}.filter-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.filter-bar-left{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.filter-bar-right{display:flex;align-items:center;gap:.75rem}.search-wrap{position:relative;width:300px}.search-wrap .search-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:#94a3b8;font-size:.9rem;pointer-events:none;z-index:1;transition:color var(--transition-fast)}.search-wrap:focus-within .search-icon{color:var(--color-primary)}.search-wrap .form-control{padding-left:2.25rem}@media (max-width: 576px){.search-wrap{width:100%}}.table-card{background:#fff;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid rgba(226,232,240,.8)}.table-responsive{overflow-x:auto}.table{margin:0;font-size:.855rem}.table thead th{background:#f8fafc;font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.6px;color:#64748b;border-bottom:1px solid #f1f5f9;padding:.875rem 1.125rem;white-space:nowrap}.table tbody td{padding:.8rem 1.125rem;vertical-align:middle;border-bottom:1px solid #f8fafc;color:#334155;transition:background var(--transition-fast)}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:#f8fafc}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:color var(--transition-fast)}th.sortable:hover{color:var(--color-primary)}th.sortable .sort-icon{font-size:.65rem;opacity:.3;margin-left:.3rem;vertical-align:middle;transition:opacity var(--transition-fast)}th.sortable.sort-asc .sort-icon,th.sortable.sort-desc .sort-icon{opacity:1;color:var(--color-primary)}.badge-status{display:inline-flex;align-items:center;padding:.2rem .65rem;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.2px}.badge-activo{background:#dcfce7;color:#166534}.badge-inactivo{background:#fee2e2;color:#991b1b}.badge-finalizada{background:#dcfce7;color:#15803d}.badge-atendida{background:#fef9c3;color:#854d0e}.badge-por-confirmar{background:#ede9fe;color:#6d28d9}.badge-bloq{background:#fef9c3;color:#854d0e}.actions-cell{white-space:nowrap;width:1%}.actions-group{display:flex;align-items:center;gap:.3rem;flex-wrap:nowrap}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-sm);border:none;cursor:pointer;font-size:.9rem;flex-shrink:0;transition:all var(--transition-fast)}.btn-icon-edit{background:#eff6ff;color:#2563eb}.btn-icon-edit:hover{background:#dbeafe;transform:translateY(-1px)}.btn-icon-delete{background:#fff1f2;color:#dc2626}.btn-icon-delete:hover{background:#fee2e2;transform:translateY(-1px)}.pagination-bar{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.25rem;border-top:1px solid #f1f5f9;flex-wrap:wrap;gap:.5rem}.pagination-info{color:#94a3b8;font-size:.78rem}.pagination-controls{display:flex;align-items:center;gap:.25rem}.page-btn{min-width:32px;height:32px;border:1.5px solid #e2e8f0;border-radius:.4rem;background:#fff;color:#64748b;font-size:.78rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all var(--transition-fast);padding:0 .5rem;line-height:1;font-weight:500}.page-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background:#eff6ff}.page-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600;box-shadow:0 2px 8px #2563eb59}.page-btn:disabled{opacity:.3;cursor:not-allowed}.page-ellipsis{color:#cbd5e1;font-size:.8rem;padding:0 .2rem}.page-size-select{font-size:.78rem;height:36px!important;padding:.15rem .75rem .15rem .5rem;min-width:110px;border-radius:.5rem;border:1.5px solid #e2e8f0;background-color:#f8fafc;color:#475569;font-weight:500}.page-size-select:focus{border-color:var(--color-primary, #2563eb);box-shadow:0 0 0 3px #2563eb1a;outline:none}.page-size-label{font-size:.78rem;color:#94a3b8;font-weight:500;white-space:nowrap}.page-size-wrap{display:flex;align-items:center;gap:.5rem}.empty-state{text-align:center;padding:3.5rem 1.5rem;color:#94a3b8}.empty-state i{font-size:2.75rem;margin-bottom:.875rem;display:block;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.modal-overlay{position:fixed;inset:0;background:#0f172a80;backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;animation:overlayIn var(--transition-normal)}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.modal-box{background:#fff;border-radius:var(--radius-2xl);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-2xl);animation:modalIn var(--transition-normal)}@keyframes modalIn{0%{opacity:0;transform:scale(.96) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.375rem 1.625rem;border-bottom:1px solid #f1f5f9}.modal-header h5{margin:0;font-size:1rem;font-weight:700;color:#0f172a}.modal-close{background:#f1f5f9;border:none;border-radius:var(--radius-sm);width:30px;height:30px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#64748b;font-size:1rem;transition:all var(--transition-fast)}.modal-close:hover{background:#e2e8f0;color:#1e293b}.modal-body{padding:1.375rem 1.625rem}.modal-footer{padding:1rem 1.625rem;border-top:1px solid #f1f5f9;display:flex;justify-content:flex-end;gap:.625rem}.confirm-text{color:#475569;font-size:.9rem;margin:0}.drawer-overlay{position:fixed;inset:0;background:#00000061;z-index:1040;animation:drawerFadeIn .2s ease}@keyframes drawerFadeIn{0%{opacity:0}to{opacity:1}}.drawer-panel{position:fixed;top:0;right:0;width:min(520px,100vw);height:100%;background:#fff;z-index:1050;display:flex;flex-direction:column;box-shadow:-6px 0 32px #0f172a29;transform:translate(100%);transition:transform .28s cubic-bezier(.4,0,.2,1)}.drawer-panel.drawer-open{transform:translate(0)}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid #e5e7eb;flex-shrink:0}.drawer-header h5{margin:0;font-size:1.05rem;font-weight:700;color:#0f172a}.drawer-body{flex:1;overflow-y:auto;padding:1.75rem 1.5rem;scrollbar-width:thin;scrollbar-color:#e2e8f0 transparent}.drawer-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1.125rem 1.5rem;border-top:1px solid #e5e7eb;background:#f9fafb;flex-shrink:0}app-search-select{display:block}
