:root{--color-primary-50:#eff6ff;--color-primary-100:#dbeafe;--color-primary-200:#bfdbfe;--color-primary-300:#93c5fd;--color-primary-400:#60a5fa;--color-primary-500:#3b82f6;--color-primary-600:#2563eb;--color-primary-700:#1d4ed8;--color-primary-800:#1e40af;--color-primary-900:#1e3a8a;--color-primary-950:#172554;--color-success-50:#f0fdf4;--color-success-100:#dcfce7;--color-success-200:#bbf7d0;--color-success-300:#86efac;--color-success-400:#4ade80;--color-success-500:#22c55e;--color-success-600:#16a34a;--color-success-700:#15803d;--color-success-800:#166534;--color-success-900:#14532d;--color-success-950:#052e16;--color-warning-50:#fffbeb;--color-warning-100:#fef3c7;--color-warning-200:#fde68a;--color-warning-300:#fcd34d;--color-warning-400:#fbbf24;--color-warning-500:#f59e0b;--color-warning-600:#d97706;--color-warning-700:#b45309;--color-warning-800:#92400e;--color-warning-900:#78350f;--color-warning-950:#451a03;--color-error-50:#fef2f2;--color-error-100:#fee2e2;--color-error-200:#fecaca;--color-error-300:#fca5a5;--color-error-400:#f87171;--color-error-500:#ef4444;--color-error-600:#dc2626;--color-error-700:#b91c1c;--color-error-800:#991b1b;--color-error-900:#7f1d1d;--color-error-950:#450a0a;--color-info-50:#ecfeff;--color-info-100:#cffafe;--color-info-200:#a5f3fc;--color-info-300:#67e8f9;--color-info-400:#22d3ee;--color-info-500:#06b6d4;--color-info-600:#0891b2;--color-info-700:#0e7490;--color-info-800:#155e75;--color-info-900:#164e63;--color-info-950:#083344;--color-neutral-0:#fff;--color-neutral-50:#f9fafb;--color-neutral-100:#f3f4f6;--color-neutral-200:#e5e7eb;--color-neutral-300:#d1d5db;--color-neutral-400:#9ca3af;--color-neutral-500:#6b7280;--color-neutral-600:#4b5563;--color-neutral-700:#374151;--color-neutral-800:#1f2937;--color-neutral-900:#111827;--color-neutral-950:#030712;--text-primary:var(--color-neutral-900);--text-secondary:var(--color-neutral-700);--text-tertiary:var(--color-neutral-500);--text-disabled:var(--color-neutral-400);--text-inverse:var(--color-neutral-0);--text-link:var(--color-primary-600);--text-link-hover:var(--color-primary-700);--text-success:var(--color-success-700);--text-warning:var(--color-warning-700);--text-error:var(--color-error-700);--text-info:var(--color-info-700);--bg-primary:var(--color-neutral-0);--bg-secondary:var(--color-neutral-50);--bg-tertiary:var(--color-neutral-100);--bg-elevated:var(--color-neutral-0);--bg-overlay:rgba(0,0,0,.5);--bg-primary-solid:var(--color-primary-600);--bg-primary-hover:var(--color-primary-700);--bg-primary-subtle:var(--color-primary-50);--bg-success-solid:var(--color-success-600);--bg-success-hover:var(--color-success-700);--bg-success-subtle:var(--color-success-50);--bg-warning-solid:var(--color-warning-600);--bg-warning-hover:var(--color-warning-700);--bg-warning-subtle:var(--color-warning-50);--bg-error-solid:var(--color-error-600);--bg-error-hover:var(--color-error-700);--bg-error-subtle:var(--color-error-50);--border-primary:var(--color-neutral-200);--border-secondary:var(--color-neutral-300);--border-focus:var(--color-primary-600);--border-error:var(--color-error-300);--border-success:var(--color-success-300);--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);--shadow-focus:0 0 0 3px rgba(37,99,235,.1)}@media (prefers-color-scheme:dark){:root{--text-primary:var(--color-neutral-50);--text-secondary:var(--color-neutral-200);--text-tertiary:var(--color-neutral-400);--text-disabled:var(--color-neutral-500);--text-inverse:var(--color-neutral-900);--text-link:var(--color-primary-400);--text-link-hover:var(--color-primary-300);--text-success:var(--color-success-400);--text-warning:var(--color-warning-400);--text-error:var(--color-error-400);--text-info:var(--color-info-400);--bg-primary:var(--color-neutral-900);--bg-secondary:var(--color-neutral-800);--bg-tertiary:var(--color-neutral-700);--bg-elevated:var(--color-neutral-800);--bg-overlay:rgba(0,0,0,.75);--bg-primary-solid:var(--color-primary-600);--bg-primary-hover:var(--color-primary-500);--bg-primary-subtle:var(--color-primary-950);--bg-success-solid:var(--color-success-600);--bg-success-hover:var(--color-success-500);--bg-success-subtle:var(--color-success-950);--bg-warning-solid:var(--color-warning-600);--bg-warning-hover:var(--color-warning-500);--bg-warning-subtle:var(--color-warning-950);--bg-error-solid:var(--color-error-600);--bg-error-hover:var(--color-error-500);--bg-error-subtle:var(--color-error-950);--border-primary:var(--color-neutral-700);--border-secondary:var(--color-neutral-600);--border-focus:var(--color-primary-400);--border-error:var(--color-error-600);--border-success:var(--color-success-600);--shadow-sm:0 1px 2px 0 rgba(0,0,0,.3);--shadow-md:0 4px 6px -1px rgba(0,0,0,.4),0 2px 4px -1px rgba(0,0,0,.25);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.5),0 4px 6px -2px rgba(0,0,0,.3);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.6),0 10px 10px -5px rgba(0,0,0,.4);--shadow-focus:0 0 0 3px rgba(96,165,250,.2)}}@media (prefers-contrast:high){:root{--text-primary:var(--color-neutral-950);--text-secondary:var(--color-neutral-800);--text-tertiary:var(--color-neutral-700);--text-link:var(--color-primary-700);--text-link-hover:var(--color-primary-800);--border-primary:var(--color-neutral-400);--border-secondary:var(--color-neutral-500);--border-focus:var(--color-primary-700);--shadow-focus:0 0 0 4px rgba(37,99,235,.3)}}@media (prefers-contrast:high) and (prefers-color-scheme:dark){:root{--text-primary:var(--color-neutral-0);--text-secondary:var(--color-neutral-100);--text-tertiary:var(--color-neutral-300);--text-link:var(--color-primary-300);--text-link-hover:var(--color-primary-200);--border-primary:var(--color-neutral-500);--border-secondary:var(--color-neutral-400);--border-focus:var(--color-primary-300);--shadow-focus:0 0 0 4px rgba(96,165,250,.4)}}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-disabled{color:var(--text-disabled)}.text-inverse{color:var(--text-inverse)}.text-link{color:var(--text-link)}.text-link:hover{color:var(--text-link-hover)}.text-success{color:var(--text-success)}.text-warning{color:var(--text-warning)}.text-error{color:var(--text-error)}.text-info{color:var(--text-info)}.bg-primary{background-color:var(--bg-primary)}.bg-secondary{background-color:var(--bg-secondary)}.bg-tertiary{background-color:var(--bg-tertiary)}.bg-elevated{background-color:var(--bg-elevated)}.bg-primary-solid{background-color:var(--bg-primary-solid);color:var(--text-inverse)}.bg-primary-solid:hover{background-color:var(--bg-primary-hover)}.bg-primary-subtle{background-color:var(--bg-primary-subtle)}.bg-success-solid{background-color:var(--bg-success-solid);color:var(--text-inverse)}.bg-success-solid:hover{background-color:var(--bg-success-hover)}.bg-success-subtle{background-color:var(--bg-success-subtle)}.bg-warning-solid{background-color:var(--bg-warning-solid);color:var(--text-inverse)}.bg-warning-solid:hover{background-color:var(--bg-warning-hover)}.bg-warning-subtle{background-color:var(--bg-warning-subtle)}.bg-error-solid{background-color:var(--bg-error-solid);color:var(--text-inverse)}.bg-error-solid:hover{background-color:var(--bg-error-hover)}.bg-error-subtle{background-color:var(--bg-error-subtle)}.border-primary{border-color:var(--border-primary)}.border-secondary{border-color:var(--border-secondary)}.border-focus{border-color:var(--border-focus)}.border-error{border-color:var(--border-error)}.border-success{border-color:var(--border-success)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.shadow-focus{box-shadow:var(--shadow-focus)}.btn{padding:8px 16px;border-radius:6px;font-weight:500;transition:all .15s ease-in-out;border:1px solid transparent;outline:none}.btn:focus-visible{outline:3px solid var(--border-focus);outline-offset:2px}.btn-primary{background-color:var(--bg-primary-solid);color:var(--text-inverse);border-color:var(--bg-primary-solid)}.btn-primary:hover:not(:disabled){background-color:var(--bg-primary-hover);border-color:var(--bg-primary-hover)}.btn-success{background-color:var(--bg-success-solid);color:var(--text-inverse);border-color:var(--bg-success-solid)}.btn-success:hover:not(:disabled){background-color:var(--bg-success-hover);border-color:var(--bg-success-hover)}.btn-warning{background-color:var(--bg-warning-solid);color:var(--text-inverse);border-color:var(--bg-warning-solid)}.btn-warning:hover:not(:disabled){background-color:var(--bg-warning-hover);border-color:var(--bg-warning-hover)}.btn-error{background-color:var(--bg-error-solid);color:var(--text-inverse);border-color:var(--bg-error-solid)}.btn-error:hover:not(:disabled){background-color:var(--bg-error-hover);border-color:var(--bg-error-hover)}.btn-secondary{background-color:var(--bg-primary);color:var(--text-primary);border-color:var(--border-secondary)}.btn-secondary:hover:not(:disabled){background-color:var(--bg-secondary);border-color:var(--border-focus)}.btn:disabled{opacity:.6;cursor:not-allowed}.input{padding:8px 12px;border:1px solid var(--border-primary);border-radius:6px;background-color:var(--bg-primary);color:var(--text-primary);font-size:14px;transition:all .15s ease-in-out;outline:none}.input:focus{border-color:var(--border-focus);box-shadow:var(--shadow-focus)}.input.error{border-color:var(--border-error)}.input.error:focus{border-color:var(--text-error);box-shadow:0 0 0 3px rgba(239,68,68,.1)}.status-success{background-color:var(--bg-success-subtle);color:var(--text-success);border:1px solid var(--border-success);padding:12px;border-radius:6px}.status-warning{background-color:var(--bg-warning-subtle);color:var(--text-warning);border:1px solid var(--color-warning-300);padding:12px;border-radius:6px}.status-error{background-color:var(--bg-error-subtle);color:var(--text-error);border:1px solid var(--border-error);padding:12px;border-radius:6px}.status-info{background-color:var(--bg-primary-subtle);color:var(--text-link);border:1px solid var(--color-primary-200);padding:12px;border-radius:6px}:root{--product-card-padding-sm:12px;--product-card-padding-md:16px;--product-card-padding-lg:20px;--product-card-gap-sm:8px;--product-card-gap-md:12px;--product-card-gap-lg:16px;--touch-target-min:44px;--touch-target-comfortable:48px;--product-card-radius-sm:8px;--product-card-radius-md:12px;--product-card-radius-lg:16px;--product-card-shadow-sm:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);--product-card-shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);--product-card-shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);--product-card-shadow-hover:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);--product-card-transition:all 0.2s cubic-bezier(0.4,0,0.2,1);--product-card-transform-hover:translateY(-2px);--product-image-aspect-ratio:16/9;--product-image-aspect-ratio-square:1/1;--product-image-aspect-ratio-portrait:3/4;--badge-chip-padding-x:8px;--badge-chip-padding-y:4px;--badge-chip-gap:6px;--badge-chip-radius:12px;--badge-chip-font-size:0.75rem;--badge-chip-font-weight:500;--price-pill-padding-x:12px;--price-pill-padding-y:6px;--price-pill-radius:8px;--price-pill-font-size:0.875rem;--price-pill-font-size-md:1rem;--price-pill-font-weight:600;--price-pill-bg:var(--bg-primary);--price-pill-border:1px solid var(--border-primary);--review-star-size:14px;--review-star-size-md:16px;--review-star-gap:2px;--review-star-color:var(--color-warning-500);--review-star-color-empty:var(--color-neutral-300);--product-title-size-mobile:1rem;--product-title-size-tablet:1.125rem;--product-title-size-desktop:1.25rem;--product-description-size-mobile:0.875rem;--product-description-size-tablet:0.9375rem}@media (prefers-color-scheme:dark){:root{--product-card-shadow-sm:0 1px 3px 0 rgba(0,0,0,.3),0 1px 2px 0 rgba(0,0,0,.2);--product-card-shadow-md:0 4px 6px -1px rgba(0,0,0,.4),0 2px 4px -1px rgba(0,0,0,.25);--product-card-shadow-lg:0 10px 15px -3px rgba(0,0,0,.5),0 4px 6px -2px rgba(0,0,0,.3);--product-card-shadow-hover:0 20px 25px -5px rgba(0,0,0,.6),0 10px 10px -5px rgba(0,0,0,.4);--review-star-color-empty:var(--color-neutral-600)}}.product-card{padding:var(--product-card-padding-md);border-radius:var(--product-card-radius-md);box-shadow:var(--product-card-shadow-sm);transition:var(--product-card-transition);min-height:var(--touch-target-min)}@media (hover:hover) and (pointer:fine){.product-card:hover{box-shadow:var(--product-card-shadow-hover);transform:var(--product-card-transform-hover)}}@media (hover:none) and (pointer:coarse){.product-card:active{box-shadow:var(--product-card-shadow-md);transform:scale(.98)}}.product-card-elevated{box-shadow:var(--product-card-shadow-md)}.product-card-elevated:hover{box-shadow:var(--product-card-shadow-lg)}.badge-chip{padding:var(--badge-chip-padding-y) var(--badge-chip-padding-x);border-radius:var(--badge-chip-radius);font-size:var(--badge-chip-font-size);font-weight:var(--badge-chip-font-weight);gap:var(--badge-chip-gap)}.badge-chip,.price-pill{display:inline-flex;align-items:center}.price-pill{padding:var(--price-pill-padding-y) var(--price-pill-padding-x);border-radius:var(--price-pill-radius);font-size:var(--price-pill-font-size);font-weight:var(--price-pill-font-weight);background-color:var(--price-pill-bg);border:var(--price-pill-border);gap:4px}@media (min-width:768px){.price-pill{font-size:var(--price-pill-font-size-md)}}:focus{outline:none!important}:focus-visible{outline:3px solid #2563eb!important;outline-offset:2px!important;border-radius:4px!important;box-shadow:0 0 0 1px rgba(37,99,235,.1)!important;transition:outline .15s ease-in-out,box-shadow .15s ease-in-out!important}@media (prefers-contrast:high){:focus-visible{outline:4px solid currentColor!important;outline-offset:2px!important;background-color:HighlightText!important;color:Highlight!important}}@media (prefers-reduced-motion:reduce){:focus-visible{transition:none!important}}[role=button]:focus-visible,button:focus-visible{outline:3px solid #2563eb!important;outline-offset:2px!important;box-shadow:0 0 0 1px rgba(37,99,235,.1),0 0 0 4px rgba(37,99,235,.15)!important}.bg-blue-500:focus-visible,.bg-blue-600:focus-visible,button.btn-primary:focus-visible{outline:3px solid #fbbf24!important;outline-offset:2px!important;box-shadow:0 0 0 1px rgba(251,191,36,.2),0 0 0 4px rgba(251,191,36,.25)!important}.bg-green-500:focus-visible,.bg-green-600:focus-visible{outline:3px solid #f59e0b!important;outline-offset:2px!important;box-shadow:0 0 0 1px rgba(245,158,11,.2),0 0 0 4px rgba(245,158,11,.25)!important}.bg-red-500:focus-visible,.bg-red-600:focus-visible{outline:3px solid #06b6d4!important;outline-offset:2px!important;box-shadow:0 0 0 1px rgba(6,182,212,.2),0 0 0 4px rgba(6,182,212,.25)!important}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #2563eb!important;outline-offset:1px!important;border-color:#2563eb!important;box-shadow:0 0 0 1px #2563eb,0 0 0 4px rgba(37,99,235,.15)!important}.border-red-300:focus-visible,input.error:focus-visible,input[aria-invalid=true]:focus-visible{outline:3px solid #dc2626!important;outline-offset:1px!important;border-color:#dc2626!important;box-shadow:0 0 0 1px #dc2626,0 0 0 4px rgba(220,38,38,.15)!important}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:3px solid #2563eb!important;outline-offset:2px!important;box-shadow:0 0 0 1px rgba(37,99,235,.1),0 0 0 4px rgba(37,99,235,.15)!important}a:focus-visible{outline:3px solid #2563eb!important;outline-offset:2px!important;border-radius:2px!important;background-color:rgba(37,99,235,.1)!important;box-shadow:0 0 0 1px rgba(37,99,235,.1)!important}.skip-link{position:absolute!important;top:-100px!important;left:16px!important;z-index:9999!important;padding:12px 20px!important;background:#1f2937!important;color:#fff!important;text-decoration:none!important;border-radius:6px!important;font-weight:600!important;font-size:16px!important;line-height:1.5!important;transition:top .2s ease-in-out!important;border:2px solid transparent!important}.skip-link:focus,.skip-link:focus-visible{top:16px!important;outline:3px solid #fbbf24!important;outline-offset:2px!important;border-color:#fbbf24!important;box-shadow:0 0 0 1px rgba(251,191,36,.2),0 4px 12px rgba(0,0,0,.15)!important}.skip-link+.skip-link{left:auto!important;right:16px!important}.skip-link+.skip-link:focus,.skip-link+.skip-link:focus-visible{right:16px!important}[aria-modal=true]:focus-visible,[role=dialog]:focus-visible{outline:none!important}.modal-close:focus-visible,[role=dialog] button[aria-label*=Close]:focus-visible,[role=dialog] button[aria-label*=close]:focus-visible{outline:3px solid #dc2626!important;outline-offset:2px!important;border-radius:50%!important;box-shadow:0 0 0 1px rgba(220,38,38,.1),0 0 0 4px rgba(220,38,38,.15)!important}.border:focus-within,.card:focus-within{border-color:rgba(37,99,235,.3)!important;box-shadow:0 0 0 1px rgba(37,99,235,.1)!important}form:focus-within{position:relative}form:focus-within:before{content:"";position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;border:2px solid rgba(37,99,235,.2);border-radius:8px;pointer-events:none;z-index:-1}[role=listitem]:focus-visible,li:focus-visible{outline:2px solid #2563eb!important;outline-offset:1px!important;background-color:rgba(37,99,235,.05)!important;border-radius:4px!important}[role=cell]:focus-visible,[role=gridcell]:focus-visible{outline:2px solid #2563eb!important;outline-offset:-1px!important;background-color:rgba(37,99,235,.1)!important;z-index:1!important}[role=tab]:focus-visible{outline:3px solid #2563eb!important;outline-offset:-2px!important;z-index:10!important}[role=tab][aria-selected=true]:focus-visible{outline-color:#059669!important}[aria-busy=true]:focus-visible{outline:2px solid hsla(220,9%,46%,.5)!important;outline-offset:1px!important}:disabled:focus-visible,[aria-disabled=true]:focus-visible{outline:2px dashed hsla(220,9%,46%,.5)!important;outline-offset:1px!important}@keyframes focus-pulse{0%{box-shadow:0 0 0 0 rgba(37,99,235,.4)}70%{box-shadow:0 0 0 8px rgba(37,99,235,0)}to{box-shadow:0 0 0 0 rgba(37,99,235,0)}}.btn-critical:focus-visible,[data-focus-pulse]:focus-visible{animation:focus-pulse 1.5s ease-in-out}@media (prefers-reduced-motion:reduce){.btn-critical:focus-visible,[data-focus-pulse]:focus-visible{animation:none!important}}.sr-focus-indicator{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-focus-indicator:focus{position:static;width:auto;height:auto;padding:8px 12px;margin:0;overflow:visible;clip:auto;white-space:normal;background:#1f2937;color:#fff;border:2px solid #fbbf24;border-radius:4px;font-weight:600;z-index:9999}.focus-trap-boundary:focus-within{position:relative}.focus-trap-boundary:focus-within:after{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;border:2px dashed rgba(37,99,235,.3);border-radius:8px;pointer-events:none;z-index:-1}@media (pointer:coarse){a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-width:4px!important;outline-offset:3px!important}.skip-link:focus,.skip-link:focus-visible{padding:16px 24px!important;font-size:18px!important}}@media (max-width:640px){.skip-link:focus,.skip-link:focus-visible{left:8px!important;right:8px!important;width:calc(100% - 16px)!important;text-align:center!important}}@media (prefers-color-scheme:dark){:focus-visible{outline-color:#60a5fa!important;box-shadow:0 0 0 1px rgba(96,165,250,.2)!important}.bg-blue-600:focus-visible,button.btn-primary:focus-visible{outline-color:#fcd34d!important;box-shadow:0 0 0 1px rgba(252,211,77,.3),0 0 0 4px rgba(252,211,77,.15)!important}.skip-link{background:#374151!important;border-color:#6b7280!important}.skip-link:focus,.skip-link:focus-visible{background:#1f2937!important;border-color:#fcd34d!important;outline-color:#fcd34d!important}}@media print{:focus-visible{outline:2px solid #000!important;outline-offset:1px!important;box-shadow:none!important}.skip-link,.sr-focus-indicator{display:none!important}}.focus-hidden:focus,.focus-hidden:focus-visible{outline:none!important;box-shadow:none!important}.focus-enhanced:focus-visible{outline-width:4px!important;outline-offset:3px!important;box-shadow:0 0 0 2px rgba(37,99,235,.2),0 0 0 6px rgba(37,99,235,.1)!important}.focus-offset-0:focus-visible{outline-offset:0!important}.focus-offset-1:focus-visible{outline-offset:1px!important}.focus-offset-2:focus-visible{outline-offset:2px!important}.focus-offset-4:focus-visible{outline-offset:4px!important}