:root{--bg-primary: #111313;--bg-card: #191c1c;--bg-elevated: #212527;--bg-overlay: rgba(0, 0, 0, .72);--bg-input: #111313;--border: #2e3237;--border-muted: rgba(46, 50, 55, .55);--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #475569;--text-on-primary: #0d1000;--brand: #B7F500;--brand-hover: #A3DB00;--brand-active: #8FBF00;--brand-soft: rgba(183, 245, 0, .1);--brand-contrast: #0d1000;--primary: #B7F500;--primary-hover: #A3DB00;--primary-subtle: rgba(183, 245, 0, .1);--color-info: #3b82f6;--color-info-text: #60a5fa;--color-info-subtle: rgba(59, 130, 246, .12);--color-success: #22c55e;--color-success-text: #4ade80;--color-success-subtle: rgba(34, 197, 94, .12);--color-success-banner: rgba(34, 197, 94, .1);--color-warning: #f59e0b;--color-warning-text: #f59e0b;--color-warning-subtle: rgba(245, 158, 11, .15);--color-danger: #ef4444;--color-danger-text: #f87171;--color-danger-subtle: rgba(239, 68, 68, .15);--color-danger-banner: rgba(239, 68, 68, .12);--color-frozen: #eab308;--color-frozen-text: #eab308;--color-frozen-subtle: rgba(234, 179, 8, .12);--color-neutral-subtle: rgba(148, 163, 184, .1);--bg-row-hover: rgba(255, 255, 255, .02);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: 6px;--radius-md: 8px;--radius-input: 10px;--radius-lg: 12px;--radius-card: 16px;--radius-xl: 24px;--radius-full: 999px;--avatar-lg-size: 6rem;--text-xs: .75rem;--text-sm: .8rem;--text-base: .9rem;--text-md: .95rem;--text-lg: 1rem;--text-xl: 1.1rem;--text-2xl: 1.2rem;--text-3xl: 1.35rem;--text-4xl: 1.5rem;--text-5xl: 1.75rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--duration-fast: .2s;--duration-layout: .3s;--easing-default: ease;--transition-fast: color var(--duration-fast) var(--easing-default), background-color var(--duration-fast) var(--easing-default), border-color var(--duration-fast) var(--easing-default), box-shadow var(--duration-fast) var(--easing-default), opacity var(--duration-fast) var(--easing-default), transform var(--duration-fast) var(--easing-default);--transition-color: color var(--duration-fast) var(--easing-default), fill var(--duration-fast) var(--easing-default);--transition-layout: margin-left var(--duration-layout) var(--easing-default), width var(--duration-layout) var(--easing-default), transform var(--duration-layout) var(--easing-default), padding var(--duration-layout) var(--easing-default);--shadow-focus: 0 0 0 3px rgba(183, 245, 0, .18);--shadow-login: 0 25px 50px rgba(0, 0, 0, .4);--shadow-modal: 0 8px 32px rgba(0, 0, 0, .5);--sidebar-width: 260px;--sidebar-collapsed: 72px;--content-max: 1200px;--content-form-max: 1000px;--z-sidebar: 50;--z-overlay: 99;--z-modal: 100}@media(prefers-reduced-motion:reduce){:root{--duration-fast: 0s;--duration-layout: 0s}}app-dashboard{display:block}app-dashboard .dashboard{max-width:var(--content-max);margin:0 auto;padding:var(--space-5) var(--space-4);display:grid;gap:var(--space-5)}app-dashboard .hero-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:var(--space-5);padding:var(--space-5);align-items:start}app-dashboard .eyebrow{margin:0 0 var(--space-1);color:var(--primary);font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.06em}app-dashboard h1{font-size:var(--text-5xl);font-weight:var(--font-bold);color:var(--text-primary);margin:0;text-wrap:balance;line-height:1.15}app-dashboard .subtitle{color:var(--text-secondary);font-size:var(--text-md);margin:var(--space-2) 0 0;line-height:1.4}app-dashboard .hero-status{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--bg-primary);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}app-dashboard .hero-status.open{border-color:var(--color-success-subtle)}app-dashboard .hero-status-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}app-dashboard .status-pill{display:inline-flex;align-items:center;border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-semibold);border:1px solid transparent}app-dashboard .status-pill.is-open{background:var(--color-success-subtle);color:var(--color-success-text)}app-dashboard .status-pill.is-closed{background:var(--color-neutral-subtle);color:var(--text-secondary)}app-dashboard .hero-status-label{color:var(--text-secondary);font-size:var(--text-xs);letter-spacing:.03em}app-dashboard .hero-metric{display:flex;flex-direction:column;gap:var(--space-1)}app-dashboard .hero-metric-label{color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium)}app-dashboard .hero-metric strong{color:var(--text-primary);font-size:var(--text-4xl);font-weight:var(--font-bold);line-height:1.1;font-variant-numeric:tabular-nums}app-dashboard .turno-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}app-dashboard .turno-grid div{border:1px solid var(--border-muted);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);display:flex;flex-direction:column;gap:var(--space-1)}app-dashboard .turno-grid span{color:var(--text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em}app-dashboard .turno-grid strong{color:var(--text-primary);font-size:var(--text-base);font-weight:var(--font-semibold);font-variant-numeric:tabular-nums}app-dashboard .positive{color:var(--color-success-text)}app-dashboard .negative{color:var(--color-danger-text)}app-dashboard .hero-copy-note{color:var(--text-secondary);font-size:var(--text-base);margin:0;line-height:1.4}app-dashboard .hero-action{display:inline-flex;align-items:center;justify-content:center;width:fit-content;padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);background:var(--primary);color:var(--text-on-primary);text-decoration:none;font-size:var(--text-base);font-weight:var(--font-semibold);transition:var(--transition-fast);min-height:36px}app-dashboard .hero-action:hover{background:var(--primary-hover)}app-dashboard .hero-action:focus-visible{outline:none;box-shadow:var(--shadow-focus)}app-dashboard .section-block{display:grid;gap:var(--space-4)}app-dashboard .section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}app-dashboard h2{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--text-primary);margin:0}app-dashboard .section-note{color:var(--text-secondary);font-size:var(--text-sm);margin:var(--space-1) 0 0}app-dashboard .stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}app-dashboard .stat-card{background:var(--bg-card);border:1px solid var(--border);border-top:3px solid transparent;border-radius:var(--radius-card);padding:var(--space-4);display:flex;gap:var(--space-3);align-items:flex-start}app-dashboard .stat-card.success{border-top-color:var(--color-success)}app-dashboard .stat-card.warning{border-top-color:var(--color-warning)}app-dashboard .stat-card.danger{border-top-color:var(--color-danger)}app-dashboard .stat-card.primary{border-top-color:var(--primary)}app-dashboard .stat-icon{width:40px;height:40px;border-radius:var(--radius-lg);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}app-dashboard .stat-icon.success{color:var(--color-success);background:var(--color-success-subtle)}app-dashboard .stat-icon.warning{color:var(--color-warning);background:var(--color-warning-subtle)}app-dashboard .stat-icon.danger{color:var(--color-danger);background:var(--color-danger-subtle)}app-dashboard .stat-icon.primary{color:var(--primary);background:var(--primary-subtle)}app-dashboard .stat-copy{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}app-dashboard .stat-label{color:var(--text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--font-medium)}app-dashboard .stat-value{color:var(--text-primary);font-size:var(--text-4xl);font-weight:var(--font-bold);line-height:1.1;font-variant-numeric:tabular-nums}app-dashboard .stat-note{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.3}app-dashboard .actions-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}app-dashboard .action-btn{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);text-decoration:none;color:var(--text-primary);font-size:var(--text-base);font-weight:var(--font-semibold);transition:var(--transition-fast);min-height:44px;white-space:nowrap;overflow:hidden}app-dashboard .action-btn:hover{border-color:var(--primary);background:var(--bg-elevated)}app-dashboard .action-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}app-dashboard .action-btn:active{background:var(--primary-subtle)}app-dashboard .action-btn.primary{border-color:var(--primary);background:var(--primary-subtle);color:var(--primary)}app-dashboard .action-btn.primary:hover{background:var(--primary);color:var(--text-on-primary)}app-dashboard .action-btn-icon{flex-shrink:0;display:inline-flex;align-items:center;color:var(--text-secondary);transition:color var(--duration-fast) var(--easing-default)}app-dashboard .action-btn:hover .action-btn-icon,app-dashboard .action-btn.primary .action-btn-icon{color:inherit}@media(max-width:768px){app-dashboard .dashboard{padding:var(--space-4);gap:var(--space-4)}app-dashboard .hero-card{grid-template-columns:1fr;padding:var(--space-4);gap:var(--space-4)}app-dashboard .hero-status-head{flex-direction:column;align-items:flex-start}app-dashboard .hero-action{width:100%;justify-content:center}app-dashboard .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}app-dashboard .stat-value{font-size:var(--text-3xl)}app-dashboard .actions-strip{grid-template-columns:repeat(2,minmax(0,1fr))}app-dashboard .action-btn{white-space:normal}app-dashboard .turno-grid{grid-template-columns:1fr}}app-cliente-asistencias{display:block}app-cliente-asistencias .page{max-width:var(--content-max);margin:0 auto;padding:var(--space-6) var(--space-4);display:grid;gap:var(--space-5)}app-cliente-asistencias .page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}app-cliente-asistencias .eyebrow{margin:0 0 var(--space-2);color:var(--primary);font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.04em}app-cliente-asistencias h1{font-size:var(--text-5xl);font-weight:var(--font-bold);color:var(--text-primary);margin:0;text-wrap:balance}app-cliente-asistencias h2{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--text-primary);margin:0}app-cliente-asistencias .subtitle,app-cliente-asistencias .section-note,app-cliente-asistencias .client-status p,app-cliente-asistencias .empty-state p,app-cliente-asistencias .summary-note{color:var(--text-secondary);font-size:var(--text-md);margin:var(--space-2) 0 0}app-cliente-asistencias .card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-4)}app-cliente-asistencias .client-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}app-cliente-asistencias .client-identity{display:flex;align-items:center;gap:var(--space-4);min-width:0}app-cliente-asistencias .avatar-lg{width:72px;height:72px;border-radius:var(--radius-xl);overflow:hidden;background:var(--primary-subtle);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:var(--text-xl);font-weight:var(--font-bold);flex-shrink:0}app-cliente-asistencias .avatar-lg img{width:100%;height:100%;object-fit:cover}app-cliente-asistencias .client-meta{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}app-cliente-asistencias .client-meta strong{color:var(--text-primary);font-size:var(--text-2xl);font-weight:var(--font-semibold)}app-cliente-asistencias .client-meta span{color:var(--text-secondary);font-size:var(--text-md)}app-cliente-asistencias .client-status{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-2);text-align:right}app-cliente-asistencias .status-pill{display:inline-flex;align-items:center;border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);background:var(--primary-subtle);color:var(--primary);font-size:var(--text-xs);font-weight:var(--font-medium)}app-cliente-asistencias .summary-panel{display:grid;gap:var(--space-4)}app-cliente-asistencias .summary-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}app-cliente-asistencias .summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}app-cliente-asistencias .summary-row{border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-1);background:var(--bg-elevated)}app-cliente-asistencias .summary-row.primary{border-color:var(--primary-subtle)}app-cliente-asistencias .summary-row.success{border-color:var(--color-success-subtle)}app-cliente-asistencias .summary-row.danger{border-color:var(--color-danger-subtle)}app-cliente-asistencias .summary-row.neutral{border-color:var(--border)}app-cliente-asistencias .summary-label{color:var(--text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--font-medium)}app-cliente-asistencias .summary-value{color:var(--text-primary);font-size:var(--text-4xl);font-weight:var(--font-bold);line-height:1.1;font-variant-numeric:tabular-nums}app-cliente-asistencias .summary-note{margin-top:0;font-size:var(--text-sm)}app-cliente-asistencias .section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}app-cliente-asistencias .table-wrap{overflow-x:auto}app-cliente-asistencias table{width:100%;border-collapse:collapse}app-cliente-asistencias th{text-align:left;padding:var(--space-3) var(--space-2);color:var(--text-secondary);font-size:var(--text-xs);font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border)}app-cliente-asistencias td{padding:var(--space-3) var(--space-2);color:var(--text-primary);font-size:var(--text-base);border-bottom:1px solid var(--border-muted);vertical-align:top}app-cliente-asistencias tr:hover td{background:var(--bg-row-hover)}app-cliente-asistencias .badge{display:inline-flex;align-items:center;border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-medium)}app-cliente-asistencias .badge.success{background:var(--color-success-subtle);color:var(--color-success-text)}app-cliente-asistencias .badge.danger{background:var(--color-danger-subtle);color:var(--color-danger-text)}app-cliente-asistencias .empty-state,app-cliente-asistencias .state-card{text-align:center}app-cliente-asistencias .state-card{color:var(--text-secondary)}app-cliente-asistencias .banner-error{background:var(--color-danger-banner);border:1px solid var(--color-danger-subtle);border-radius:var(--radius-md);color:var(--color-danger-text);padding:var(--space-3) var(--space-4)}app-cliente-asistencias .btn-secondary{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border);background:transparent;color:var(--text-primary);text-decoration:none;font-size:var(--text-base);font-weight:var(--font-semibold);transition:var(--transition-fast);white-space:nowrap}app-cliente-asistencias .btn-secondary:hover{background:var(--bg-elevated)}app-cliente-asistencias .btn-secondary:focus-visible{outline:none;box-shadow:var(--shadow-focus)}@media(max-width:768px){app-cliente-asistencias .page{padding:var(--space-4)}app-cliente-asistencias .summary-grid{grid-template-columns:1fr}app-cliente-asistencias .page-header,app-cliente-asistencias .section-head,app-cliente-asistencias .summary-header,app-cliente-asistencias .client-card,app-cliente-asistencias .client-identity,app-cliente-asistencias .client-status{flex-direction:column;align-items:flex-start;text-align:left}app-cliente-asistencias .btn-secondary{width:100%}}.page{max-width:var(--content-max);margin:0 auto}.header,.profile,.actions{display:flex}.header{justify-content:space-between;gap:var(--space-4);align-items:flex-start;margin-bottom:var(--space-4);flex-wrap:wrap}.profile{gap:var(--space-4);align-items:center}.avatar-lg{width:var(--avatar-lg-size);height:var(--avatar-lg-size);border-radius:var(--radius-xl);overflow:hidden;background:var(--primary-subtle);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:var(--text-2xl);font-weight:var(--font-bold)}.avatar-lg img{width:100%;height:100%;object-fit:cover}h1,h2{color:var(--text-primary);margin:0}h1{font-size:var(--text-5xl)}h2{font-size:var(--text-xl);margin-bottom:var(--space-4)}.subtitle{color:var(--text-secondary);margin:var(--space-1) 0 0}.actions{gap:var(--space-3);flex-wrap:wrap}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-4);margin-bottom:var(--space-4)}.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.span-2{grid-column:span 2}.label{display:block;color:var(--text-secondary);font-size:var(--text-xs);margin-bottom:var(--space-1)}.value-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.section-note{color:var(--text-secondary);font-size:var(--text-md);margin:var(--space-1) 0 0}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);margin-bottom:var(--space-4)}.summary-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-1)}.summary-card.primary{border-color:var(--primary-subtle)}.summary-card.success{border-color:var(--color-success-subtle)}.summary-card.danger{border-color:var(--color-danger-subtle)}.summary-label{color:var(--text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--font-medium)}.summary-value{color:var(--text-primary);font-size:var(--text-4xl);font-weight:var(--font-bold);font-variant-numeric:tabular-nums;line-height:1.1}.summary-note{color:var(--text-muted);font-size:var(--text-sm)}.btn-primary,.btn-secondary,.btn-danger{border:0;border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);cursor:pointer;font-weight:var(--font-semibold);text-decoration:none;transition:var(--transition-fast)}.btn-primary{background:var(--primary);color:var(--text-on-primary)}.btn-secondary{background:transparent;color:var(--text-primary);border:1px solid var(--border)}.btn-danger{background:var(--color-danger-subtle);color:var(--color-danger-text)}.btn-primary:hover,.btn-secondary:hover,.btn-danger:hover{background:var(--bg-elevated)}.btn-danger:hover{background:var(--color-danger-banner)}.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-danger:focus-visible{outline:none;box-shadow:var(--shadow-focus)}th,td{text-align:left;padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--border-muted);color:var(--text-primary)}th{color:var(--text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em}.payments-table-wrap{margin-top:0}.payment-concept{display:flex;flex-direction:column;gap:var(--space-1)}.payment-concept span{color:var(--text-secondary);font-size:var(--text-xs)}.btn-link{background:none;border:0;padding:0;color:var(--primary);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium)}.btn-link:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--radius-sm)}.muted{color:var(--text-muted)}.anulacion-box{display:grid;gap:var(--space-4);margin-top:var(--space-4);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--bg-elevated)}.anulacion-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.anulacion-head h3{margin:0;color:var(--text-primary);font-size:var(--text-lg);font-weight:var(--font-semibold)}.anulacion-head p{margin:var(--space-1) 0 0;color:var(--text-secondary)}.anulacion-data{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.anulacion-data strong{color:var(--text-primary)}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field textarea{width:100%;box-sizing:border-box;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-input);padding:var(--space-3) var(--space-4);resize:vertical}.field textarea:focus-visible{border-color:var(--primary);box-shadow:var(--shadow-focus);outline:none}.destructive-confirmation{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.destructive-confirmation h2{margin-bottom:var(--space-2)}.destructive-confirmation p{margin:0;color:var(--text-secondary)}.confirm-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}@media(max-width:768px){.info-grid,.compact,.summary-grid,.anulacion-data{grid-template-columns:1fr}.span-2{grid-column:auto}.header,.section-head,.anulacion-head{flex-direction:column}}.warning{color:var(--color-warning-text);background:var(--color-warning-subtle)}.link{color:var(--primary);font-weight:var(--font-medium)}.pos-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);gap:var(--space-5);align-items:start}.catalog,.cart{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-4)}.catalog-header{display:grid;gap:var(--space-4)}.search{background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-input);padding:var(--space-3) var(--space-4)}.search:focus-visible{border-color:var(--primary);box-shadow:var(--shadow-focus);outline:none}.cat-tabs{display:flex;flex-wrap:wrap;gap:var(--space-2)}.cat-tab,.qty-btn,.btn-remove,.btn-link,.btn-cobrar,.btn-secondary,.btn-primary{transition:var(--transition-fast)}.cat-tab{background:transparent;border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);cursor:pointer}.cat-tab.active{background:var(--primary-subtle);color:var(--primary);border-color:var(--primary)}.prod-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);margin-top:var(--space-4)}.prod-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-4);display:grid;gap:var(--space-2);text-align:left;cursor:pointer}.prod-card:disabled{opacity:.5;cursor:not-allowed}.prod-nombre{color:var(--text-primary);font-weight:var(--font-semibold)}.prod-precio{color:var(--primary);font-size:var(--text-lg);font-weight:var(--font-bold)}.prod-stock{color:var(--text-secondary);font-size:var(--text-xs)}.prod-stock.sin-stock{color:var(--color-danger-text)}.cart{display:grid;gap:var(--space-4)}.cart-items,.sales-list{display:grid;gap:var(--space-3)}.cart-item,.sale-item{display:flex;justify-content:space-between;gap:var(--space-4);align-items:flex-start;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md)}.item-info,.sale-item>div{display:grid;gap:var(--space-1)}.item-nombre,.sale-item strong{color:var(--text-primary);font-weight:var(--font-semibold)}.item-precio,.sale-item p,.cart-empty,.empty{color:var(--text-secondary);font-size:var(--text-sm)}.item-qty{display:flex;align-items:center;gap:var(--space-2)}.qty-btn,.btn-remove{background:transparent;border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-sm);width:32px;height:32px;cursor:pointer}.qty-btn:disabled{opacity:.4;cursor:not-allowed}.qty-val{min-width:1.5rem;text-align:center}.item-subtotal{color:var(--text-primary);font-weight:var(--font-semibold)}.btn-remove{color:var(--color-danger-text)}.cart-footer{display:grid;gap:var(--space-4)}.total-row{display:flex;justify-content:space-between;align-items:center}.total-row strong{color:var(--text-primary);font-size:var(--text-2xl)}.field{display:grid;gap:var(--space-1)}.field label{color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium)}.field select,.field textarea{background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-input);padding:var(--space-3) var(--space-4)}.field select:focus-visible,.field textarea:focus-visible{border-color:var(--primary);box-shadow:var(--shadow-focus);outline:none}.btn-cobrar{background:var(--primary);color:var(--text-on-primary);border:0;border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);font-weight:var(--font-bold);cursor:pointer}.btn-cobrar:hover{background:var(--primary-hover)}.sales-history{display:grid;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.sales-history-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.sales-history-head h3{margin:0;color:var(--text-primary);font-size:var(--text-lg)}.sales-history-head span,.sale-total{color:var(--text-primary);font-weight:var(--font-semibold)}.sale-actions{display:grid;gap:var(--space-2);justify-items:end}.btn-link{background:none;border:0;padding:0;cursor:pointer;font-size:var(--text-sm);color:var(--primary);font-weight:var(--font-medium)}.anulacion-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.label{display:block;color:var(--text-secondary);font-size:var(--text-xs);margin-bottom:var(--space-1);text-transform:uppercase;letter-spacing:.04em}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-weight:var(--font-semibold);text-decoration:none}.btn-danger{background:var(--color-danger-subtle);color:var(--color-danger-text);border:0;border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-weight:var(--font-semibold);cursor:pointer}.btn-danger:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.page{padding:var(--space-4)}.pos-layout,.prod-grid,.anulacion-summary{grid-template-columns:1fr}.cart-item,.sale-item{flex-direction:column}.sale-actions{justify-items:start}}:host{display:block}.page{max-width:var(--content-max);margin:0 auto;padding:var(--space-6) var(--space-4);display:grid;gap:var(--space-5)}.header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap}.header-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}h1{margin:0;color:var(--text-primary);font-size:var(--text-5xl);font-weight:var(--font-bold)}.subtitle{margin:var(--space-1) 0 0;color:var(--text-secondary);font-size:var(--text-md)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-4)}.filters{display:grid;grid-template-columns:1fr 220px;gap:var(--space-4)}.field{display:flex;flex-direction:column}input,select{background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-input);padding:var(--space-3) var(--space-4)}input:focus-visible,select:focus-visible{border-color:var(--primary);box-shadow:var(--shadow-focus);outline:none}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--border-muted);color:var(--text-primary);text-align:left}th{color:var(--text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--font-medium)}tr:hover td{background:var(--bg-row-hover)}.desc{margin:var(--space-1) 0 0;color:var(--text-secondary);font-size:var(--text-xs)}.stock-badge{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);background:var(--color-success-subtle);color:var(--color-success-text);font-size:var(--text-xs);font-weight:var(--font-semibold)}.stock-badge.low{background:var(--color-danger-subtle);color:var(--color-danger-text)}.low-label{margin-left:var(--space-2);font-size:var(--text-xs);color:var(--color-danger-text)}.actions-cell{display:flex;gap:var(--space-3);align-items:center}.btn-primary{background:var(--primary);color:var(--text-on-primary);border:0;border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-weight:var(--font-semibold);cursor:pointer;text-decoration:none;display:inline-flex}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-weight:var(--font-semibold);cursor:pointer;text-decoration:none;display:inline-flex}.btn-link{background:none;border:0;padding:0;cursor:pointer;font-size:var(--text-sm);color:var(--primary);font-weight:var(--font-medium);text-decoration:none}.btn-link:hover{text-decoration:underline}.btn-link.danger{color:var(--color-danger-text)}.banner{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-success-banner);color:var(--color-success-text)}.banner.error{background:var(--color-danger-banner);color:var(--color-danger-text)}.empty{color:var(--text-secondary);text-align:center;padding:var(--space-8) 0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.modal-backdrop{position:fixed;inset:0;background:var(--bg-overlay);z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-5);width:100%;max-width:420px;display:flex;flex-direction:column;gap:var(--space-4)}.modal h2{margin:0;color:var(--text-primary);font-size:var(--text-xl);font-weight:var(--font-semibold)}.modal-stock{margin:0;color:var(--text-secondary);font-size:var(--text-sm)}.modal-stock strong{color:var(--text-primary)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-3)}.btn-secondary{background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-weight:var(--font-semibold);cursor:pointer}.btn-secondary:hover{background:var(--bg-elevated)}.confirm-text{margin:0;color:var(--text-primary);font-size:var(--text-lg);font-weight:var(--font-semibold)}.confirm-subtext{margin:var(--space-1) 0 0;color:var(--text-secondary)}@media(max-width:768px){.filters{grid-template-columns:1fr}.page{padding:var(--space-4)}.actions-cell,.modal-actions{flex-direction:column;align-items:stretch}.actions-cell>*,.modal-actions>*{width:100%}}html,body{width:100%;min-height:100%;margin:0;background:var(--bg-primary, #0f172a);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}body{color:var(--text-primary, #f1f5f9);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}app-root{display:block;min-height:100vh}
