:root{color-scheme:light;--color-primary: #0f766e;--color-primary-hover: #115e59;--color-primary-soft: #ccfbf1;--color-on-primary: #ffffff;--color-bg: #f8fafc;--color-surface: #ffffff;--color-surface-alt: #f1f5f9;--color-text: #0f172a;--color-text-muted: #475569;--color-border: #cbd5e1;--color-border-strong: #64748b;--color-disabled-bg: #e2e8f0;--color-disabled-text: #64748b;--color-danger: #b91c1c;--color-danger-hover: #991b1b;--color-danger-soft: #fef2f2;--color-danger-text: #991b1b;--color-success-soft: #f0fdf4;--color-success-text: #166534;--color-success-border: #86efac;--color-warning-soft: #fffbeb;--color-warning-text: #92400e;--color-info-soft: #eff6ff;--color-info-text: #1e40af;--estado-pendiente: #b45309;--estado-confirmado: #1d4ed8;--estado-asistido: #15803d;--estado-ausente: #6b7280;--estado-cancelado: #b91c1c;--estado-pendiente-bg: #fef3c7;--estado-pendiente-text: #92400e;--estado-confirmado-bg: #dbeafe;--estado-confirmado-text: #1e40af;--estado-asistido-bg: #dcfce7;--estado-asistido-text: #166534;--estado-ausente-bg: #f3f4f6;--estado-ausente-text: #374151;--estado-cancelado-bg: #fee2e2;--estado-cancelado-text: #991b1b;--espera-activa: #0e7490;--espera-activa-bg: #cffafe;--espera-activa-text: #155e75;--espera-ofrecida: #6d28d9;--espera-ofrecida-bg: #ede9fe;--espera-ofrecida-text: #5b21b6;--espera-convertida: #15803d;--espera-convertida-bg: #dcfce7;--espera-convertida-text: #166534;--espera-vencida: #475569;--espera-vencida-bg: #f1f5f9;--espera-vencida-text: #334155;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 2rem;--weight-regular: 400;--weight-medium: 500;--weight-bold: 700;--leading-tight: 1.2;--leading-normal: 1.5;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--gutter: 1rem;--container-max: 72rem;--target-min: 2.75rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgb(15 23 42 / .08);--shadow-md: 0 4px 12px rgb(15 23 42 / .1);--shadow-lg: 0 12px 32px rgb(15 23 42 / .18);--focus-color: #1d4ed8;--focus-width: 3px;--focus-offset: 2px;--focus-ring: var(--focus-width) solid var(--focus-color);--motion-fast: .12s;--motion-base: .2s;--motion-slow: .32s;--ease-out: cubic-bezier(.23, 1, .32, 1)}@media (prefers-reduced-motion: reduce){:root{--motion-fast: 0ms;--motion-base: 0ms;--motion-slow: 0ms}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}[data-theme=dark]{color-scheme:dark;--color-primary: #14b8a6;--color-primary-hover: #2dd4bf;--color-primary-soft: #134e4a;--color-on-primary: #042f2e;--color-bg: #090d16;--color-surface: #111827;--color-surface-alt: #1f2937;--color-text: #f8fafc;--color-text-muted: #94a3b8;--color-border: #374151;--color-border-strong: #64748b;--color-disabled-bg: #1e293b;--color-disabled-text: #64748b;--color-danger: #ef4444;--color-danger-hover: #f87171;--color-danger-soft: #450a0a;--color-danger-text: #fca5a5;--color-success-soft: #052e16;--color-success-text: #86efac;--color-success-border: #166534;--color-warning-soft: #451a03;--color-warning-text: #fde68a;--color-info-soft: #172554;--color-info-text: #93c5fd;--estado-pendiente: #f59e0b;--estado-confirmado: #3b82f6;--estado-asistido: #22c55e;--estado-ausente: #9ca3af;--estado-cancelado: #ef4444;--estado-pendiente-bg: #451a03;--estado-pendiente-text: #fde68a;--estado-confirmado-bg: #172554;--estado-confirmado-text: #93c5fd;--estado-asistido-bg: #052e16;--estado-asistido-text: #86efac;--estado-ausente-bg: #1f2937;--estado-ausente-text: #d1d5db;--estado-cancelado-bg: #450a0a;--estado-cancelado-text: #fca5a5;--espera-activa-bg: #083344;--espera-activa-text: #67e8f9;--espera-ofrecida-bg: #2e1065;--espera-ofrecida-text: #c4b5fd;--espera-convertida-bg: #052e16;--espera-convertida-text: #86efac;--espera-vencida-bg: #1e293b;--espera-vencida-text: #94a3b8;--shadow-sm: 0 1px 2px rgb(0 0 0 / .4);--shadow-md: 0 4px 12px rgb(0 0 0 / .5);--shadow-lg: 0 12px 32px rgb(0 0 0 / .7);--focus-color: #60a5fa}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased}.wrap{max-width:var(--container-max);margin:0 auto;padding:var(--space-4) var(--gutter) var(--space-7)}.wrap-sm{max-width:600px;margin:0 auto;padding:var(--space-4) var(--gutter) var(--space-7)}h1,h2,h3{line-height:var(--leading-tight);margin:0 0 var(--space-3);color:var(--color-text)}h1{font-size:var(--text-xl)}h2{font-size:var(--text-lg)}h3{font-size:var(--text-md)}p{margin:0 0 var(--space-3)}.muted{color:var(--color-text-muted);font-size:var(--text-sm)}.grid{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:20}.topbar .topbar-content{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--gutter);max-width:var(--container-max);margin:0 auto;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:var(--space-3);font-weight:var(--weight-bold);text-decoration:none;color:var(--color-text);cursor:pointer}.brand-icon{width:32px;height:32px;background:var(--color-primary);color:var(--color-on-primary);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem}.brand-name{font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--color-text)}.user-status{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted)}.user-role-badge{display:inline-flex;align-items:center;padding:2px var(--space-2);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--weight-medium);background:var(--color-surface-alt);color:var(--color-primary);border:1px solid var(--color-border);text-transform:capitalize}nav.main-nav{display:flex;gap:var(--space-1);flex-wrap:wrap;padding:var(--space-2) var(--gutter);max-width:var(--container-max);margin:0 auto;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.nav-tab{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-2) var(--space-3);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out);min-height:2.25rem}.nav-tab:hover{background:var(--color-surface-alt);color:var(--color-text)}.nav-tab[aria-current=page]{background:var(--color-primary-soft);color:var(--color-primary);font-weight:var(--weight-bold);border-color:var(--color-primary)}.nav-tab:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--target-min);padding:0 var(--space-4);font:inherit;font-weight:var(--weight-medium);font-size:var(--text-md);line-height:1;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;text-decoration:none;transition:background-color var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out),border-color var(--motion-fast) var(--ease-out),transform var(--motion-fast) var(--ease-out)}.btn-secondary{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-border-strong)}.btn-secondary:hover:not(:disabled){background:var(--color-primary-soft);border-color:var(--color-primary)}.btn-sm{min-height:2rem;padding:0 var(--space-3);font-size:var(--text-sm)}.btn:disabled{background:var(--color-disabled-bg);color:var(--color-disabled-text);border-color:transparent;cursor:not-allowed;transform:none}.btn:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}.field label{font-weight:var(--weight-medium);font-size:var(--text-sm);color:var(--color-text)}.input{min-height:var(--target-min);padding:0 var(--space-3);font:inherit;font-size:var(--text-md);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);width:100%;box-sizing:border-box;transition:border-color var(--motion-fast) var(--ease-out)}select.input{cursor:pointer}textarea.input{padding:var(--space-3);min-height:5rem;resize:vertical}.input:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset);border-color:var(--color-primary)}.input:disabled{background:var(--color-disabled-bg);color:var(--color-disabled-text);cursor:not-allowed}.hint{font-size:var(--text-sm);color:var(--color-text-muted)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-4);box-sizing:border-box}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:var(--weight-medium);background:var(--bg, var(--color-surface-alt));color:var(--fg, var(--color-text));line-height:1.4}.badge:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--dot, var(--color-border-strong));flex:none}.badge[data-estado=pendiente]{--bg: var(--estado-pendiente-bg);--fg: var(--estado-pendiente-text);--dot: var(--estado-pendiente)}.badge[data-estado=confirmado]{--bg: var(--estado-confirmado-bg);--fg: var(--estado-confirmado-text);--dot: var(--estado-confirmado)}.badge[data-estado=asistido]{--bg: var(--estado-asistido-bg);--fg: var(--estado-asistido-text);--dot: var(--estado-asistido)}.badge[data-estado=ausente]{--bg: var(--estado-ausente-bg);--fg: var(--estado-ausente-text);--dot: var(--estado-ausente)}.badge[data-estado=cancelado]{--bg: var(--estado-cancelado-bg);--fg: var(--estado-cancelado-text);--dot: var(--estado-cancelado)}.table-wrap{width:100%;overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);margin-bottom:var(--space-4)}table.data-table{width:100%;border-collapse:collapse;text-align:left;font-size:var(--text-sm)}table.data-table th{background:var(--color-surface-alt);padding:var(--space-3) var(--space-4);font-weight:var(--weight-bold);color:var(--color-text);border-bottom:1px solid var(--color-border)}table.data-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);color:var(--color-text)}table.data-table tr:last-child td{border-bottom:none}table.data-table tr:hover td{background:var(--color-surface-alt)}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:var(--space-4);z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialog{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:520px;width:100%;padding:var(--space-5);box-sizing:border-box}.banner{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid;align-items:flex-start;margin-bottom:var(--space-4)}.wrap-espera{max-width:var(--container-max);margin:0 auto;padding:var(--space-4) var(--gutter);font-family:var(--font-sans);color:var(--color-text)}.wrap-espera h1{font-size:var(--text-xl);line-height:var(--leading-tight);margin:0 0 var(--space-4)}.wrap-espera .muted,.oferta .muted{color:var(--color-text-muted);font-size:var(--text-sm)}.row{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--target-min);padding:0 var(--space-4);font:inherit;font-weight:var(--weight-medium);line-height:1;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-out),transform var(--motion-fast) var(--ease-out)}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{background:var(--color-primary);color:var(--color-on-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-primary-hover);border-color:var(--color-border-strong)}.btn-secondary:hover:not(:disabled){background:var(--color-primary-soft)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--color-danger-hover)}.btn-ghost{background:transparent;color:var(--color-text)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-alt)}.btn-sm{min-height:2.25rem;padding:0 var(--space-3);font-size:var(--text-sm)}.btn:disabled{background:var(--color-disabled-bg);color:var(--color-disabled-text);border-color:transparent;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3)}.field label{font-weight:var(--weight-medium);font-size:var(--text-sm)}.input{min-height:var(--target-min);padding:0 var(--space-3);font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);width:100%;box-sizing:border-box}textarea.input{padding:var(--space-3);min-height:5rem}.input[aria-invalid=true]{border-color:var(--color-danger);border-width:2px}.error-msg{font-size:var(--text-sm);color:var(--color-danger-text);font-weight:var(--weight-medium)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-4)}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:var(--weight-medium);background:var(--bg);color:var(--fg);line-height:1.4}.badge:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--dot);flex:none}.badge[data-espera=activa]{--bg: var(--espera-activa-bg);--fg: var(--espera-activa-text);--dot: var(--espera-activa)}.badge[data-espera=ofrecida]{--bg: var(--espera-ofrecida-bg);--fg: var(--espera-ofrecida-text);--dot: var(--espera-ofrecida)}.badge[data-espera=convertida]{--bg: var(--espera-convertida-bg);--fg: var(--espera-convertida-text);--dot: var(--espera-convertida)}.badge[data-espera=vencida]{--bg: var(--espera-vencida-bg);--fg: var(--espera-vencida-text);--dot: var(--espera-vencida)}.cola{list-style:none;margin:0;padding:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.cola li{display:grid;grid-template-columns:1fr auto;gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);align-items:center}.cola li:last-child{border-bottom:0}.cola .quien{font-weight:var(--weight-medium)}.cola .detalle{grid-column:1 / -1;display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:center;font-size:var(--text-sm);color:var(--color-text-muted)}.cola .espera-form{grid-column:1 / -1;background:var(--color-surface-alt);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.countdown{font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-weight:var(--weight-bold);color:var(--color-text)}.countdown[data-urgente=true]{color:var(--color-danger-text)}.countdown[data-vencido=true]{color:var(--espera-vencida-text);font-weight:var(--weight-regular);font-family:var(--font-sans)}.banner{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid;align-items:flex-start;text-align:left}.banner strong{display:block}.banner-error{background:var(--color-danger-soft);color:var(--color-danger-text);border-color:#fca5a5}.banner-success{background:var(--color-success-soft);color:var(--color-success-text);border-color:var(--color-success-border)}.banner-warning{background:var(--color-warning-soft);color:var(--color-warning-text);border-color:#fcd34d}.banner-icon{flex:none;font-weight:var(--weight-bold);width:1.5rem;height:1.5rem;border-radius:50%;background:currentColor;display:grid;place-items:center}.banner-icon span{color:#fff;font-size:var(--text-sm);line-height:1}.oferta{max-width:28rem;margin:var(--space-5) auto;text-align:center;font-family:var(--font-sans);color:var(--color-text)}.oferta h1{font-size:var(--text-lg);line-height:var(--leading-tight);margin:0 0 var(--space-3)}.oferta .tiempo{font-size:var(--text-2xl);margin:var(--space-2) 0}.oferta .row{justify-content:center}@media (max-width: 480px){.oferta .row .btn{flex:1 1 100%}.cola li{grid-template-columns:1fr}}.odonto{max-width:var(--container-max);margin:0 auto;padding:var(--space-4) var(--gutter);font-family:var(--font-sans);color:var(--color-text)}.odonto h2{font-size:var(--text-xl);line-height:var(--leading-tight);margin:0 0 var(--space-3)}.odonto h3{font-size:var(--text-lg);line-height:var(--leading-tight);margin:0 0 var(--space-2)}.odonto .muted{color:var(--color-text-muted);font-size:var(--text-sm)}.odonto-cabecera{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.odonto-alergias{position:sticky;top:0;z-index:1;margin-bottom:var(--space-4);box-shadow:var(--shadow-sm)}.odonto-alergias .banner-texto{overflow-wrap:anywhere}.odonto-grilla{display:grid;grid-template-columns:1fr;gap:var(--space-4);margin-bottom:var(--space-5)}.odonto-cuadrante{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3)}.odonto-cuadrante-titulo{margin:0 0 var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted)}.odonto-piezas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2)}.odonto-pieza{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:var(--space-1);min-height:var(--target-min);min-width:var(--target-min);padding:var(--space-2) var(--space-1);font:inherit;color:var(--color-text);text-align:center;background:var(--color-surface-alt);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-out),transform var(--motion-fast) var(--ease-out)}.odonto-pieza:hover{background:var(--color-primary-soft)}.odonto-pieza:active{transform:scale(.97)}.odonto-pieza:focus-visible,.odonto-baja-form :focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.odonto-pieza[aria-pressed=true]{border-color:var(--color-primary);border-width:3px;background:var(--color-primary-soft)}.odonto-pieza-numero{font-weight:var(--weight-bold);font-size:var(--text-md);font-variant-numeric:tabular-nums}.odonto-pieza-estado{font-size:var(--text-xs);line-height:var(--leading-tight);overflow-wrap:break-word;max-width:100%}.odonto-pieza[data-estado=caries]{background:var(--color-danger-soft)}.odonto-pieza[data-estado=obturacion]{background:var(--estado-confirmado-bg)}.odonto-pieza[data-estado=sano]{background:var(--estado-asistido-bg)}.odonto-pieza[data-estado=ausente]{background:var(--estado-ausente-bg)}.odonto-pieza[data-estado=corona],.odonto-pieza[data-estado=implante],.odonto-pieza[data-estado=endodoncia]{background:var(--espera-ofrecida-bg)}.odonto-pieza[aria-pressed=true][data-estado]{box-shadow:inset 0 0 0 2px var(--color-primary)}.odonto-detalle{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-4);margin-bottom:var(--space-4)}.odonto-vigente{list-style:none;margin:0 0 var(--space-4);padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}.odonto-historial{list-style:none;margin:0 0 var(--space-4);padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.odonto-historial li{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);display:grid;gap:var(--space-1)}.odonto-historial li:last-child{border-bottom:0}.odonto-historial li[data-anulado=true]{background:var(--color-surface-alt);color:var(--color-text-muted)}.odonto-historial .titulo{font-weight:var(--weight-medium)}.odonto-historial li[data-anulado=true] .titulo{text-decoration:line-through}.odonto-acciones{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.odonto-form,.odonto-baja-form{background:var(--color-surface-alt);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-top:var(--space-2)}.odonto-form .row{align-items:flex-end}.odonto-historia-form{margin-bottom:var(--space-4)}@media (min-width: 1024px){.odonto-grilla{grid-template-columns:repeat(2,minmax(0,1fr))}.odonto-piezas{grid-template-columns:repeat(8,minmax(0,1fr))}.odonto-piezas{gap:var(--space-1)}.odonto-pieza{padding-left:0;padding-right:0}}@media (prefers-reduced-motion: reduce){.odonto-pieza{transition:none}.odonto-pieza:active{transform:none}}.pres-panel{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.pres-panel h3{font-size:var(--text-lg);line-height:var(--leading-tight);margin:0 0 var(--space-2)}.pres-panel .muted{color:var(--color-text-muted);font-size:var(--text-sm)}.pres-lista{list-style:none;margin:0 0 var(--space-4);padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.pres-lista li{border-bottom:1px solid var(--color-border)}.pres-lista li:last-child{border-bottom:0}.pres-fila{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;justify-content:space-between;width:100%;min-height:var(--target-min);padding:var(--space-3) var(--space-4);font:inherit;color:var(--color-text);text-align:left;background:var(--color-surface);border:0;cursor:pointer}.pres-fila:hover{background:var(--color-primary-soft)}.pres-fila:focus-visible{outline:var(--focus-ring);outline-offset:calc(var(--focus-offset) * -1)}.pres-fila[aria-pressed=true]{background:var(--color-primary-soft);box-shadow:inset 4px 0 0 var(--color-primary)}.pres-importe{font-variant-numeric:tabular-nums}.badge[data-pres=borrador]{--bg: var(--estado-ausente-bg);--fg: var(--estado-ausente-text);--dot: var(--estado-ausente)}.badge[data-pres=presentado]{--bg: var(--color-info-soft);--fg: var(--color-info-text);--dot: var(--estado-confirmado)}.badge[data-pres=aceptado]{--bg: var(--color-success-soft);--fg: var(--color-success-text);--dot: var(--estado-asistido)}.badge[data-pres=rechazado]{--bg: var(--color-danger-soft);--fg: var(--color-danger-text);--dot: var(--estado-cancelado)}.badge[data-pres=cobrado]{--bg: var(--espera-convertida-bg);--fg: var(--espera-convertida-text);--dot: var(--espera-convertida)}.pres-detalle{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-4);margin-bottom:var(--space-4)}.pres-detalle-cabecera{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;margin-bottom:var(--space-3)}.pres-detalle-cabecera h4{margin:0;font-size:var(--text-md)}.pres-items{list-style:none;margin:0 0 var(--space-3);padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.pres-items li{display:grid;gap:var(--space-1);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.pres-items li:last-child{border-bottom:0}.pres-items .titulo{font-weight:var(--weight-medium)}.pres-total{font-size:var(--text-md);margin:var(--space-2) 0}.pres-total strong{font-size:var(--text-lg);font-variant-numeric:tabular-nums}.pres-aviso{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);background:var(--color-warning-soft);color:var(--color-warning-text);font-size:var(--text-sm)}.pres-form,.motivo-form{background:var(--color-surface-alt);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin:var(--space-2) 0 var(--space-4)}.pres-item-form{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:var(--space-3);margin:0 0 var(--space-3)}.pres-item-form legend{font-weight:var(--weight-medium);font-size:var(--text-sm);padding:0 var(--space-2)}.pres-form :focus-visible,.motivo-form :focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.pres-acciones,.motivo-acciones{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.motivo-error{color:var(--color-danger-text);font-size:var(--text-sm);font-weight:var(--weight-medium)}@media (prefers-reduced-motion: no-preference){.pres-fila{transition:background-color var(--motion-fast) var(--ease-out)}}.cuenta{max-width:var(--container-max);margin:0 auto;padding:var(--space-4) var(--gutter);font-family:var(--font-sans);color:var(--color-text)}.cuenta h2{font-size:var(--text-xl);line-height:var(--leading-tight);margin:0 0 var(--space-3)}.cuenta .muted{color:var(--color-text-muted);font-size:var(--text-sm)}.cuenta-cabecera{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.cuenta-saldo{margin:0 0 var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--text-md)}.cuenta-saldo strong{font-size:var(--text-xl);font-variant-numeric:tabular-nums}.cuenta-saldo[data-saldo=debe]{background:var(--color-warning-soft);color:var(--color-warning-text);border-color:var(--color-warning-text)}.cuenta-saldo[data-saldo=sin-deuda]{background:var(--color-success-soft);color:var(--color-success-text);border-color:var(--color-success-border)}.cuenta-saldo[data-saldo=a-favor]{background:var(--color-info-soft);color:var(--color-info-text);border-color:var(--color-info-text)}.cuenta-movimientos{list-style:none;margin:0 0 var(--space-4);padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.cuenta-movimientos li{display:grid;gap:var(--space-1);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.cuenta-movimientos li:last-child{border-bottom:0}.cuenta-movimientos li[data-anulado=true]{background:var(--color-surface-alt);color:var(--color-text-muted)}.cuenta-movimientos li[data-anulado=true] .titulo,.cuenta-movimientos li[data-anulado=true] .pres-importe{text-decoration:line-through}.cuenta-movimientos .titulo{font-weight:var(--weight-medium)}.cuenta-acciones{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-1)}.cuenta-modal{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-4);margin-bottom:var(--space-4)}.cuenta-modal h4{margin:0 0 var(--space-2);font-size:var(--text-md)}.cuenta :focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.cobertura{margin:0 0 var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.cobertura h3{margin-top:0}.cobertura-plan{font-weight:var(--weight-medium)}.cobertura-campos{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end;margin:0 0 var(--space-3)}.cobertura-resultado{margin:var(--space-3) 0 0;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);font-variant-numeric:tabular-nums}.cobertura-resultado p{margin:0 0 var(--space-1)}.cobertura-estado{font-weight:var(--weight-bold)}.cobertura-resultado[data-estado=cubierto]{background:var(--color-success-soft);color:var(--color-success-text);border-color:var(--color-success-border)}.cobertura-resultado[data-estado=sin_arancel],.cobertura-resultado[data-estado=sin_plan]{background:var(--color-warning-soft);color:var(--color-warning-text);border-color:var(--color-warning-text)}.caja,.cobro-modal{font-family:var(--font-sans);color:var(--color-text)}.caja{max-width:var(--container-max);margin:0 auto;padding:var(--space-4) var(--gutter)}.caja h2{font-size:var(--text-xl);line-height:var(--leading-tight);margin:0}.caja h3{font-size:var(--text-lg);margin:var(--space-5) 0 var(--space-3)}.caja .muted,.cobro-modal .muted{color:var(--color-text-muted);font-size:var(--text-sm)}.caja-cabecera{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end;justify-content:space-between;margin-bottom:var(--space-3)}.caja-otro-dia{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.banner-info{background:var(--color-info-soft);color:var(--color-info-text);border-color:var(--color-info-text)}.caja .banner,.cobro-modal .banner{margin:0 0 var(--space-3)}.caja-resumen{margin:0 0 var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.caja-resumen p{margin:0 0 var(--space-2)}.caja-resumen strong{font-size:var(--text-lg);font-variant-numeric:tabular-nums}.caja-resumen[data-estado=abierta]{background:var(--color-success-soft);color:var(--color-success-text);border-color:var(--color-success-border)}.caja-resumen[data-estado=cerrada]{background:var(--color-surface-alt);border-color:var(--color-border-strong)}.caja-estado{font-weight:var(--weight-bold);font-size:var(--text-md)}.caja-desglose,.caja-recibos{list-style:none;margin:0 0 var(--space-4);padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.caja-desglose li{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.caja-recibos li{display:grid;gap:var(--space-1);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.caja-desglose li:last-child,.caja-recibos li:last-child{border-bottom:0}.caja-recibos li[data-anulado=true]{background:var(--color-surface-alt);color:var(--color-text-muted)}.caja-recibos li[data-anulado=true] .titulo,.caja-recibos li[data-anulado=true] .pres-importe{text-decoration:line-through}.caja-recibos .titulo{font-weight:var(--weight-medium)}.caja-acciones{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-1)}.caja-anulacion{margin-top:var(--space-2)}.caja-cierre{margin:0 0 var(--space-4);padding:var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.caja-cierre h3{margin-top:0}.cobro-modal{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-4);margin-bottom:var(--space-4)}.cobro-modal h4{margin:0 0 var(--space-2);font-size:var(--text-md)}.cobro-modal fieldset{border:1px solid var(--color-border);border-radius:var(--radius-md);margin:0 0 var(--space-3);padding:var(--space-3)}.cobro-modal legend{padding:0 var(--space-2);font-weight:var(--weight-medium)}.cobro-medio{display:flex;align-items:center;gap:var(--space-2);min-height:var(--target-min)}.cobro-acciones{display:flex;flex-wrap:wrap;gap:var(--space-2)}.comprobante{border:2px solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-4);background:var(--color-surface);margin-bottom:var(--space-3)}.comprobante h4{margin:0 0 var(--space-3)}.comprobante dl{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-1) var(--space-4);margin:0 0 var(--space-3)}.comprobante dt{color:var(--color-text-muted)}.comprobante dd{margin:0;font-variant-numeric:tabular-nums}.comprobante-leyenda{margin:0;font-weight:var(--weight-bold);color:var(--color-warning-text)}.comprobante[data-anulado=true]{background:var(--color-surface-alt)}.cuenta-pendientes{list-style:none;margin:0 0 var(--space-4);padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.cuenta-pendientes li{display:grid;gap:var(--space-1);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.cuenta-pendientes li:last-child{border-bottom:0}.cuenta-bloqueo{color:var(--color-warning-text);font-size:var(--text-sm)}.caja :focus-visible,.cobro-modal :focus-visible,.cuenta-pendientes :focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.liquidaciones{font-family:var(--font-sans);color:var(--color-text);max-width:var(--container-max);margin:0 auto;padding:var(--space-4) var(--gutter)}.liquidaciones h2{font-size:var(--text-xl);line-height:var(--leading-tight);margin:0 0 var(--space-2)}.liquidaciones h3{font-size:var(--text-lg);margin:var(--space-5) 0 var(--space-3)}.liquidaciones h4{font-size:var(--text-md);margin:var(--space-4) 0 var(--space-2)}.liquidaciones .muted{color:var(--color-text-muted);font-size:var(--text-sm)}.liquidaciones .banner{margin:0 0 var(--space-3)}.liq-generar{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end;margin:0 0 var(--space-4);padding:var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.liq-generar .banner{flex-basis:100%;margin:0}.liq-lista,.liq-items{list-style:none;margin:0 0 var(--space-4);padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.liq-lista li,.liq-items li{display:grid;gap:var(--space-1);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.liq-lista li:last-child,.liq-items li:last-child{border-bottom:0}.liq-lista .titulo,.liq-items .titulo{font-weight:var(--weight-medium)}.liq-lista li[data-estado=cobrada]{background:var(--color-success-soft);color:var(--color-success-text)}.liq-items li[data-revision=true]{background:var(--color-surface-alt);color:var(--color-text-muted)}.liq-detalle{margin:0 0 var(--space-4);padding:var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface)}.liq-detalle h3{margin-top:0}.liq-estado{font-size:var(--text-md)}.liq-estado[data-estado=cobrada]{color:var(--color-success-text)}.liq-plan{margin:0 0 var(--space-3)}.liq-plan p{font-variant-numeric:tabular-nums}.liq-acciones,.liq-cobro{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:flex-end;margin:0 0 var(--space-3)}.liq-cobro{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md)}.seguridad{max-width:44rem;margin:0 auto;padding:var(--space-4, 1rem)}.seguridad-declaracion{padding:.75rem 1rem;border:1px solid var(--color-success-border);border-radius:.5rem;background:var(--color-success-soft);color:var(--color-success-text);font-weight:600}.seguridad-bloque{margin-top:1.5rem}.seguridad-bloque h2{font-size:1.1rem;margin-bottom:.5rem}.seguridad-bloque ul{padding-left:1.25rem;display:grid;gap:.4rem}.seguridad-pendiente{padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:.5rem;background:var(--color-warning-soft);color:var(--color-warning-text)}.admin-usuarios{max-width:var(--container-max);margin:0 auto;padding:var(--space-4) var(--gutter);font-family:var(--font-sans);color:var(--color-text)}.admin-usuarios table{width:100%;border-collapse:collapse;margin-bottom:var(--space-5)}.admin-usuarios th,.admin-usuarios td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border)}.admin-usuarios tr[data-activo=false]{background:var(--color-surface-alt);color:var(--color-text-muted)}.admin-usuarios .banner-error{padding:var(--space-3);border:1px solid var(--color-danger);border-radius:var(--radius-md);background:var(--color-danger-soft);color:var(--color-danger-text)}.admin-alta{display:grid;gap:var(--space-3);max-width:28rem;padding:var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface)}.admin-alta label{display:grid;gap:var(--space-1);font-weight:var(--weight-medium)}.admin-alta input,.admin-alta select,.admin-usuarios button{min-height:var(--target-min)}
