:root{--primary: #005A9C;--primary-dark: #003D6B;--primary-light: #e0f2fe;--focus-ring: #005A9C;--border: #e2e8f0;--bg-app: #F4F7FA;--text-main: #1e293b;--text-secondary: #64748b;--text-muted-strong: #475569;--success: #16a34a;--success-contrast: #14532d;--danger: #ef4444;--danger-contrast: #7f1d1d;--white: #ffffff}body{margin:0;padding:0;background-color:var(--bg-app);color:var(--text-main);font-family:Inter,system-ui,-apple-system,sans-serif;overflow-x:hidden}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}html,body{width:100%;min-height:100%;overflow-x:hidden}*{box-sizing:border-box}.viewport-safe{min-height:100dvh}.scroll-safe{overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-body{max-height:70vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.table-container{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;background:#fff;border-radius:12px;border:1px solid var(--border);margin-bottom:20px}.table-container::-webkit-scrollbar{height:6px}.table-container::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}.table-container table{min-width:680px;width:100%}@media(max-width:640px){.table-container table{min-width:560px}}@media(max-width:768px){.p-mobile-0{padding:0!important}}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}@media(max-width:640px){.admin-header{flex-direction:column;align-items:flex-start;gap:16px}.admin-header .btn-new{width:100%;text-align:center}}@media(max-width:768px){button,a.btn,.action-pill{min-height:44px;display:inline-flex;align-items:center;justify-content:center}}.responsive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}@media(max-width:480px){.responsive-grid{grid-template-columns:1fr}}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2364748b'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:1.5em;padding-right:2.5rem!important;cursor:pointer}select:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-light)}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-size:.875rem;font-weight:600;color:var(--text-secondary);margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem 1rem;border:1px solid var(--border);border-radius:8px;background:#fff;font-family:inherit;font-size:1rem;color:var(--text-main);transition:all .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary)}.error-text{display:block;margin-top:.35rem;font-size:.8rem;font-weight:600;color:var(--danger);line-height:1.25}.btn-base,.btn-primary,.btn-secondary,.btn-cancel,.btn-danger,.btn-icon{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:8px;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .2s ease;border:1px solid transparent;text-decoration:none;line-height:1.4}.btn-base:disabled,.btn-primary:disabled,.btn-secondary:disabled,.btn-cancel:disabled,.btn-danger:disabled,.btn-icon:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--white);border-color:var(--primary)}.btn-primary:hover:not(:disabled){background:var(--primary-dark);border-color:var(--primary-dark)}.btn-primary:focus-visible{outline:3px solid var(--primary-light);outline-offset:2px}.btn-secondary{background:var(--white);color:var(--text-secondary);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1;color:var(--text-main)}.btn-cancel{background:#f1f5f9;color:var(--text-secondary);border-color:transparent}.btn-cancel:hover:not(:disabled){background:#e2e8f0;color:var(--text-main)}.btn-danger{background:var(--danger);color:var(--white);border-color:var(--danger)}.btn-danger:hover:not(:disabled){background:#dc2626;border-color:#dc2626}.btn-icon{width:36px;height:36px;padding:0;border-radius:8px;background:var(--white);border-color:var(--border);color:var(--text-secondary)}.btn-icon:hover:not(:disabled){border-color:var(--primary);background:var(--primary-light);color:var(--primary)}.btn-icon.edit:hover:not(:disabled){border-color:var(--primary);background:var(--primary-light);color:var(--primary)}.btn-icon.delete:hover:not(:disabled){border-color:var(--danger);background:#fee2e2;color:var(--danger)}.btn-icon.stock:hover:not(:disabled){border-color:var(--success);background:#dcfce7;color:var(--success)}.btn-icon-sm{width:30px;height:30px;border-radius:7px;font-size:.9rem}.btn-close{background:#f1f5f9;border:none;width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all .2s;padding:0;font-size:1.2rem;line-height:1}.btn-close:hover{background:#e2e8f0;color:var(--text-main)}.btn-sm{padding:6px 12px;font-size:.85rem}.btn-lg{padding:14px 28px;font-size:1.1rem}.btn-block{width:100%}.badge{display:inline-flex;padding:4px 12px;border-radius:9999px;font-size:.75rem;font-weight:700;text-transform:uppercase;line-height:1.4}.badge.ACTIVE,.badge.ACTIVO,.badge.COMPLETADA,.badge.LIBRE,.badge.success{background:#dcfce7;color:var(--success-contrast)}.badge.INACTIVE,.badge.INACTIVO,.badge.CANCELADA,.badge.OCUPADA,.badge.danger{background:#fee2e2;color:var(--danger-contrast)}.badge.PENDIENTE,.badge.warning{background:#fef3c7;color:#78350f}.badge.info{background:var(--primary-light);color:var(--primary-dark)}.btn-loading{position:relative;color:transparent!important;pointer-events:none}.btn-loading:after{content:"";position:absolute;width:16px;height:16px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:btn-spin .6s linear infinite}.btn-loading.btn-primary:after{border-top-color:var(--white)}@keyframes btn-spin{to{transform:rotate(360deg)}}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.actions-centered{display:flex;justify-content:center;gap:12px}
