@charset "UTF-8";:root{--brand-500: #4f46e5;--brand-600: #4338ca;--brand-400: #6366f1;--accent-500: #06b6d4;--color-bg: #f5f7fb;--color-surface: #ffffff;--color-surface-2: #f6f8fc;--color-surface-3: #eef2f8;--color-text: #0f172a;--color-text-muted: #64748b;--color-border: #e7ebf2;--color-border-strong: #d3dae6;--color-primary: var(--brand-500);--color-primary-dark: var(--brand-600);--color-accent: var(--accent-500);--color-danger: #dc2626;--color-success: #16a34a;--color-warning: #d97706;--pos-bg: #dcfce7;--pos-fg: #166534;--warn-bg: #fef3c7;--warn-fg: #92400e;--neg-bg: #fee2e2;--neg-fg: #991b1b;--info-bg: #dbeafe;--info-fg: #1e40af;--neutral-bg: #f1f5f9;--neutral-fg: #475569;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 6px 20px rgba(15, 23, 42, .08);--shadow-lg: 0 18px 44px rgba(15, 23, 42, .14);--ring: 0 0 0 3px rgba(79, 70, 229, .18);--skeleton-base: #e9edf4;--skeleton-shine: #f4f7fb;color-scheme:light}[data-theme=dark]{--color-bg: #0b1020;--color-surface: #141a2e;--color-surface-2: #1b2236;--color-surface-3: #232c44;--color-text: #e8edf7;--color-text-muted: #94a3b8;--color-border: #273049;--color-border-strong: #36415e;--color-primary: #818cf8;--color-primary-dark: #a5b4fc;--color-accent: #22d3ee;--color-danger: #f87171;--color-success: #34d399;--color-warning: #fbbf24;--pos-bg: rgba(52, 211, 153, .15);--pos-fg: #6ee7b7;--warn-bg: rgba(251, 191, 36, .15);--warn-fg: #fcd34d;--neg-bg: rgba(248, 113, 113, .15);--neg-fg: #fca5a5;--info-bg: rgba(96, 165, 250, .15);--info-fg: #93c5fd;--neutral-bg: rgba(148, 163, 184, .14);--neutral-fg: #cbd5e1;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 6px 20px rgba(0, 0, 0, .45);--shadow-lg: 0 18px 44px rgba(0, 0, 0, .55);--ring: 0 0 0 3px rgba(129, 140, 248, .28);--skeleton-base: #1d2438;--skeleton-shine: #283150;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--color-bg);color:var(--color-text);font-size:14px;line-height:1.5;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color .22s ease,color .22s ease}h1,h2,h3,h4{letter-spacing:-.01em;line-height:1.25}a{color:var(--color-primary);text-decoration:none;transition:color .12s ease}a:hover{color:var(--color-primary-dark)}button{font-family:inherit;cursor:pointer;border-radius:var(--radius-sm);border:1px solid transparent;padding:.55rem 1.05rem;font-weight:600;font-size:.9rem;line-height:1;transition:background .14s ease,border-color .14s ease,transform 60ms ease,box-shadow .14s ease;min-height:40px}button:active{transform:translateY(1px)}button:disabled{opacity:.55;cursor:default;transform:none}button.primary{background:linear-gradient(135deg,var(--brand-500),var(--brand-600));color:#fff;box-shadow:0 4px 12px #4f46e540}button.primary:hover:not(:disabled){box-shadow:0 6px 18px #4f46e55c}button.ghost{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}button.ghost:hover:not(:disabled){background:var(--color-surface-2);border-color:var(--color-border-strong)}button.ghost.danger{color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 35%,transparent)}button.ghost.danger:hover:not(:disabled){background:var(--neg-bg)}.btn-sm{min-height:32px;padding:.3rem .7rem;font-size:.8rem}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--radius-sm)}label{font-weight:500}input,select,textarea{font-family:inherit;font-size:inherit;padding:.6rem .8rem;border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);background:var(--color-surface);width:100%;color:var(--color-text);transition:border-color .12s ease,box-shadow .12s ease}@media (max-width: 768px){input,select,textarea{font-size:16px}}input::placeholder,textarea::placeholder{color:var(--color-text-muted);opacity:.8}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--ring)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.25rem}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius)}table.data-table{width:100%;border-collapse:collapse;min-width:0}table.data-table th,table.data-table td{padding:.7rem .85rem;text-align:left;border-bottom:1px solid var(--color-border);vertical-align:middle}table.data-table thead th{font-weight:700;color:var(--color-text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;background:var(--color-surface-2);border-bottom:1px solid var(--color-border-strong)}table.data-table tbody tr{transition:background .1s ease}table.data-table tbody tr:hover td{background:var(--color-surface-2)}table.data-table tbody tr:last-child td{border-bottom:0}.badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.01em}.badge.active{background:var(--pos-bg);color:var(--pos-fg)}.badge.inactive{background:var(--neutral-bg);color:var(--neutral-fg)}.badge.scheduled{background:var(--info-bg);color:var(--info-fg)}.badge.completed{background:var(--pos-bg);color:var(--pos-fg)}.badge.canceled{background:var(--neg-bg);color:var(--neg-fg)}.badge.no_show,.badge.pendiente{background:var(--warn-bg);color:var(--warn-fg)}.badge.paid{background:var(--pos-bg);color:var(--pos-fg)}.badge.unpaid{background:var(--warn-bg);color:var(--warn-fg)}.modal-backdrop{position:fixed;inset:0;background:#0f172a80;backdrop-filter:blur(2px);display:grid;place-items:center;z-index:1000;padding:1rem;overflow-y:auto;animation:backdrop-in .14s ease}.modal{background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:1.5rem;width:min(480px,96vw);max-height:92vh;overflow-y:auto;display:flex;flex-direction:column;gap:.9rem;animation:modal-in .18s cubic-bezier(.16,1,.3,1)}.modal h2{margin:0;font-size:1.2rem}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 640px){table.data-table--stack thead{display:none}table.data-table--stack tr{display:block;border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:.6rem;padding:.35rem 0;box-shadow:var(--shadow-sm)}table.data-table--stack td{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.4rem .9rem;border-bottom:0}table.data-table--stack td:before{content:attr(data-label);color:var(--color-text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700}}.skeleton{display:block;border-radius:var(--radius-sm);background:linear-gradient(100deg,var(--skeleton-base) 30%,var(--skeleton-shine) 50%,var(--skeleton-base) 70%);background-size:200% 100%;animation:skeleton-shimmer 1.3s ease-in-out infinite}.skeleton--text{height:.8rem;border-radius:6px}.skeleton--title{height:1.4rem;border-radius:8px}.skeleton--circle{border-radius:50%}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.toast-stack{position:fixed;z-index:2000;bottom:1.1rem;right:1.1rem;display:flex;flex-direction:column;gap:.6rem;max-width:min(380px,100vw - 2rem);pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:.7rem;padding:.8rem .9rem;border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);animation:toast-in .24s cubic-bezier(.16,1,.3,1)}.toast__icon{flex-shrink:0;display:grid;place-items:center;margin-top:1px}.toast__body{display:flex;flex-direction:column;gap:.1rem;min-width:0;flex:1}.toast__title{font-weight:700;font-size:.86rem}.toast__msg{font-size:.8rem;color:var(--color-text-muted)}.toast__close{background:transparent;border:0;min-height:auto;padding:.1rem;color:var(--color-text-muted);display:grid;place-items:center}.toast--success{border-left:3px solid var(--color-success)}.toast--success .toast__icon{color:var(--color-success)}.toast--error{border-left:3px solid var(--color-danger)}.toast--error .toast__icon{color:var(--color-danger)}.toast--info{border-left:3px solid var(--color-primary)}.toast--info .toast__icon{color:var(--color-primary)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 520px){.toast-stack{left:1rem;right:1rem;bottom:1rem;max-width:none}}.rise-in{opacity:0;animation:rise-in .42s cubic-bezier(.16,1,.3,1) forwards}.rise-in:nth-child(1){animation-delay:45ms}.rise-in:nth-child(2){animation-delay:90ms}.rise-in:nth-child(3){animation-delay:135ms}.rise-in:nth-child(4){animation-delay:.18s}.rise-in:nth-child(5){animation-delay:225ms}.rise-in:nth-child(6){animation-delay:.27s}.rise-in:nth-child(7){animation-delay:315ms}.rise-in:nth-child(8){animation-delay:.36s}.rise-in:nth-child(9){animation-delay:405ms}.rise-in:nth-child(10){animation-delay:.45s}.rise-in:nth-child(11){animation-delay:495ms}.rise-in:nth-child(12){animation-delay:.54s}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.rise-in{opacity:1}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.6rem;padding:2.5rem 1.25rem;color:var(--color-text-muted)}.empty-state__icon{width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:var(--color-surface-2);color:var(--color-text-muted);margin-bottom:.2rem}.empty-state__title{font-weight:700;color:var(--color-text);font-size:.95rem}.empty-state__hint{font-size:.84rem;max-width:34ch}.muted{color:var(--color-text-muted)}::selection{background:#4f46e52e}@media (hover: hover){::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:999px;border:2px solid var(--color-bg)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}}
