@charset "UTF-8";:root{--safe-area-inset-top: env(safe-area-inset-top, 44px);--safe-area-inset-right: env(safe-area-inset-right, 0px);--safe-area-inset-bottom: env(safe-area-inset-bottom, 12px);--safe-area-inset-left: env(safe-area-inset-left, 0px);--color-primary: #4d8def;--color-primary-hover: #3a7be0;--color-primary-active: #2a6ad0;--color-accent: #ff6b6b;--color-accent-hover: #ff5252;--color-accent-active: #ff3838;--color-success: #4caf50;--color-success-hover: #43a047;--color-warning: #ff9800;--color-error: #f44336;--color-background: #ffffff;--color-surface: #f8f9fa;--color-surface-elevated: #ffffff;--color-text-primary: #212529;--color-text-secondary: #495057;--color-text-disabled: #6c757d;--color-border: #dee2e6;--color-divider: #e9ecef;--color-chip-bg: #f0f0f0;--chip-text-color: var(--color-text-primary);--icon-invert: 0;--color-ah: #00a0df;--color-jumbo: #ffcc00;--color-aldi: #0064CD;--color-plus: #c60c0f;--shadow-small: 0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.24);--shadow-medium: 0 3px 6px rgba(0,0,0,.15), 0 2px 4px rgba(0,0,0,.12);--shadow-large: 0 10px 20px rgba(0,0,0,.15), 0 3px 6px rgba(0,0,0,.1);--space-xxs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-xxl: 3rem;--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-family-headings: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-size-xxs: .625rem;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-xxl: 1.5rem;--font-size-xxxl: 2rem;--font-size-base: 1rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-loose: 1.8;--border-radius-sm: .25rem;--border-radius-md: .5rem;--border-radius-lg: 1rem;--border-radius-pill: 9999px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--container-max-width: 1200px;--grid-columns: 12;--grid-gutter: var(--space-md);--color-primary-rgb: 77, 141, 239;--color-primary-translucent: rgba(77, 141, 239, .1);--color-accent-translucent: rgba(255, 107, 107, .1);--focus-ring-color: rgba(77, 141, 239, .4);--color-primary-50: #f0f4ff;--color-primary-100: #e1eaff;--color-primary-200: #c7d6fe;--color-primary-700: #2563eb;--color-primary-800: #1d4ed8;--color-primary-50-rgb: 240, 244, 255;--color-primary-100-rgb: 225, 234, 255;--color-success-50: #f0fdf4;--color-success-100: #dcfce7;--color-success-200: #bbf7d0;--color-success-700: #15803d;--color-success-800: #166534;--color-success-50-rgb: 240, 253, 244;--color-success-100-rgb: 220, 252, 231;--color-danger-50: #fef2f2;--color-danger-100: #fee2e2;--color-danger-200: #fecaca;--color-danger-300: #fca5a5;--color-danger-600: #dc2626;--color-danger-700: #b91c1c;--card-background: var(--color-surface-elevated);--card-border: var(--color-border)}@media all and (display-mode:standalone){html{height:100%;overscroll-behavior-y:none}body{height:100%;display:flex;flex-direction:column;margin:0;padding:0}.main{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:calc(var(--space-xxl) + env(safe-area-inset-bottom))}}*,*:before,*:after{box-sizing:border-box}html,body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0;padding:0}html{overscroll-behavior-y:none}body.no-scroll{overflow:hidden;position:fixed;width:100%}body{min-height:100vh;scroll-behavior:smooth;text-rendering:optimizeSpeed;line-height:var(--line-height-normal);font-family:var(--font-family-base);font-size:var(--font-size-md);color:var(--color-text-primary);background-color:var(--color-background);transition:background-color var(--transition-normal),color var(--transition-normal);overscroll-behavior-y:none;overflow-anchor:none}ul[class],ol[class]{list-style:none;padding:0}ul:not([class]),ol:not([class]){padding-left:1.5em}img:not(.shop-filter__icon img),picture{max-width:100%;display:block}.shop-filter__icon img{max-width:100%;max-height:100%;display:inline;object-fit:contain}input,button,textarea,select{font:inherit}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:focus-visible{outline:3px solid var(--focus-ring-color);outline-offset:2px}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.theme-transition{transition:color var(--transition-normal),background-color var(--transition-normal),border-color var(--transition-normal),box-shadow var(--transition-normal)}.skip-links{position:absolute;top:0;left:0;z-index:9999}.skip-links .skip-link{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden;background-color:var(--color-primary);color:#fff;padding:var(--space-sm) var(--space-md);border-radius:var(--border-radius-sm);text-decoration:none;font-weight:var(--font-weight-medium);box-shadow:var(--shadow-large);transition:all var(--transition-fast)}.skip-links .skip-link:focus{position:fixed;left:var(--space-sm);top:var(--space-sm);width:auto;height:auto;overflow:visible;z-index:10000;outline:2px solid var(--color-accent);outline-offset:2px}.skip-links .skip-link:hover{background-color:var(--color-primary-hover);transform:translateY(-1px)}body{font-family:var(--font-family-base);font-size:var(--font-size-md);line-height:var(--line-height-normal);color:var(--color-text-primary)}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-headings);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);margin-bottom:var(--space-md);color:var(--color-text-primary)}h1{font-size:var(--font-size-xxxl)}h2{font-size:var(--font-size-xxl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}h5{font-size:var(--font-size-md);font-weight:var(--font-weight-bold)}h6{font-size:var(--font-size-md);font-weight:var(--font-weight-medium)}p{margin-bottom:var(--space-md);max-width:70ch}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover);text-decoration:underline}a:active{color:var(--color-primary-active)}small,.text-small{font-size:var(--font-size-sm)}@media(min-width:768px){html{font-size:112.5%}}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.d-block{display:block}.d-inline{display:inline}.d-inline-block{display:inline-block}.d-flex{display:flex}.d-grid{display:grid}.d-none{display:none}.visible{visibility:visible}.invisible{visibility:hidden}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.flex-row{flex-direction:row}.flex-column{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.justify-content-start{justify-content:flex-start}.justify-content-end{justify-content:flex-end}.justify-content-center{justify-content:center}.justify-content-between{justify-content:space-between}.justify-content-around{justify-content:space-around}.justify-content-evenly{justify-content:space-evenly}.align-items-start{align-items:flex-start}.align-items-end{align-items:flex-end}.align-items-center{align-items:center}.align-items-baseline{align-items:baseline}.align-items-stretch{align-items:stretch}.align-self-start{align-self:flex-start}.align-self-end{align-self:flex-end}.align-self-center{align-self:center}.align-self-baseline{align-self:baseline}.align-self-stretch{align-self:stretch}.gap-xxs{gap:var(--space-xxs)}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.gap-xl{gap:var(--space-xl)}.gap-xxl{gap:var(--space-xxl)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.font-regular{font-weight:var(--font-weight-regular)}.font-medium{font-weight:var(--font-weight-medium)}.font-bold{font-weight:var(--font-weight-bold)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-md{font-size:var(--font-size-md)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-xxl{font-size:var(--font-size-xxl)}.text-xxxl{font-size:var(--font-size-xxxl)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-disabled{color:var(--color-text-disabled)}.text-accent{color:var(--color-accent)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.bg-background{background-color:var(--color-background)}.bg-surface{background-color:var(--color-surface)}.bg-elevated{background-color:var(--color-surface-elevated)}.bg-primary{background-color:var(--color-primary)}.bg-accent{background-color:var(--color-accent)}.bg-success{background-color:var(--color-success)}.bg-warning{background-color:var(--color-warning)}.bg-error{background-color:var(--color-error)}.m-xxs{margin:var(--space-xxs)}.mt-xxs{margin-top:var(--space-xxs)}.mr-xxs{margin-right:var(--space-xxs)}.mb-xxs{margin-bottom:var(--space-xxs)}.ml-xxs{margin-left:var(--space-xxs)}.mx-xxs{margin-left:var(--space-xxs);margin-right:var(--space-xxs)}.my-xxs{margin-top:var(--space-xxs);margin-bottom:var(--space-xxs)}.m-xs{margin:var(--space-xs)}.mt-xs{margin-top:var(--space-xs)}.mr-xs{margin-right:var(--space-xs)}.mb-xs{margin-bottom:var(--space-xs)}.ml-xs{margin-left:var(--space-xs)}.mx-xs{margin-left:var(--space-xs);margin-right:var(--space-xs)}.my-xs{margin-top:var(--space-xs);margin-bottom:var(--space-xs)}.m-sm{margin:var(--space-sm)}.mt-sm{margin-top:var(--space-sm)}.mr-sm{margin-right:var(--space-sm)}.mb-sm{margin-bottom:var(--space-sm)}.ml-sm{margin-left:var(--space-sm)}.mx-sm{margin-left:var(--space-sm);margin-right:var(--space-sm)}.my-sm{margin-top:var(--space-sm);margin-bottom:var(--space-sm)}.m-md{margin:var(--space-md)}.mt-md{margin-top:var(--space-md)}.mr-md{margin-right:var(--space-md)}.mb-md{margin-bottom:var(--space-md)}.ml-md{margin-left:var(--space-md)}.mx-md{margin-left:var(--space-md);margin-right:var(--space-md)}.my-md{margin-top:var(--space-md);margin-bottom:var(--space-md)}.m-lg{margin:var(--space-lg)}.mt-lg{margin-top:var(--space-lg)}.mr-lg{margin-right:var(--space-lg)}.mb-lg{margin-bottom:var(--space-lg)}.ml-lg{margin-left:var(--space-lg)}.mx-lg{margin-left:var(--space-lg);margin-right:var(--space-lg)}.my-lg{margin-top:var(--space-lg);margin-bottom:var(--space-lg)}.m-xl{margin:var(--space-xl)}.mt-xl{margin-top:var(--space-xl)}.mr-xl{margin-right:var(--space-xl)}.mb-xl{margin-bottom:var(--space-xl)}.ml-xl{margin-left:var(--space-xl)}.mx-xl{margin-left:var(--space-xl);margin-right:var(--space-xl)}.my-xl{margin-top:var(--space-xl);margin-bottom:var(--space-xl)}.m-xxl{margin:var(--space-xxl)}.mt-xxl{margin-top:var(--space-xxl)}.mr-xxl{margin-right:var(--space-xxl)}.mb-xxl{margin-bottom:var(--space-xxl)}.ml-xxl{margin-left:var(--space-xxl)}.mx-xxl{margin-left:var(--space-xxl);margin-right:var(--space-xxl)}.my-xxl{margin-top:var(--space-xxl);margin-bottom:var(--space-xxl)}.mx-auto{margin-left:auto;margin-right:auto}.p-xxs{padding:var(--space-xxs)}.pt-xxs{padding-top:var(--space-xxs)}.pr-xxs{padding-right:var(--space-xxs)}.pb-xxs{padding-bottom:var(--space-xxs)}.pl-xxs{padding-left:var(--space-xxs)}.px-xxs{padding-left:var(--space-xxs);padding-right:var(--space-xxs)}.py-xxs{padding-top:var(--space-xxs);padding-bottom:var(--space-xxs)}.p-xs{padding:var(--space-xs)}.pt-xs{padding-top:var(--space-xs)}.pr-xs{padding-right:var(--space-xs)}.pb-xs{padding-bottom:var(--space-xs)}.pl-xs{padding-left:var(--space-xs)}.px-xs{padding-left:var(--space-xs);padding-right:var(--space-xs)}.py-xs{padding-top:var(--space-xs);padding-bottom:var(--space-xs)}.p-sm{padding:var(--space-sm)}.pt-sm{padding-top:var(--space-sm)}.pr-sm{padding-right:var(--space-sm)}.pb-sm{padding-bottom:var(--space-sm)}.pl-sm{padding-left:var(--space-sm)}.px-sm{padding-left:var(--space-sm);padding-right:var(--space-sm)}.py-sm{padding-top:var(--space-sm);padding-bottom:var(--space-sm)}.p-md{padding:var(--space-md)}.pt-md{padding-top:var(--space-md)}.pr-md{padding-right:var(--space-md)}.pb-md{padding-bottom:var(--space-md)}.pl-md{padding-left:var(--space-md)}.px-md{padding-left:var(--space-md);padding-right:var(--space-md)}.py-md{padding-top:var(--space-md);padding-bottom:var(--space-md)}.p-lg{padding:var(--space-lg)}.pt-lg{padding-top:var(--space-lg)}.pr-lg{padding-right:var(--space-lg)}.pb-lg{padding-bottom:var(--space-lg)}.pl-lg{padding-left:var(--space-lg)}.px-lg{padding-left:var(--space-lg);padding-right:var(--space-lg)}.py-lg{padding-top:var(--space-lg);padding-bottom:var(--space-lg)}.p-xl{padding:var(--space-xl)}.pt-xl{padding-top:var(--space-xl)}.pr-xl{padding-right:var(--space-xl)}.pb-xl{padding-bottom:var(--space-xl)}.pl-xl{padding-left:var(--space-xl)}.px-xl{padding-left:var(--space-xl);padding-right:var(--space-xl)}.py-xl{padding-top:var(--space-xl);padding-bottom:var(--space-xl)}.p-xxl{padding:var(--space-xxl)}.pt-xxl{padding-top:var(--space-xxl)}.pr-xxl{padding-right:var(--space-xxl)}.pb-xxl{padding-bottom:var(--space-xxl)}.pl-xxl{padding-left:var(--space-xxl)}.px-xxl{padding-left:var(--space-xxl);padding-right:var(--space-xxl)}.py-xxl{padding-top:var(--space-xxl);padding-bottom:var(--space-xxl)}.border{border:1px solid var(--color-border)}.border-top{border-top:1px solid var(--color-border)}.border-right{border-right:1px solid var(--color-border)}.border-bottom{border-bottom:1px solid var(--color-border)}.border-left{border-left:1px solid var(--color-border)}.border-0{border:0}.rounded-sm{border-radius:var(--border-radius-sm)}.rounded-md{border-radius:var(--border-radius-md)}.rounded-lg{border-radius:var(--border-radius-lg)}.rounded-pill{border-radius:var(--border-radius-pill)}.rounded-circle{border-radius:50%}.shadow-sm{box-shadow:var(--shadow-small)}.shadow-md{box-shadow:var(--shadow-medium)}.shadow-lg{box-shadow:var(--shadow-large)}.shadow-none{box-shadow:none}.position-relative{position:relative}.position-absolute{position:absolute}.position-fixed{position:fixed}.position-sticky{position:sticky}.position-static{position:static}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.w-100{width:100%}.h-100{height:100%}.mw-100{max-width:100%}.mh-100{max-height:100%}.theme-toggle{cursor:pointer;display:flex;align-items:center;justify-content:center;padding:8px;background-color:transparent;border-radius:50%;transition:background-color .2s ease}.theme-toggle:hover{background-color:var(--color-surface)}.theme-toggle:active{transform:scale(.95)}.theme-toggle svg{color:var(--color-text-primary);transition:color .2s ease,transform .3s ease}.theme-toggle__icon{transition:transform .3s ease}.theme-toggle__icon:hover{transform:rotate(15deg)}[data-theme=dark] .theme-toggle svg{transform:rotate(45deg)}@media(min-width:576px){.d-sm-none{display:none}.d-sm-block{display:block}.d-sm-flex{display:flex}.d-sm-grid{display:grid}}@media(min-width:768px){.d-md-none{display:none}.d-md-block{display:block}.d-md-flex{display:flex}.d-md-grid{display:grid}}@media(min-width:992px){.d-lg-none{display:none}.d-lg-block{display:block}.d-lg-flex{display:flex}.d-lg-grid{display:grid}}@media(min-width:1200px){.d-xl-none{display:none}.d-xl-block{display:block}.d-xl-flex{display:flex}.d-xl-grid{display:grid}}.u-hidden{display:none!important}.u-visible{display:block!important}.u-flex{display:flex!important}.u-inline-block{display:inline-block!important}.u-loading{position:relative;pointer-events:none;opacity:.6}.u-loading:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.u-opacity-0{opacity:0!important}.u-opacity-50{opacity:.5!important}.u-opacity-100{opacity:1!important}.u-width-full{width:100%!important}.u-width-auto{width:auto!important}.u-height-full{height:100%!important}.u-height-auto{height:auto!important}.u-grid-col-full{grid-column:1/-1!important}.u-flex-column{flex-direction:column!important}.u-flex-row{flex-direction:row!important}.u-min-width-full{min-width:100%!important}.u-min-width-250{min-width:250px!important}@keyframes spin{to{transform:rotate(360deg)}}.is-loading .loading-indicator{display:flex!important}.is-loading:not(.loading-indicator){opacity:.6;pointer-events:none}.no-js .requires-js,.js .no-js-only{display:none!important}.fade-in{animation:fadeIn .3s ease forwards}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fade-out{animation:fadeOut .3s ease forwards}@keyframes slideInFromTop{0%{transform:translateY(-1rem);opacity:0}to{transform:translateY(0);opacity:1}}.slide-in-top{animation:slideInFromTop .3s ease forwards}@keyframes slideInFromBottom{0%{transform:translateY(1rem);opacity:0}to{transform:translateY(0);opacity:1}}.slide-in-bottom{animation:slideInFromBottom .3s ease forwards}@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.8}to{transform:scale(1);opacity:1}}.pulse{animation:pulse .5s ease infinite}.spin{animation:spin .3s linear infinite}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.scale-in{animation:scaleIn .3s ease forwards}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.shake{animation:shake .15s ease-in-out}.htmx-loading{position:relative}.htmx-loading:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-color:#0000000d;border-radius:inherit;pointer-events:none;animation:pulse .5s ease infinite}.htmx-error{color:var(--color-error);background-color:var(--color-error-translucent, rgba(244, 67, 54, .1));padding:var(--space-sm);border-radius:var(--border-radius-sm);margin-top:var(--space-xs);animation:fadeIn .15s forwards}:root{--color-background: #ffffff;--color-surface: #f8f9fa;--color-surface-elevated: #ffffff;--color-text-primary: #212529;--color-text-secondary: #495057;--color-text-disabled: #6c757d;--color-border: #dee2e6;--color-divider: #e9ecef;--icon-invert: 0;--color-primary-translucent: rgba(77, 141, 239, .1);--color-accent-translucent: rgba(255, 107, 107, .1);--shadow-small: 0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.24);--shadow-medium: 0 3px 6px rgba(0,0,0,.15), 0 2px 4px rgba(0,0,0,.12);--shadow-large: 0 10px 20px rgba(0,0,0,.15), 0 3px 6px rgba(0,0,0,.1);--card-background: #ffffff;--card-border: #eaecef;--focus-ring-color: rgba(77, 141, 239, .5);transition:color .3s ease,background-color .3s ease,border-color .3s ease}@media(prefers-color-scheme:light){:root{--color-background: #ffffff;--color-surface: #f8f9fa;--color-surface-elevated: #ffffff;--color-text-primary: #212529;--color-text-secondary: #495057;--color-text-disabled: #6c757d;--color-border: #dee2e6;--color-divider: #e9ecef;--icon-invert: 0;--color-primary-translucent: rgba(77, 141, 239, .1);--color-accent-translucent: rgba(255, 107, 107, .1);--shadow-small: 0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.24);--shadow-medium: 0 3px 6px rgba(0,0,0,.15), 0 2px 4px rgba(0,0,0,.12);--shadow-large: 0 10px 20px rgba(0,0,0,.15), 0 3px 6px rgba(0,0,0,.1);--card-background: #ffffff;--card-border: #eaecef;--focus-ring-color: rgba(77, 141, 239, .5)}}[data-theme=light]{--color-background: #ffffff;--color-surface: #f8f9fa;--color-surface-elevated: #ffffff;--color-text-primary: #212529;--color-text-secondary: #495057;--color-text-disabled: #6c757d;--color-border: #dee2e6;--color-divider: #e9ecef;--icon-invert: 0;--color-primary-translucent: rgba(77, 141, 239, .1);--color-accent-translucent: rgba(255, 107, 107, .1);--shadow-small: 0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.24);--shadow-medium: 0 3px 6px rgba(0,0,0,.15), 0 2px 4px rgba(0,0,0,.12);--shadow-large: 0 10px 20px rgba(0,0,0,.15), 0 3px 6px rgba(0,0,0,.1);--card-background: #ffffff;--card-border: #eaecef;--focus-ring-color: rgba(77, 141, 239, .5)}@media(prefers-color-scheme:dark){:root{--color-background: #121212;--color-surface: #1e1e1e;--color-surface-elevated: #2d2d2d;--color-text-primary: #f1f3f4;--color-text-secondary: #f8f9fa;--color-text-disabled: #adb5bd;--color-border: #343a40;--color-divider: #343a40;--color-chip-bg: #333333;--chip-text-color: #f1f3f4;--icon-invert: 1;--color-primary-translucent: rgba(77, 141, 239, .15);--color-accent-translucent: rgba(255, 107, 107, .15);--color-success-translucent: rgba(76, 175, 80, .2);--color-warning-translucent: rgba(255, 193, 7, .2);--color-success-dark: #1b5e20;--color-warning-dark: #e65100;--shadow-small: 0 1px 3px rgba(0,0,0,.24), 0 1px 2px rgba(0,0,0,.36);--shadow-medium: 0 3px 6px rgba(0,0,0,.28), 0 2px 4px rgba(0,0,0,.24);--shadow-large: 0 10px 20px rgba(0,0,0,.28), 0 3px 6px rgba(0,0,0,.2);--card-background: #2d2d2d;--card-border: #343a40;--focus-ring-color: rgba(77, 141, 239, .7);transition:color .3s ease,background-color .3s ease,border-color .3s ease}}[data-theme=dark]{--color-background: #121212;--color-surface: #1e1e1e;--color-surface-elevated: #2d2d2d;--color-text-primary: #f1f3f4;--color-text-secondary: #f8f9fa;--color-text-disabled: #adb5bd;--color-border: #343a40;--color-divider: #343a40;--color-chip-bg: #333333;--chip-text-color: #f1f3f4;--icon-invert: 1;--color-primary-translucent: rgba(77, 141, 239, .15);--color-accent-translucent: rgba(255, 107, 107, .15);--color-success-translucent: rgba(76, 175, 80, .2);--color-warning-translucent: rgba(255, 193, 7, .2);--color-success-dark: #1b5e20;--color-warning-dark: #e65100;--shadow-small: 0 1px 3px rgba(0,0,0,.24), 0 1px 2px rgba(0,0,0,.36);--shadow-medium: 0 3px 6px rgba(0,0,0,.28), 0 2px 4px rgba(0,0,0,.24);--shadow-large: 0 10px 20px rgba(0,0,0,.28), 0 3px 6px rgba(0,0,0,.2);--card-background: #2d2d2d;--card-border: #343a40;--focus-ring-color: rgba(77, 141, 239, .7)}.container{max-width:var(--container-max-width);margin-left:auto;margin-right:auto;padding-left:var(--space-md);padding-right:var(--space-md)}.container-fluid{width:100%;padding-left:var(--space-md);padding-right:var(--space-md);margin-left:auto;margin-right:auto}.row{display:flex;flex-wrap:wrap;margin-left:calc(var(--grid-gutter) / -2);margin-right:calc(var(--grid-gutter) / -2)}.col-1{width:8.3333333333%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-2{width:16.6666666667%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-3{width:25%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-4{width:33.3333333333%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-5{width:41.6666666667%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-6{width:50%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-7{width:58.3333333333%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-8{width:66.6666666667%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-9{width:75%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-10{width:83.3333333333%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-11{width:91.6666666667%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-12{width:100%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}@media(min-width:576px){.col-sm-1{width:8.3333333333%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-sm-2{width:16.6666666667%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-sm-3{width:25%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-sm-4{width:33.3333333333%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-sm-5{width:41.6666666667%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-sm-6{width:50%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-sm-7{width:58.3333333333%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-sm-8{width:66.6666666667%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-sm-9{width:75%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-sm-10{width:83.3333333333%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-sm-11{width:91.6666666667%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-sm-12{width:100%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}}@media(min-width:768px){.col-md-1{width:8.3333333333%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-md-2{width:16.6666666667%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-md-3{width:25%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-md-4{width:33.3333333333%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-md-5{width:41.6666666667%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-md-6{width:50%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-md-7{width:58.3333333333%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-md-8{width:66.6666666667%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-md-9{width:75%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-md-10{width:83.3333333333%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-md-11{width:91.6666666667%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-md-12{width:100%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}}@media(min-width:992px){.col-lg-1{width:8.3333333333%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-lg-2{width:16.6666666667%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-lg-3{width:25%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-lg-4{width:33.3333333333%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-lg-5{width:41.6666666667%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-lg-6{width:50%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-lg-7{width:58.3333333333%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-lg-8{width:66.6666666667%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-lg-9{width:75%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-lg-10{width:83.3333333333%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-lg-11{width:91.6666666667%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-lg-12{width:100%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}}@media(min-width:1200px){.col-xl-1{width:8.3333333333%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-xl-2{width:16.6666666667%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-xl-3{width:25%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-xl-4{width:33.3333333333%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-xl-5{width:41.6666666667%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-xl-6{width:50%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-xl-7{width:58.3333333333%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-xl-8{width:66.6666666667%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-xl-9{width:75%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-xl-10{width:83.3333333333%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-xl-11{width:91.6666666667%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}.col-xl-12{width:100%;padding-left:calc(var(--grid-gutter) / 2);padding-right:calc(var(--grid-gutter) / 2)}}.grid{display:grid;gap:var(--grid-gutter)}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--grid-gutter)}.grid-1,.grid-2{display:grid;grid-template-columns:repeat(1,1fr);gap:var(--grid-gutter)}@media(min-width:768px){.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--grid-gutter)}}.grid-3{display:grid;grid-template-columns:repeat(1,1fr);gap:var(--grid-gutter)}@media(min-width:768px){.grid-3{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--grid-gutter)}}@media(min-width:992px){.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--grid-gutter)}}.grid-4{display:grid;grid-template-columns:repeat(1,1fr);gap:var(--grid-gutter)}@media(min-width:576px){.grid-4{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--grid-gutter)}}@media(min-width:992px){.grid-4{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--grid-gutter)}}@media(min-width:1200px){.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--grid-gutter)}}.layout-container{display:block;max-width:2400px;margin:0 auto;padding:0 var(--space-md)}.layout-content{width:100%;max-width:calc(2400px + 3 * var(--space-md));margin:0 auto}:root{--header-base-height: 48px;--header-padding: calc(var(--space-md) * 2);--header-total-height: calc( var(--header-base-height) + var(--header-padding) + var(--safe-area-inset-top) )}.header{position:sticky;top:0;z-index:1020;background-color:var(--color-surface-elevated);border-bottom:1px solid rgba(0,0,0,.05);box-shadow:0 10px 30px #00000026,inset 0 0 1px #fff6;transition:background-color var(--transition-normal),box-shadow var(--transition-normal);padding-right:var(--space-md);padding-left:var(--space-md);padding-top:env(safe-area-inset-top,var(--space-md));border-radius:0}@supports (padding-top: constant(safe-area-inset-top)){.header{padding-top:constant(safe-area-inset-top,var(--space-md))}}@media(display-mode:browser){.header{border-radius:0 0 1.5rem 1.5rem}}.header__container{max-width:var(--container-max-width);margin-left:auto;margin-right:auto;padding-left:var(--space-md);padding-right:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm) 0;padding-top:var(--space-xs);padding-bottom:0}.header__icons-row{display:flex;align-items:center;justify-content:space-around;width:100%;gap:var(--space-sm);padding:0 var(--space-md)}.header__search-row{width:100%;display:flex;justify-content:center;padding:0 var(--space-md)}.header__search{width:100%;max-width:none}.header__search-frame,.header__search-form{position:relative;width:100%}.header__search-form--disabled{opacity:.6}.header__search-input{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--border-radius-md);font-size:var(--font-size-base);background-color:var(--color-surface);color:var(--color-text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.header__search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}.header__search-input--disabled{cursor:not-allowed;background-color:var(--color-surface-disabled);color:var(--color-text-disabled)}.header__search-input::placeholder{color:var(--color-text-secondary)}.header .search-results{position:absolute;top:100%;left:0;right:0;background-color:var(--color-surface);border:1px solid var(--color-border);border-top:none;border-radius:0 0 var(--border-radius-md) var(--border-radius-md);box-shadow:0 4px 6px #0000001a;z-index:1000;max-height:300px;overflow-y:auto}.header__logo{background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;text-decoration:none;font-weight:600;font-size:1.25rem;color:var(--color-primary);transition:opacity var(--transition-normal)}.header__logo:hover{opacity:.8}.header__logo:focus{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}.header__logo--active .header__icon-label{color:inherit;font-weight:inherit}.header__logo-content{position:relative;display:flex;align-items:center}.header__logo-content img{width:24px;height:24px}.header__logo-indicator{position:absolute;top:50%;right:-18px;transform:translateY(-50%);width:12px;height:12px;background-color:var(--color-primary);border-radius:50%;border:1px solid var(--color-background)}.header__logo-icon{height:32px;width:auto}.header .filter-chips-container{background-color:var(--color-background);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;height:auto;min-height:32px;transition:height var(--transition-normal),padding var(--transition-normal);max-width:var(--container-max-width);margin-left:auto;margin-right:auto;padding-left:var(--space-md);padding-right:var(--space-md);padding-top:var(--space-xxs);padding-bottom:var(--space-xxs);display:flex;align-items:center;gap:var(--space-xxs)}.header .filter-chips-container::-webkit-scrollbar{display:none}.header .filter-chips-container .filter-chips{display:flex;flex:0 0 auto;flex-wrap:nowrap;width:max-content;margin-bottom:0;gap:var(--space-xs)}.header .filter-chips-container--collapsed{height:0;padding:0;overflow:hidden;background-color:transparent;transition:height var(--transition-normal),padding var(--transition-normal),background-color var(--transition-normal)}.header__nav{display:none}@media(min-width:768px){.header__nav{display:flex;align-items:center;gap:var(--space-md)}}.header__nav-link{color:var(--color-text-primary);text-decoration:none;font-weight:var(--font-weight-medium);transition:color var(--transition-fast)}.header__nav-link:hover{color:var(--color-primary)}.header__nav-link.active{color:var(--color-primary);font-weight:var(--font-weight-bold)}.header__actions{display:flex;align-items:center;gap:var(--space-sm)}.header__icon-button{display:flex;flex-direction:column;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-primary);cursor:pointer;padding:var(--space-xs);gap:var(--space-xxs);transition:color var(--transition-fast),opacity var(--transition-fast)}.header__icon-button img{width:24px;height:24px;filter:invert(var(--icon-invert))}.header__icon-button:hover{color:var(--color-primary)}.header__icon-button:focus{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--border-radius-sm)}.header__icon-button--disabled{opacity:.4;cursor:not-allowed}.header__icon-button--disabled img{filter:invert(.7)}.header__icon-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:inherit;text-align:center;line-height:1;white-space:nowrap}.header__theme-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-primary);cursor:pointer;padding:var(--space-xs);gap:var(--space-xxs);transition:color var(--transition-fast),opacity var(--transition-fast)}.header__theme-toggle:hover{color:var(--color-primary)}.header__theme-toggle:focus{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--border-radius-sm)}.header__theme-toggle svg{width:24px;height:24px}.header__user-button{transition:all var(--transition-normal);border-radius:var(--border-radius-sm)}.header__user-button--logged-in img{filter:invert(.5) sepia(1) saturate(5) hue-rotate(90deg) brightness(1)}.header__user-button--logged-in:hover{background-color:#22c55e26}.header__user-button--logged-in:hover img{filter:invert(.4) sepia(1) saturate(6) hue-rotate(90deg) brightness(.9)}.header__user-button--logged-out img{filter:invert(.5) sepia(1) saturate(5) hue-rotate(0deg) brightness(1)}.header__user-button--logged-out:hover{background-color:#ef444426}.header__user-button--logged-out:hover img{filter:invert(.4) sepia(1) saturate(6) hue-rotate(0deg) brightness(.9)}.header__user-menu{position:relative}.header__user-dropdown{position:absolute;top:100%;right:0;min-width:200px;background-color:var(--color-surface-elevated);border-radius:var(--border-radius-md);box-shadow:var(--shadow-medium);padding:var(--space-xs) 0;z-index:1000;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity var(--transition-fast),transform var(--transition-fast)}.header__user-dropdown.active{opacity:1;transform:translateY(0);pointer-events:auto}.header__search-frame{max-width:var(--container-max-width);margin-left:auto;margin-right:auto;padding-left:var(--space-md);padding-right:var(--space-md);padding-left:var(--space-xxxs);padding-right:var(--space-xxxs);padding-top:var(--space-xxxs);padding-bottom:var(--space-xs)}.header__search{display:flex;align-items:center;width:100%}.header__search-form{width:100%}.header__search-form--disabled{opacity:.6;cursor:not-allowed}.header__search-input{width:100%;padding:var(--space-xxs) var(--space-md);height:36px;border:1px solid var(--color-border);border-radius:var(--border-radius-lg);background-color:transparent;color:var(--color-text-primary);transition:all var(--transition-fast);font-size:var(--font-size-base);box-shadow:0 2px 8px #0000001f,inset 0 1px 2px #0000000d}.header__search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--focus-ring-color),0 4px 16px #0000002e;transform:translateY(-1px);background-color:var(--color-surface-elevated)}.header__search-input::placeholder{color:var(--color-text-secondary);font-style:normal;font-size:var(--font-size-base)}.header__search-input--disabled{background-color:var(--color-surface-disabled, #f5f5f5);color:var(--color-text-disabled, #6c757d);border-color:var(--color-border-disabled, #e5e7eb);cursor:not-allowed;height:36px;font-size:var(--font-size-sm);box-shadow:0 1px 4px #0000000f}.header__search-input--disabled::placeholder{color:var(--color-text-disabled, #6c757d);font-style:italic;font-size:var(--font-size-sm)}.header__search-input--disabled:focus{border-color:var(--color-border-disabled, #e5e7eb);box-shadow:0 1px 4px #0000000f;transform:none}.header__theme-toggle{background:none;border:none;color:var(--color-text-primary);cursor:pointer;padding:var(--space-xs);border-radius:var(--border-radius-sm);transition:background-color var(--transition-fast);display:flex;flex-direction:column;align-items:center;gap:var(--space-xxs)}.header__theme-toggle:hover{background-color:var(--color-surface)}.header__theme-toggle-icon{width:24px;height:24px}.header__mobile-menu-button{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-primary);padding:var(--space-xs);border-radius:var(--border-radius-sm);cursor:pointer}@media(min-width:768px){.header__mobile-menu-button{display:none}}.header__mobile-menu-button-icon{width:24px;height:24px}.header--spec{position:sticky;top:0;z-index:1020;background:var(--color-surface-elevated);padding-top:env(safe-area-inset-top,0)}.header--spec .header__top-row{display:flex;align-items:center;gap:8px;padding:8px 12px}.header--spec .header__brand-btn{flex-shrink:0;width:34px;height:34px;border-radius:10px;background:#16a34a;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity var(--transition-fast)}.header--spec .header__brand-btn:hover{opacity:.85}.header--spec .header__brand-btn:focus{outline:2px solid #16a34a;outline-offset:2px}.header--spec .header__search-bar{flex:1;min-width:0;height:34px;border-radius:10px;background:var(--color-background-secondary, #f5f5f5);border:.5px solid var(--color-border-tertiary, #e5e7eb);display:flex;align-items:center;padding:0 10px;box-shadow:none}.header--spec .header__search-bar input{width:100%;border:none;background:transparent;font-size:var(--font-size-base);color:var(--color-text-primary);outline:none;box-shadow:none}.header--spec .header__search-bar input::placeholder{color:var(--color-text-secondary);font-size:13px}.header--spec .header__search-bar--disabled{opacity:.5;cursor:not-allowed}.header--spec .header__search-bar--disabled input{cursor:not-allowed}.header--spec .header__filter-btn{flex-shrink:0;width:34px;height:34px;border-radius:10px;background:var(--color-background-secondary, #f5f5f5);border:.5px solid var(--color-border-tertiary, #e5e7eb);cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;color:var(--color-text-primary);transition:background var(--transition-fast)}.header--spec .header__filter-btn:hover{background:var(--color-surface)}.header--spec .header__filter-dot{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:#16a34a;border:1.5px solid var(--color-surface-elevated)}.header--spec .header__account-btn{flex-shrink:0;width:34px;height:34px;border-radius:50%;background:#dcfce7;border:.5px solid rgba(22,163,74,.25);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity var(--transition-fast)}.header--spec .header__account-btn:hover{opacity:.85}.header--spec .header__account-btn:focus{outline:2px solid #16a34a;outline-offset:2px}.header--spec .header__initials{font-size:12px;font-weight:600;color:#16a34a;text-transform:uppercase;line-height:1}.header--spec .header__chip-row{padding:0 12px 9px;overflow-x:auto;scrollbar-width:none;display:flex;gap:6px}.header--spec .header__chip-row::-webkit-scrollbar{display:none}.header--spec .search-results{position:absolute;left:12px;right:12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:0 0 10px 10px;box-shadow:0 4px 6px #0000001a;z-index:1000;max-height:300px;overflow-y:auto}.mobile-menu{position:fixed;top:64px;left:0;right:0;bottom:0;background-color:var(--color-surface-elevated);z-index:1050;display:flex;flex-direction:column;padding:var(--space-lg);transform:translate(100%);transition:transform var(--transition-normal)}.mobile-menu.active{transform:translate(0)}.mobile-menu__nav{display:flex;flex-direction:column;gap:var(--space-md)}.mobile-menu__nav-link{color:var(--color-text-primary);text-decoration:none;font-weight:var(--font-weight-medium);font-size:var(--font-size-lg);padding:var(--space-sm) 0;border-bottom:1px solid var(--color-border)}.mobile-menu__nav-link:hover{color:var(--color-primary)}.mobile-menu__nav-link.active{color:var(--color-primary);font-weight:var(--font-weight-bold)}.user-menu__actions{display:flex;flex-direction:column}.user-menu__link{padding:var(--space-xs) var(--space-md);text-decoration:none;color:var(--color-text-primary);transition:background-color var(--transition-fast)}.user-menu__link:hover{background-color:var(--color-surface)}.user-menu__logout-form{margin:0}.user-menu__logout-button{width:100%;text-align:left;padding:var(--space-xs) var(--space-md);background:none;border:none;color:var(--color-text-primary);cursor:pointer;transition:background-color var(--transition-fast)}.user-menu__logout-button:hover{background-color:var(--color-surface)}.user-menu__info{padding:var(--space-xs) var(--space-md);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-xs)}.user-menu__username{display:block;font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.user-menu__email{display:block;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.footer{background-color:var(--color-surface-elevated);border:1px solid var(--color-border);border-bottom:none;border-left:none;border-right:none;border-radius:1.5rem 1.5rem 0 0;box-shadow:var(--shadow-medium, 0 -10px 30px rgba(0, 0, 0, .15));overflow:hidden;position:relative;padding:var(--space-xs) 0;padding-bottom:calc(var(--space-xs) + env(safe-area-inset-bottom,0));padding-left:env(safe-area-inset-left,0);padding-right:env(safe-area-inset-right,0);margin-top:auto;transition:background-color var(--transition-normal);position:fixed;bottom:0;left:0;right:0;height:auto;min-height:calc(38px + var(--space-xs) * 2);z-index:100}.footer:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at bottom right,var(--color-border),transparent 70%);pointer-events:none;z-index:1;opacity:.3}.footer__container{position:relative;z-index:2;max-width:var(--container-max-width);margin-left:auto;margin-right:auto;padding-left:var(--space-md);padding-right:var(--space-md)}@supports (padding-bottom: constant(safe-area-inset-bottom)){.footer{padding-bottom:calc(var(--space-xs) + constant(safe-area-inset-bottom,0));padding-left:constant(safe-area-inset-left,0);padding-right:constant(safe-area-inset-right,0)}}.footer__nav{display:flex;justify-content:space-around;align-items:flex-start;height:100%}.footer__nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;color:var(--color-text-secondary);padding:var(--space-xxs);transition:color var(--transition-fast);height:100%;background:none;border:none;cursor:pointer}.footer__nav-item:hover,.footer__nav-item.active{color:var(--color-primary)}.footer__nav-item--disabled{opacity:.4;cursor:not-allowed;color:var(--color-text-disabled, #9ca3af)}.footer__nav-item--disabled .footer__nav-icon{filter:invert(.7)}.footer__nav-item--disabled .footer__nav-label{color:var(--color-text-disabled, #9ca3af)}.footer__nav-item--disabled:hover{color:var(--color-text-disabled, #9ca3af);opacity:.4}.footer__nav-icon{width:24px;height:24px;margin-bottom:var(--space-xxs);filter:invert(var(--icon-invert))}.footer__nav-label{font-size:var(--font-size-xxs);font-weight:var(--font-weight-medium);text-align:center;display:block}.footer--spec{position:fixed;bottom:0;left:0;right:0;z-index:100;display:flex;justify-content:space-around;align-items:center;padding:10px 8px calc(10px + env(safe-area-inset-bottom,0));border-top:.5px solid var(--color-border-tertiary, #e5e7eb);background:var(--color-surface-elevated)}.footer--spec .footer__nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;flex:1;cursor:pointer;text-decoration:none;color:var(--color-text-tertiary, #9ca3af);background:none;border:none;padding:0;transition:color var(--transition-fast)}.footer--spec .footer__nav-item:hover{color:var(--color-text-secondary)}.footer--spec .footer__nav-item.active{color:var(--color-text-primary);font-weight:600}.footer--spec .footer__nav-item--disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.footer--spec .footer__sort-symbol{font-size:17px;font-weight:600;line-height:20px}.footer--spec .footer__label{font-size:9px;font-weight:500;white-space:nowrap}.footer--spec .footer__nav-sep{width:.5px;height:28px;background:var(--color-border-tertiary, #e5e7eb);flex-shrink:0}.footer--spec .footer__icon-wrap{position:relative;display:flex;align-items:center;justify-content:center}.footer--spec .footer__cart-badge{position:absolute;top:-5px;right:-10px;min-width:14px;height:14px;border-radius:50%;background:var(--color-success, #16a34a);color:#fff;font-size:8px;font-weight:700;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--color-surface-elevated);padding:0 2px}.footer--spec .footer__cart-badge:empty{display:none}.footer--spec svg{color:inherit}.version-info{text-align:center;font-size:.6rem;color:var(--color-text-secondary, #999);margin-top:8px;opacity:.7}.main{min-height:calc(100vh - 124px);padding-bottom:calc(var(--space-xl) * 2 + 38px + var(--safe-area-inset-bottom));padding-left:var(--safe-area-inset-left);padding-right:var(--safe-area-inset-right)}@media all and (display-mode:standalone){.main{min-height:calc(100vh - 64px - 60px - var(--safe-area-inset-top) - var(--safe-area-inset-bottom))}}.hero{padding:var(--space-xl) 0}.hero__content{display:flex;flex-direction:column;justify-content:center}.hero__title{font-size:var(--font-size-xxxl);margin-bottom:var(--space-md)}@media(max-width:767px){.hero__title{font-size:var(--font-size-xxl)}}.hero__description{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin-bottom:var(--space-lg)}@media(max-width:767px){.hero__description{font-size:var(--font-size-md)}}.hero__image{display:flex;align-items:center;justify-content:center}.hero__image-img{max-width:100%;height:auto}.section-title{font-size:var(--font-size-xxl);text-align:center;margin-bottom:var(--space-lg)}.feature-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-lg);border-radius:var(--border-radius-md);background-color:var(--color-surface);transition:all var(--transition-normal)}.feature-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-medium)}.feature-card__icon{background-color:var(--color-primary-translucent);color:var(--color-primary);width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-md)}.feature-card__title{font-size:var(--font-size-xl);margin-bottom:var(--space-sm)}.feature-card__description{color:var(--color-text-secondary);font-size:var(--font-size-md)}.shop-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-md);border-radius:var(--border-radius-md);background-color:var(--color-surface);transition:all var(--transition-normal)}.shop-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-medium)}.shop-card__logo{width:80px;height:80px;object-fit:contain;margin-bottom:var(--space-sm)}.shop-card__name{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium)}.products-page__header{text-align:center;margin-bottom:var(--space-lg)}.grid-layout{display:grid;grid-template-columns:250px 1fr;gap:var(--space-lg)}@media(max-width:767px){.grid-layout{grid-template-columns:1fr}}.products-content{display:flex;flex-direction:column}.products-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-border)}@media(max-width:767px){.products-actions{flex-wrap:wrap;gap:var(--space-sm)}}.products-count{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.products-sort{display:flex;align-items:center;gap:var(--space-xs)}.products-sort label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.products-sort select{padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);background-color:var(--color-surface-elevated);color:var(--color-text-primary);font-size:var(--font-size-sm)}.products-sort select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--focus-ring-color)}.products-view{display:flex;gap:var(--space-xs)}.products-view__button{background:none;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);padding:var(--space-xs);cursor:pointer;color:var(--color-text-secondary)}.products-view__button:hover{color:var(--color-text-primary);background-color:var(--color-surface)}.products-view__button.active{color:var(--color-primary);border-color:var(--color-primary);background-color:var(--color-primary-translucent)}.products-loading{display:flex;justify-content:center;align-items:center;padding:var(--space-xl);color:var(--color-text-secondary)}.products-load-more{margin-top:var(--space-lg)}.products-list-view .product-card{flex-direction:row}.products-list-view .product-card__image{width:120px;height:120px;margin-right:var(--space-md);margin-bottom:0}.products-list-view .product-card__content{flex:1}.button{display:inline-block;font-weight:var(--font-weight-medium);text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid transparent;padding:var(--space-xs) var(--space-md);font-size:var(--font-size-md);line-height:1.5;border-radius:var(--border-radius-sm);transition:color var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.button:focus{outline:0;box-shadow:0 0 0 3px var(--focus-ring-color)}.button:disabled{opacity:.65;cursor:not-allowed}.button{background-color:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border)}.button:hover{background-color:var(--color-surface-elevated)}.button:active{background-color:var(--color-border)}.button--primary{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.button--primary:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.button--primary:active{background-color:var(--color-primary-active);border-color:var(--color-primary-active)}.button--secondary{background-color:var(--color-surface);color:var(--color-primary);border-color:var(--color-primary)}.button--secondary:hover{background-color:var(--color-primary-translucent)}.button--secondary:active{background-color:var(--color-primary-translucent);border-color:var(--color-primary-hover)}.button--accent{background-color:var(--color-accent);color:#fff;border-color:var(--color-accent)}.button--accent:hover{background-color:var(--color-accent-hover);border-color:var(--color-accent-hover)}.button--accent:active{background-color:var(--color-accent-active);border-color:var(--color-accent-active)}.button--outline{background-color:transparent;color:var(--color-text-primary);border-color:var(--color-border)}.button--outline:hover{background-color:var(--color-surface)}.button--outline:active{background-color:var(--color-surface-elevated)}.button--danger{background-color:var(--color-error);color:#fff;border-color:var(--color-error)}.button--danger:hover{background-color:#e03c30;border-color:#e03c30}.button--danger:active{background-color:#cc352a;border-color:#cc352a}.button--icon{padding:var(--space-xs);display:inline-flex;align-items:center;justify-content:center}.button--icon svg{width:20px;height:20px}.button--sm{padding:var(--space-xxs) var(--space-xs);font-size:var(--font-size-sm)}.button--lg{padding:var(--space-sm) var(--space-lg);font-size:var(--font-size-lg)}.button--block{display:block;width:100%}.button--loading{position:relative;color:transparent}.button--loading:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;margin-left:-10px;margin-top:-10px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.button--loading.button--secondary:after,.button--loading.button--outline:after{border:2px solid rgba(var(--color-primary-rgb, 77, 141, 239),.3);border-top-color:var(--color-primary)}.button:disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.button--with-icon{display:flex;align-items:center;gap:8px}.button-group{display:inline-flex}.button-group .button{border-radius:0}.button-group .button:not(:last-child){border-right:none}.button-group .button:first-child{border-top-left-radius:var(--border-radius-sm);border-bottom-left-radius:var(--border-radius-sm)}.button-group .button:last-child{border-top-right-radius:var(--border-radius-sm);border-bottom-right-radius:var(--border-radius-sm)}.component4-remove-button{background-color:orange;margin:10px}.product-grid,#product-grid{display:grid;gap:var(--space-xxs);margin-bottom:var(--space-lg);margin-top:var(--space-xs);padding-right:var(--space-xxs);padding-left:var(--space-xxs);width:100%;max-width:100%}@media(max-width:379px){.product-grid,#product-grid{grid-template-columns:1fr}}@media(min-width:380px)and (max-width:759px){.product-grid,#product-grid{grid-template-columns:1fr}}@media(min-width:760px)and (max-width:1139px){.product-grid,#product-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1140px)and (max-width:1519px){.product-grid,#product-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1520px)and (max-width:1899px){.product-grid,#product-grid{grid-template-columns:repeat(4,1fr)}}@media(min-width:1900px){.product-grid,#product-grid{grid-template-columns:repeat(4,1fr);max-width:calc(2400px + 3 * var(--space-md));margin:0 auto}}.product-grid>*:not(.product-card):not(.product-card-spec),#product-grid>*:not(.product-card):not(.product-card-spec){grid-column:1/-1}.load-more,#infinite-scroll-trigger{grid-column:1/-1;width:100%;margin:0;box-sizing:border-box;text-align:center;padding:var(--space-xs);min-height:0}.product-card{background-color:var(--card-background);border-radius:var(--border-radius-md);box-shadow:var(--shadow-small);padding:var(--space-md);border:1px solid var(--card-border);transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.product-card:hover{box-shadow:var(--shadow-medium);transform:translateY(-2px)}.product-card{height:100%;overflow:hidden;transition:transform var(--transition-normal),box-shadow var(--transition-normal);position:relative;display:flex;flex-direction:column;will-change:transform}.product-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-medium)}.product-card:hover .product-card__image img{transform:scale(1.05)}.product-card.loaded{padding:0}.product-card__grid{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm);height:100%}.product-card__mobile-header{display:flex;align-items:flex-start;gap:var(--space-xs);margin-bottom:var(--space-xs)}.product-card__left,.product-card__center,.product-card__right{display:none}.product-card__shop-logo{width:40px;height:24px;flex-shrink:0}.product-card__shop-logo img{width:100%;height:100%;object-fit:contain}.product-card__actions{display:flex;gap:var(--space-xs);margin-left:auto}.product-card__action-btn{background:transparent;border:none;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:color var(--transition-fast),background-color var(--transition-fast);color:var(--color-text-secondary);border-radius:var(--border-radius-sm)}.product-card__action-btn:hover{color:var(--color-primary);background:#fffc}.product-card__action-btn img,.product-card__action-btn svg{width:18px;height:18px;filter:none;color:inherit}.product-card__favorite{color:var(--color-text-secondary)}.product-card__favorite.is-favorite{color:var(--color-error)}.product-card__favorite img,.product-card__favorite svg{color:inherit}.product-card__cart{color:var(--color-text-secondary)}.product-card__cart.is-in-cart{color:var(--color-primary)}.product-card__cart:hover:not(.is-in-cart){color:var(--color-primary)}.product-card__cart img,.product-card__cart svg{color:inherit;transition:color var(--transition-fast)}.product-card__image{position:relative;width:100%;height:160px;overflow:hidden;border-radius:var(--border-radius-sm);margin-bottom:var(--space-sm)}.product-card__image img{width:100%;height:100%;object-fit:contain;transition:transform var(--transition-normal);background:transparent;will-change:transform}@media(max-width:480px){.product-card__image{height:140px}}@media(max-width:360px){.product-card__image{height:120px}}.product-card__content{display:flex;flex-direction:column;gap:var(--space-xs);flex:1}.product-card__title{font-weight:var(--font-weight-medium);font-size:var(--font-size-md);color:var(--color-text-primary);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:var(--space-xxs)}.product-card__brand{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);margin-bottom:var(--space-xs)}.product-card__promotion-mechanism{align-self:flex-start;margin-bottom:var(--space-xs)}.product-card__promotion-mechanism-tag{display:inline-block;padding:var(--space-xxs) var(--space-sm);background:linear-gradient(135deg,var(--color-error) 0%,#d32f2f 100%);color:#fff;border-radius:var(--border-radius-pill);font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.5px}.product-card__price-wrapper{margin-top:auto;display:flex;align-items:baseline;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-xs)}.product-card__price{font-weight:var(--font-weight-bold);font-size:var(--font-size-lg);color:var(--color-text-primary)}.product-card__price--promotion{color:var(--color-success);font-weight:var(--font-weight-bold)}.product-card__price-promotion-format{display:flex;flex-direction:column;gap:var(--space-xxs)}.product-card__price-promotion-format .price-current{font-weight:var(--font-weight-bold);font-size:var(--font-size-lg);color:var(--color-success)}.product-card__price-promotion-format .price-before-line{display:flex;align-items:baseline;gap:var(--space-xs)}.product-card__price-promotion-format .price-before,.product-card__price-promotion-format .quantity-info{font-weight:var(--font-weight-normal);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.product-card__price-before{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-decoration:line-through}.product-card__discount{display:flex;align-items:center;gap:var(--space-xs);margin-bottom:var(--space-xs)}.product-card__discount-absolute,.product-card__discount-percentage{font-size:var(--font-size-xs);color:var(--color-success);font-weight:var(--font-weight-semibold);background-color:var(--color-success-translucent);padding:var(--space-xxs) var(--space-xs);border-radius:var(--border-radius-sm)}.product-card__discount-combined{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-normal)}.product-card__promotion-period{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.product-card__promotion-period span{background-color:var(--color-warning-translucent);color:var(--color-warning-dark);padding:var(--space-xxs) var(--space-xs);border-radius:var(--border-radius-sm);border:1px solid var(--color-warning);font-size:var(--font-size-xxs)}.product-card__promotion-dates{color:var(--color-text-secondary)!important;background:none!important;border:none!important;padding:0!important;font-size:var(--font-size-xxs)}.product-card__meta{display:flex;flex-wrap:wrap;gap:var(--space-xxs);font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-bottom:var(--space-xs)}.product-card__meta span{padding:var(--space-xxs) var(--space-xs);background-color:var(--color-surface);border-radius:var(--border-radius-sm);border:1px solid var(--color-border);font-size:var(--font-size-xxs)}.product-card__unit-pricing{display:flex;flex-wrap:wrap;gap:var(--space-xs);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.product-card__unit-pricing span{white-space:nowrap;font-size:var(--font-size-xxs)}.product-card__unit-price-promotion,.product-card__unit-price-normal{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap}.product-card__sales-unit-inline{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-left:var(--space-xs);white-space:nowrap}@media(min-width:380px){.product-card__grid{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:auto auto auto;gap:var(--space-sm);align-items:start}.product-card__mobile-header,.product-card__image:not(.product-card__right .product-card__image),.product-card__content{display:none}.product-card__title-row,.product-card__left,.product-card__right,.product-card__actions{display:flex}.product-card__title-row{grid-column:1/-1;grid-row:1;justify-content:flex-start;align-items:center;margin:0;padding:0}.product-card__left{flex-direction:column;gap:var(--space-xxs);grid-column:1;grid-row:2;min-width:0;align-items:flex-start}.product-card__right{flex-direction:column;grid-column:2;grid-row:2;align-items:center;justify-content:space-between;height:100%}.product-card__right .product-card__shop-logo{width:48px;height:28px}.product-card__right .product-card__image{height:80px;width:100%}.product-card__right .product-card__unit-pricing{display:flex;flex-direction:column;gap:var(--space-xxs);text-align:center;width:100%}.product-card__actions{grid-column:1/-1;grid-row:3;justify-content:flex-start;align-items:center;flex-direction:row;gap:var(--space-xs);margin:0;padding:0}}@media(min-width:1200px){.product-card__center .product-card__image{height:100px}.product-card__title{font-size:var(--font-size-md)}.product-card__price{font-size:var(--font-size-xl)}}@media(max-width:480px){.product-card__grid{padding:var(--space-xs);gap:var(--space-xs)}.product-card__image{height:100px}.product-card__title{font-size:var(--font-size-sm)}.product-card__price{font-size:var(--font-size-md)}.product-card__action-btn{width:32px;height:32px}.product-card__action-btn img,.product-card__action-btn svg{width:16px;height:16px}.product-card__meta span{font-size:10px;padding:2px 4px}.product-card__promotion-period span{font-size:10px}}.product-card__debug-info{margin-top:var(--space-xs);font-size:var(--font-size-xxs);color:var(--color-text-secondary);background-color:var(--color-surface);padding:var(--space-xxs);border-radius:var(--border-radius-sm)}@media(min-width:768px){.product-card--list .product-card__grid{grid-template-columns:140px 1fr auto;gap:var(--space-md)}.product-card--list .product-card__left{width:140px}.product-card--list .product-card__left .product-card__image{height:120px}}:root{--color-success-dark: #2e7d32;--color-success-translucent: rgba(76, 175, 80, .1);--color-warning-dark: #f57c00;--color-warning-translucent: rgba(255, 193, 7, .1)}.product-card-skeleton{background-color:var(--card-background);border-radius:var(--border-radius-md);box-shadow:var(--shadow-small);padding:var(--space-md);border:1px solid var(--card-border);transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.product-card-skeleton:hover{box-shadow:var(--shadow-medium);transform:translateY(-2px)}.product-card-skeleton{display:flex;flex-direction:column;height:100%;overflow:hidden}.product-card-skeleton__image{width:100%;height:160px;margin-bottom:var(--space-sm);border-radius:var(--border-radius-sm);background-color:var(--color-border);animation:pulse 1.5s ease infinite}.product-card-skeleton__title{height:1.2em;margin-bottom:var(--space-sm);width:90%;background-color:var(--color-border);border-radius:var(--border-radius-sm);animation:pulse 1.5s ease infinite}.product-card-skeleton__brand{height:1em;margin-bottom:var(--space-sm);width:60%;background-color:var(--color-border);border-radius:var(--border-radius-sm);animation:pulse 1.5s ease infinite}.product-card-skeleton__price{height:1.5em;width:40%;background-color:var(--color-border);border-radius:var(--border-radius-sm);animation:pulse 1.5s ease infinite}.product-grid--cart .product-card{border-left:3px solid var(--color-primary-200);background:linear-gradient(135deg,var(--color-surface) 0%,rgba(var(--color-primary-100-rgb),.02) 100%)}.product-grid--grouped{display:flex;flex-direction:column;gap:var(--space-xl)}.shop-group{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);overflow:hidden}.shop-group .shop-group-header{background:linear-gradient(135deg,var(--color-primary-50) 0%,var(--color-primary-100) 100%);border-bottom:1px solid var(--color-primary-200);padding:var(--space-md) var(--space-lg);display:flex;justify-content:space-between;align-items:center}@media(max-width:640px){.shop-group .shop-group-header{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}}.shop-group .shop-group-header .shop-name{font-size:var(--font-size-lg);font-weight:600;color:var(--color-primary-800);margin:0}.shop-group .shop-group-header .shop-summary{display:flex;align-items:center;gap:var(--space-md);font-size:var(--font-size-sm)}@media(max-width:640px){.shop-group .shop-group-header .shop-summary{gap:var(--space-sm);flex-wrap:wrap}}.shop-group .shop-group-header .shop-summary .shop-item-count{color:var(--color-text-secondary);font-weight:500}.shop-group .shop-group-header .shop-summary .shop-subtotal{font-weight:600;color:var(--color-primary-700);font-size:var(--font-size-md)}.shop-group .shop-group-header .shop-summary .shop-savings{background:var(--color-success-100);color:var(--color-success-700);padding:var(--space-xs) var(--space-sm);border-radius:var(--border-radius-pill);font-weight:600;border:1px solid var(--color-success-200)}.shop-group .shop-items{padding:var(--space-lg);display:grid;gap:var(--space-sm)}@media(max-width:379px){.shop-group .shop-items{grid-template-columns:1fr}}@media(min-width:380px)and (max-width:759px){.shop-group .shop-items{grid-template-columns:1fr}}@media(min-width:760px)and (max-width:1139px){.shop-group .shop-items{grid-template-columns:repeat(2,1fr)}}@media(min-width:1140px)and (max-width:1519px){.shop-group .shop-items{grid-template-columns:repeat(3,1fr)}}@media(min-width:1520px){.shop-group .shop-items{grid-template-columns:repeat(4,1fr)}}.product-card--cart .product-card__quantity-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--space-sm);margin:var(--space-sm) 0}.product-card--cart .product-card__quantity-section .quantity-label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-primary);margin-bottom:var(--space-xs)}.product-card--cart .product-card__quantity-section .quantity-controls{display:flex;align-items:center;gap:var(--space-sm)}.product-card--cart .product-card__quantity-section .quantity-controls .quantity-btn{width:32px;height:32px;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--border-radius-sm);color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:600;cursor:pointer;transition:all .2s ease}.product-card--cart .product-card__quantity-section .quantity-controls .quantity-btn:hover{background:var(--color-primary-50);border-color:var(--color-primary-200);color:var(--color-primary-700)}.product-card--cart .product-card__quantity-section .quantity-controls .quantity-btn:active{transform:scale(.95)}.product-card--cart .product-card__quantity-section .quantity-controls .quantity-display{min-width:40px;text-align:center;font-size:var(--font-size-md);font-weight:500;color:var(--color-text-primary)}.product-card--cart .cart-savings-highlight{background:linear-gradient(135deg,rgba(var(--color-success-100-rgb),.8),rgba(var(--color-success-50-rgb),.6));border:1px solid var(--color-success-200);border-radius:var(--border-radius-sm);padding:var(--space-xs) var(--space-sm);margin-top:var(--space-xs)}.product-card--cart .cart-savings-highlight .savings-per-item{font-size:var(--font-size-sm);font-weight:500;color:var(--color-success-700);display:flex;align-items:center;gap:var(--space-xs)}.product-card--cart .cart-savings-highlight .savings-per-item:before{content:"💰";font-size:var(--font-size-sm)}.product-card--cart .cart-line-total{background:var(--color-primary-50);border:1px solid var(--color-primary-200);border-radius:var(--border-radius-sm);padding:var(--space-sm);margin-top:var(--space-sm);display:flex;justify-content:space-between;align-items:center}.product-card--cart .cart-line-total .line-total-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:500}.product-card--cart .cart-line-total .line-total-amount{font-size:var(--font-size-lg);font-weight:600;color:var(--color-primary-700)}.product-card--cart .product-card__cart-remove{background:var(--color-danger-50);border:1px solid var(--color-danger-200);color:var(--color-danger-600)}.product-card--cart .product-card__cart-remove:hover{background:var(--color-danger-100);border-color:var(--color-danger-300);color:var(--color-danger-700)}.cart-summary-section{background:linear-gradient(135deg,var(--color-surface) 0%,rgba(var(--color-primary-50-rgb),.3) 100%);border:2px solid var(--color-primary-200);border-radius:var(--border-radius-lg);padding:var(--space-lg);margin-bottom:var(--space-xl)}.cart-summary-section .cart-summary-header{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-lg)}@media(min-width:640px){.cart-summary-section .cart-summary-header{flex-direction:row;justify-content:space-between;align-items:flex-start}}.cart-summary-section .cart-summary-title{font-size:var(--font-size-xl);font-weight:600;color:var(--color-text-primary);margin:0}.cart-summary-section .cart-total-savings{text-align:right}@media(max-width:639px){.cart-summary-section .cart-total-savings{text-align:left}}.cart-summary-section .cart-total-savings .savings-amount{font-size:var(--font-size-lg);font-weight:700;color:var(--color-success-700);display:block}.cart-summary-section .cart-total-savings .savings-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--space-xs);display:block}.cart-summary-section .subscription-value-section .subscription-message{padding:var(--space-md);border-radius:var(--border-radius-md);font-size:var(--font-size-md);line-height:1.5}.cart-summary-section .subscription-value-section .subscription-message--profitable{background:linear-gradient(135deg,rgba(var(--color-success-100-rgb),.8),rgba(var(--color-success-50-rgb),.6));border:2px solid var(--color-success-300);color:var(--color-success-800)}.cart-summary-section .subscription-value-section .subscription-message--partial{background:linear-gradient(135deg,rgba(var(--color-primary-100-rgb),.8),rgba(var(--color-primary-50-rgb),.6));border:2px solid var(--color-primary-300);color:var(--color-primary-800)}.cart-summary-section .cart-shop-summary{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-border)}.cart-summary-section .cart-shop-summary .shop-count{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-style:italic}.cart-summary-section .cart-actions{margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--color-border);display:flex;justify-content:flex-end}.cart-summary-section .cart-actions .cart-clear-btn:hover{background-color:var(--color-danger-100);border-color:var(--color-danger-300);color:var(--color-danger-700)}.cart-summary-section .cart-actions .cart-clear-btn:focus{outline:2px solid var(--color-danger-500);outline-offset:2px}.product-card-spec{background-color:var(--card-background);border-radius:var(--border-radius-md);box-shadow:var(--shadow-small);padding:var(--space-md);border:1px solid var(--card-border);transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.product-card-spec:hover{box-shadow:var(--shadow-medium);transform:translateY(-2px)}.product-card-spec{height:100%;overflow:hidden;transition:transform var(--transition-normal),box-shadow var(--transition-normal);position:relative;display:flex;flex-direction:column;min-width:0}.product-card-spec:hover{transform:translateY(-4px);box-shadow:var(--shadow-medium)}.card-scene{perspective:900px}.card-3d{position:relative;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.4,.2,.2,1)}@media(hover:none)and (pointer:coarse){.card-3d{transition:transform .8s cubic-bezier(.25,.1,.25,1)}}.card-3d.flipped{transform:rotateY(180deg)}.card-face{width:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-sizing:border-box}.card-face--back{position:absolute;top:0;left:0;transform:rotateY(180deg)}.card-scene:hover .card-face--front{border-color:var(--color-border-secondary);transition:border-color .15s}.deal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.deal-header__validity{font-size:10px;color:var(--color-text-tertiary);white-space:nowrap}.shop-badge{display:flex;align-items:center;overflow:hidden;border-radius:6px;height:20px;flex-shrink:0}.shop-badge__name{display:inline-flex;align-items:center;padding:0 7px;font-size:10px;font-weight:600;white-space:nowrap;line-height:20px;opacity:.92}.shop-badge__mechanism{display:inline-flex;align-items:center;padding:0 8px;font-size:10px;font-weight:700;white-space:nowrap;line-height:20px;border-left:1px solid rgba(0,0,0,.15)}.shop-badge--ah .shop-badge__name{background-color:#128dda;color:#fff}.shop-badge--ah .shop-badge__mechanism{background-color:#5bb0e8;color:#fff}.shop-badge--albert_heijn .shop-badge__name{background-color:#128dda;color:#fff}.shop-badge--albert_heijn .shop-badge__mechanism{background-color:#5bb0e8;color:#fff}.shop-badge--aldi .shop-badge__name{background-color:#091065;color:#fff}.shop-badge--aldi .shop-badge__mechanism{background-color:#1a2b8a;color:#fff}.shop-badge--jumbo .shop-badge__name{background-color:#fec308;color:#7a4500}.shop-badge--jumbo .shop-badge__mechanism{background-color:#ffd54f;color:#7a4500}.shop-badge--kruidvat .shop-badge__name{background-color:#d80016;color:#fff}.shop-badge--kruidvat .shop-badge__mechanism{background-color:#f34;color:#fff}.shop-badge--plus .shop-badge__name{background-color:#6eb117;color:#fff}.shop-badge--plus .shop-badge__mechanism{background-color:#8ed43a;color:#fff}.card-body{display:flex;gap:9px;margin-bottom:7px;align-items:flex-start}.card-body__text{flex:1;min-width:0}.card-body__title{font-size:12px;font-weight:500;color:var(--color-text-primary);line-height:1.3;margin:0 0 4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.card-body__image{width:50px;height:50px;border-radius:9px;object-fit:contain;flex-shrink:0;background:var(--color-background-secondary)}@media(min-width:768px){.card-body__image{width:56px;height:56px}}@media(min-width:1280px){.card-body__image{width:64px;height:64px}}.card-body__image--placeholder{display:block}.price-line{display:flex;align-items:baseline;gap:6px;margin-bottom:2px}.price-now{font-size:20px;font-weight:600;letter-spacing:-.02em;color:var(--color-text-primary)}@media(min-width:768px){.price-now{font-size:22px}}@media(min-width:1280px){.price-now{font-size:24px}}.price-was{font-size:11px;color:var(--color-text-tertiary);text-decoration:line-through}.saving{font-size:11px;color:#15803d;font-weight:500;margin-bottom:4px}.pmeta{font-size:10px;color:var(--color-text-tertiary)}.pmeta b{color:var(--color-text-secondary);font-weight:500}.card-actions{display:flex;align-items:center;gap:6px;padding-top:8px;border-top:.5px solid var(--color-border-tertiary)}.btn-flip,.card-actions__compare{flex:1;height:30px;background:#16a34a0f;border:.5px solid var(--color-border-tertiary);border-radius:8px;font-size:11px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 8px;white-space:nowrap}.btn-flip svg,.card-actions__compare svg{flex-shrink:0}.btn-flip:hover,.card-actions__compare:hover{border-color:var(--color-border-secondary)}.btn-flip:active,.card-actions__compare:active{opacity:.8}.card-actions__favorite{width:30px;height:30px;border-radius:8px;background:#16a34a0f;border:.5px solid var(--color-border-tertiary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-text-secondary);padding:0}.card-actions__favorite:hover{border-color:var(--color-border-secondary);background:#16a34a1a}.card-actions__favorite.is-favorite{color:#dc2626;background:#dc26260f;border-color:#dc262633}.card-actions__cart{width:30px;height:30px;border-radius:8px;background:#16a34a0f;border:.5px solid var(--color-border-tertiary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-text-secondary);padding:0}.card-actions__cart:hover{border-color:var(--color-border-secondary);background:#16a34a1a}.card-actions__cart.is-in-cart{color:#2563eb;background:#2563eb0f;border-color:#2563eb33}.card-back-placeholder{display:flex;align-items:center;justify-content:center;min-height:140px;color:var(--color-text-tertiary);font-size:11px}.card-back-placeholder__label{opacity:.6}.card-back{padding:0}.card-back__close{width:28px;height:28px;border-radius:7px;border:.5px solid var(--color-border-tertiary);background:var(--color-background-secondary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-secondary);padding:0;margin-bottom:8px;flex-shrink:0}.card-back__close:hover{border-color:var(--color-border-secondary)}.card-back__title{font-size:13px;font-weight:500;color:var(--color-text-primary);margin:0 0 2px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.card-back__subtitle{font-size:11px;color:var(--color-text-tertiary);display:block;margin-bottom:10px}.card-back__section{margin-top:10px}.card-back__section+.card-back__section{margin-top:12px;padding-top:10px;border-top:.5px solid var(--color-border-tertiary)}.card-back__section-title{font-size:11px;font-weight:500;color:var(--color-text-secondary);margin:0 0 6px}.card-back__sparkline{width:100%}.card-back__sparkline svg{width:100%;height:70px;display:block}.card-back__no-data{font-size:11px;color:var(--color-text-tertiary);font-style:italic}.card-back__comparison-row{display:flex;align-items:center;gap:8px;padding:3px 0}.card-back__shop-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--color-border-secondary)}.card-back__shop-dot--AH,.card-back__shop-dot--ALBERT_HEIJN,.card-back__shop-dot--ah,.card-back__shop-dot--albert_heijn{background:#128dda}.card-back__shop-dot--ALDI,.card-back__shop-dot--aldi{background:#091065}.card-back__shop-dot--JUMBO,.card-back__shop-dot--jumbo{background:#fec308}.card-back__shop-dot--KRUIDVAT,.card-back__shop-dot--kruidvat{background:#d80016}.card-back__shop-dot--PLUS,.card-back__shop-dot--plus{background:#6eb117}.card-back__shop-name{font-size:11px;color:var(--color-text-secondary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-back__shop-price{font-size:11px;font-weight:500;color:var(--color-text-primary);white-space:nowrap}.card-back__badge{font-size:10px;border-radius:4px;padding:1px 5px;white-space:nowrap;flex-shrink:0}.card-back__badge--cheapest{background:#16a34a1f;color:#15803d}.card-back__badge--current{background:var(--color-background-secondary);color:var(--color-text-tertiary)}.cart-product-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm);transition:all var(--transition-fast)}.cart-product-card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-sm)}.cart-product-card__grid{display:grid;grid-template-columns:70px 1fr auto auto auto;grid-template-rows:auto auto;gap:var(--space-sm);align-items:start}@media(max-width:768px){.cart-product-card__grid{grid-template-columns:60px 1fr auto;grid-template-rows:auto auto auto;gap:var(--space-xs)}}.cart-product-card__image{grid-row:1/-1;width:70px;height:70px;border-radius:var(--radius-sm);overflow:hidden;background:var(--color-background-secondary);display:flex;align-items:center;justify-content:center}@media(max-width:768px){.cart-product-card__image{width:60px;height:60px}}.cart-product-card__image img{width:100%;height:100%;object-fit:cover}.cart-product-card__image-placeholder{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-align:center}.cart-product-card__content{grid-column:2;min-width:0}.cart-product-card__title{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin:0 0 var(--space-xxs) 0;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cart-product-card__promotion-mechanism{margin-bottom:var(--space-xxs)}.cart-product-card__promotion-tag{display:inline-block;background:var(--color-primary);color:#fff;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:2px var(--space-xs);border-radius:var(--radius-sm);text-transform:uppercase}.cart-product-card__price-wrapper{margin-bottom:var(--space-xxs)}.cart-product-card__price-promotion .price-current{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--color-success);margin-bottom:2px}.cart-product-card__price-promotion .price-before-line{display:flex;align-items:center;gap:var(--space-xs)}.cart-product-card__price-promotion .price-before-line .price-before{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-decoration:line-through}.cart-product-card__price-promotion .price-before-line .quantity-info{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.cart-product-card__price{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.cart-product-card__price--promotion{color:var(--color-success)}.cart-product-card__sales-unit{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-left:var(--space-xs)}.cart-product-card__quantity{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}@media(max-width:768px){.cart-product-card__quantity{grid-column:1/-1;grid-row:2;flex-direction:row;justify-content:space-between;align-items:center}}.cart-product-card__quantity-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin-bottom:var(--space-xxs)}@media(max-width:768px){.cart-product-card__quantity-label{margin-bottom:0}}.cart-product-card__quantity-controls{display:flex;align-items:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.cart-product-card__quantity-btn{width:32px;height:32px;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.cart-product-card__quantity-btn:hover:not(:disabled){background:var(--color-background-secondary);color:var(--color-primary)}.cart-product-card__quantity-btn:disabled{opacity:.5;cursor:not-allowed}.cart-product-card__quantity-btn svg{width:16px;height:16px}.cart-product-card__quantity-input{width:50px;height:32px;border:none;background:transparent;text-align:center;font-size:var(--font-size-sm);color:var(--color-text-primary)}.cart-product-card__quantity-input:focus{outline:none;background:var(--color-background-secondary)}.cart-product-card__quantity-input::-webkit-outer-spin-button,.cart-product-card__quantity-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.cart-product-card__quantity-input[type=number]{-moz-appearance:textfield}.cart-product-card__remove{display:flex;align-items:center}@media(max-width:768px){.cart-product-card__remove{grid-column:3;grid-row:1}}.cart-product-card__remove-btn{width:36px;height:36px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.cart-product-card__remove-btn:hover{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.cart-product-card__remove-btn svg{width:18px;height:18px}.cart-product-card__line-total{display:flex;flex-direction:column;align-items:center;gap:var(--space-xxs)}@media(max-width:768px){.cart-product-card__line-total{grid-column:1/-1;grid-row:3;flex-direction:row;justify-content:space-between;align-items:center;padding-top:var(--space-sm);border-top:1px solid var(--color-border)}}.cart-product-card__line-total-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.cart-product-card__line-total-amount{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.cart-product-card.htmx-request{opacity:.7;pointer-events:none}.cart-product-card__line-total-amount{transition:color var(--transition-fast)}.cart-product-card__line-total-amount.updating{color:var(--color-primary)}.cart-layout{max-width:1200px;margin:0 auto;padding:var(--space-md)}.cart-layout__header{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-md);border:1px solid var(--color-border)}.cart-layout__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--space-sm) 0}.cart-layout__summary{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-sm)}.cart-layout__grand-total{display:flex;align-items:center;gap:var(--space-sm)}.cart-layout__grand-total-label{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.cart-layout__grand-total-amount{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-success);background:var(--color-success-background);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm)}.cart-layout__actions{display:flex;gap:var(--space-sm)}.cart-layout__clear-btn{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.cart-layout__clear-btn:hover{background:var(--color-danger-hover);border-color:var(--color-danger-hover)}.cart-layout__content{display:flex;flex-direction:column;gap:var(--space-xl)}.cart-layout__shop-group{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);overflow:hidden}.cart-layout__shop-header{background:var(--color-background-secondary);padding:var(--space-md) var(--space-lg);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--color-border)}.cart-layout__shop-info{display:flex;align-items:center;gap:var(--space-sm)}.cart-layout__shop-logo{width:32px;height:20px;object-fit:contain}.cart-layout__shop-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.cart-layout__shop-count{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.cart-layout__shop-total{display:flex;align-items:center;gap:var(--space-sm)}.cart-layout__shop-total-label{font-size:var(--font-size-md);color:var(--color-text-secondary)}.cart-layout__shop-total-amount{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-success);background:var(--color-success-background);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm)}.cart-layout__shop-products{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm)}.cart-layout__empty{text-align:center;padding:var(--space-xl);background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border)}.cart-layout__empty-icon{margin-bottom:var(--space-lg);color:var(--color-text-tertiary)}.cart-layout__empty-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-md) 0}.cart-layout__empty-text{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:0 0 var(--space-lg) 0}@media(max-width:768px){.cart-layout{padding:var(--space-sm)}.cart-layout__header{padding:var(--space-md)}.cart-layout__summary{flex-direction:column;align-items:stretch}.cart-layout__grand-total{justify-content:center}.cart-layout__grand-total-label,.cart-layout__grand-total-amount{font-size:var(--font-size-md)}.cart-layout__shop-header{flex-direction:column;gap:var(--space-sm);align-items:stretch}.cart-layout__shop-info,.cart-layout__shop-total{justify-content:center}.cart-layout__shop-products{padding:var(--space-sm)}}.product-info{max-width:800px;margin:0 auto;padding:var(--space-md);animation:fadeIn .3s ease-in-out}.product-info__header{margin-bottom:var(--space-lg)}.product-info__back-btn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--space-sm) var(--space-md);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-size-sm)}.product-info__back-btn:hover{background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}.product-info .product-card--detailed{margin-bottom:var(--space-lg)}.product-info .product-card--detailed .product-card__grid{display:flex!important;flex-direction:column!important;gap:var(--space-sm);padding:var(--space-md)}.product-info .product-card--detailed .product-card__left,.product-info .product-card--detailed .product-card__center,.product-info .product-card--detailed .product-card__right{display:none!important}.product-info .product-card--detailed .product-card__mobile-header,.product-info .product-card--detailed .product-card__image:not(.product-card__left .product-card__image),.product-info .product-card--detailed .product-card__content{display:flex!important}.product-info .product-card--detailed .product-card__content{flex-direction:column!important}.product-info .product-card--detailed .product-card__image,.product-info .product-card--detailed .product-card__image--large{height:300px!important;margin-bottom:var(--space-md)}@media(max-width:768px){.product-info .product-card--detailed .product-card__image,.product-info .product-card--detailed .product-card__image--large{height:200px!important}}.product-info .product-card--detailed .product-card__image img,.product-info .product-card--detailed .product-card__image--large img{width:100%;height:100%;object-fit:contain;background:transparent}.product-info .product-card--detailed .product-card__title,.product-info .product-card--detailed .product-card__title--large{font-size:var(--font-size-xl)!important;margin-bottom:var(--space-sm)}.product-info .product-card--detailed .product-card__price,.product-info .product-card--detailed .product-card__price--large{font-size:var(--font-size-xxl)!important}.product-info .product-card--detailed .product-card__actions{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md);justify-content:flex-start}.product-info .product-card--detailed .product-card__action-btn{width:44px;height:44px}.product-info .product-card--detailed .product-card__action-btn img,.product-info .product-card--detailed .product-card__action-btn svg{width:20px;height:20px}.product-info .product-card--detailed .product-card__shop-logo{width:60px;height:36px;margin-bottom:var(--space-sm)}.product-info .product-card--detailed .product-card__shop-logo img{width:100%;height:100%;object-fit:contain}.product-info__sections{display:flex;flex-direction:column;gap:var(--space-lg)}.product-info__section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);overflow:hidden}.product-info__section-title{background:var(--color-background);border-bottom:1px solid var(--color-border);padding:var(--space-md);margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);display:flex;align-items:center;gap:var(--space-sm)}.product-info__section-icon{width:20px;height:20px}.product-info__section-content{padding:var(--space-md)}.product-info__price-history{display:flex;flex-direction:column;gap:var(--space-sm)}.product-info__price-entry{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm);background:var(--color-background);border-radius:var(--border-radius-sm);border:1px solid var(--color-border)}.product-info__price-date{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.product-info__price-value{font-weight:var(--font-weight-semibold);color:var(--color-primary)}.product-info__similar-products{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-md)}@media(max-width:768px){.product-info__similar-products{grid-template-columns:1fr}}.product-info__similar-product{display:flex;gap:var(--space-sm);padding:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--border-radius-md);background:var(--color-background);cursor:pointer;transition:all var(--transition-fast)}.product-info__similar-product:hover{border-color:var(--color-primary);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.product-info__similar-image{width:60px;height:60px;border-radius:var(--border-radius-sm);overflow:hidden;flex-shrink:0}.product-info__similar-image img{width:100%;height:100%;object-fit:contain;background:transparent}.product-info__similar-placeholder{width:100%;height:100%;background:var(--color-border);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.product-info__similar-details{flex:1;display:flex;flex-direction:column;gap:var(--space-xxs)}.product-info__similar-title{font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-sm);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-info__similar-shop{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.product-info__similar-price{font-weight:var(--font-weight-semibold);color:var(--color-primary);font-size:var(--font-size-sm)}.product-info__empty-state{text-align:center;padding:var(--space-lg);color:var(--color-text-secondary)}.product-info__empty-state p{margin:0;font-style:italic}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.product-info{padding:var(--space-sm)}.product-info__similar-products{gap:var(--space-sm)}.product-info__section-content{padding:var(--space-sm)}}.product-list-wrapper{margin:0;padding-right:var(--space-xxs);padding-left:var(--space-xxs);width:100%}.loading-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#ffffffd9;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s ease;transition-delay:.5s}.loading-overlay.htmx-request{opacity:1;pointer-events:auto;transition-delay:0s}.loading-spinner{width:48px;height:48px;border:4px solid var(--color-border);border-top:4px solid var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;box-shadow:0 4px 12px #0000001a}@media(prefers-color-scheme:dark){.loading-overlay{background:#000000d9}}@media(prefers-reduced-motion:reduce){.loading-spinner{animation:none;border-top-color:transparent;border-right-color:var(--color-primary)}.loading-overlay{transition:none;transition-delay:0s}}.product-card{opacity:0;animation:fadeIn .3s ease forwards;will-change:opacity}.product-card:nth-child(1){animation-delay:.05s}.product-card:nth-child(2){animation-delay:.1s}.product-card:nth-child(3){animation-delay:.15s}.product-card:nth-child(4){animation-delay:.2s}.product-card:nth-child(n+5){animation-delay:.25s}@keyframes fadeIn{to{opacity:1}}@media(prefers-reduced-motion:reduce){.product-card{animation:none;opacity:1;will-change:auto}}.fast-scroll .product-card{animation:none!important;opacity:1!important;will-change:auto}.fast-scroll .product-card:nth-child(n){animation-delay:0s!important}.product-update-notification{position:fixed;bottom:var(--space-lg);left:50%;transform:translate(-50%) translateY(100px);background-color:var(--color-surface-dark);color:var(--color-surface-text);padding:var(--space-xs) var(--space-md);border-radius:var(--border-radius-md);opacity:0;transition:transform .3s ease,opacity .3s ease;z-index:1000;font-size:var(--font-size-sm)}.product-update-notification.visible{transform:translate(-50%) translateY(0);opacity:.9}.loading-indicator{text-align:center;padding:var(--space-md);color:var(--color-text-secondary)}.all-loaded{display:inline-block;padding:var(--space-xs) var(--space-md);background-color:var(--color-surface);border-radius:var(--border-radius-md);font-size:var(--font-size-sm)}.pagination-info{margin-top:var(--space-lg);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.filter-chips{display:flex;flex-wrap:nowrap;gap:var(--space-xxs);margin-bottom:var(--space-sm);overflow-x:auto;padding-bottom:var(--space-xxs);scrollbar-width:none;-webkit-overflow-scrolling:touch}.filter-chips::-webkit-scrollbar{display:none}.filter-chips:empty{display:none}.filter-chips__container{display:flex;flex-wrap:nowrap;gap:var(--space-xs);padding:var(--space-xxs) 0}.filter-chips__empty{color:var(--color-text-secondary);font-size:var(--font-size-sm);padding:var(--space-xxs) 0}.filter-chip{display:inline-flex;align-items:center;padding:2px var(--space-xs);background-color:var(--color-primary-translucent);color:var(--color-primary);border-radius:var(--border-radius-pill);font-size:var(--font-size-xxs);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);min-height:calc(var(--font-size-xxs) + 4px);border:1px solid var(--color-primary-translucent);white-space:nowrap;flex-shrink:0}.filter-chip:hover{background-color:var(--color-primary-translucent)}.filter-chip__label{display:flex;align-items:center;gap:var(--space-xxs)}.filter-chip__label img{width:14px;height:14px}.filter-chip__type{color:var(--color-text-secondary);font-weight:var(--font-weight-medium);font-size:var(--font-size-xxs)}.filter-chip__type:after{content:":";margin-right:2px}.filter-chip__value{margin-left:var(--space-xxs)}.filter-chip__remove{margin-left:var(--space-xs);background:none;border:none;color:var(--color-primary);cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%}.filter-chip__remove:hover{background-color:#0000001a;transform:scale(1.1)}.filter-chip__remove:active{transform:scale(.9)}.filter-chip--active{background-color:var(--color-primary-subtle);border-color:var(--color-primary)}.filter-chip--active .filter-chip__type,.filter-chip--active .filter-chip__value{color:var(--color-primary)}.filter-chip--clear-all{background-color:var(--color-surface);border:1px dashed var(--color-border);color:var(--color-text-secondary)}.filter-chip--clear-all:hover{background-color:var(--color-surface-hover);color:var(--color-danger)}.filter-chip__clear-all{background:none;border:none;color:inherit;font-size:var(--font-size-xxs);cursor:pointer;padding:0;font-weight:var(--font-weight-medium)}.filter-chip.pending{opacity:.6;pointer-events:none;transition:opacity .2s ease}.filter-chip.removing{opacity:.3;transform:scale(.95);transition:all .2s ease;pointer-events:none}.filter-chip.clearing{opacity:.4;pointer-events:none;transform:scale(.98);transition:all .2s ease}.filter-chip[data-hx-request]{pointer-events:none;opacity:.7}.filter-chip.htmx-added{animation:chip-added .3s ease forwards}.filter-chip.htmx-removing{animation:chip-removed .3s ease forwards}.filter-chip--shop-ah,.filter-chip--shop-albert_heijn{background:#128dda14;color:#0b6fad;border-color:#128dda40}.filter-chip--shop-ah .filter-chip__remove,.filter-chip--shop-albert_heijn .filter-chip__remove{color:#0b6fad}.filter-chip--shop-aldi{background:#09106514;color:#091065;border-color:#09106533}.filter-chip--shop-aldi .filter-chip__remove{color:#091065}.filter-chip--shop-jumbo{background:#fec3081f;color:#7a4500;border-color:#fec30859}.filter-chip--shop-jumbo .filter-chip__remove{color:#7a4500}.filter-chip--shop-kruidvat{background:#d800160f;color:#b80014;border-color:#d8001633}.filter-chip--shop-kruidvat .filter-chip__remove{color:#b80014}.filter-chip--shop-plus{background:#6eb11714;color:#4a7a0e;border-color:#6eb11740}.filter-chip--shop-plus .filter-chip__remove{color:#4a7a0e}.filter-chip--sort{background:#64748b14;color:#475569;border-color:#64748b33}.filter-chip--sort .filter-chip__remove{color:#475569}.filter-chip--search{background:#7c3aed14;color:#6d28d9;border-color:#7c3aed33}.filter-chip--search .filter-chip__remove{color:#6d28d9}.filter-chip--category{background:#f59e0b14;color:#b45309;border-color:#f59e0b33}.filter-chip--category .filter-chip__remove{color:#b45309}.filter-chip--promotion{background:#16a34a14;color:#16a34a;border-color:#16a34a33}.filter-chip--promotion .filter-chip__remove{color:#16a34a}@keyframes chip-added{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes chip-removed{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-10px) scale(.8)}}@media(min-width:768px){.filter-chips{flex-wrap:wrap;overflow-x:visible}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.filter-section{margin-bottom:var(--space-md);border-bottom:1px solid var(--color-border-subtle);padding-bottom:var(--space-md)}.filter-section:last-child{border-bottom:none;margin-bottom:0}.filter-section__header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:var(--space-xs) var(--space-xs);border-radius:var(--border-radius-sm);transition:background-color .2s ease}.filter-section__header:hover{background-color:var(--color-surface)}.filter-section__header:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.filter-section__header h4{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);margin:0;display:flex;align-items:center}.filter-section__header h4 .filter-count-badge{display:inline-flex;align-items:center;justify-content:center;background-color:var(--color-primary);color:#fff;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);border-radius:50%;width:20px;height:20px;margin-left:var(--space-xs)}.filter-section__toggle{transition:transform .3s ease;color:var(--color-text-secondary);font-size:14px}.filter-section__toggle.open{transform:rotate(180deg)}.filter-section__content{overflow:hidden;transition:max-height .3s ease;max-height:1000px}.filter-section__content.collapsed{max-height:0}.shop-filters{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-sm);padding:var(--space-sm) 0}.shop-filter{display:flex;flex-direction:column;align-items:center;cursor:pointer;padding:var(--space-sm);border-radius:var(--border-radius-md);transition:all .2s ease;background-color:var(--color-surface)}.shop-filter.active{background-color:var(--color-primary-subtle);border:1px solid var(--color-primary)}.shop-filter:hover{transform:translateY(-2px);box-shadow:var(--shadow-small)}.shop-filter:focus-within{outline:2px solid var(--color-primary);outline-offset:2px}.shop-filter__icon{width:60px;height:40px;display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-xs)}.shop-filter__icon img{max-width:100%;max-height:100%;object-fit:contain;display:inline}.shop-filter__icon.shop-icon-fixed{width:60px;height:40px;display:flex;align-items:center;justify-content:center}.shop-filter .shop-icon-img-fixed{max-width:100%;max-height:100%;object-fit:contain;display:inline}.shop-filter span{font-size:var(--font-size-sm);text-align:center}.shop-filter input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.category-filters{display:flex;flex-wrap:wrap;gap:var(--space-xs);padding:var(--space-sm) 0}.category-filter{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-sm);border-radius:var(--border-radius-full);background-color:var(--color-surface);cursor:pointer;transition:all .2s ease}.category-filter.active{background-color:var(--color-primary);color:#fff}.category-filter:hover:not(.active){background-color:var(--color-surface-hover)}.category-filter:focus-within{outline:2px solid var(--color-primary);outline-offset:2px}.category-filter input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.category-filter span{font-size:var(--font-size-sm)}.price-range-filters{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm) 0;margin-bottom:var(--space-md)}.price-range-filter{display:flex;align-items:center;padding:var(--space-xs) var(--space-sm);border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color .2s ease}.price-range-filter.active{background-color:var(--color-primary-subtle)}.price-range-filter:hover:not(.active){background-color:var(--color-surface-hover)}.price-range-filter:focus-within{outline:2px solid var(--color-primary);outline-offset:2px}.price-range-filter input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:18px;height:18px;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);margin-right:var(--space-sm);background-color:var(--color-surface-elevated);cursor:pointer;position:relative;transition:all .2s ease}.price-range-filter input[type=checkbox]:checked{background-color:var(--color-primary);border-color:var(--color-primary)}.price-range-filter input[type=checkbox]:checked:after{content:"";position:absolute;top:3px;left:6px;width:4px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.price-range-filter input[type=checkbox]:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.price-range-filter span{font-size:var(--font-size-sm)}.filter-loading{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.filter-loading.is-hidden{display:none}.filter-loading.is-active,.filter-loading.htmx-request{display:flex}.filter-loading__spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spinner .8s linear infinite}@keyframes spinner{to{transform:rotate(360deg)}}.filter-actions{display:flex;justify-content:space-between;padding:var(--space-md) 0 var(--space-sm);position:sticky;bottom:0;background-color:var(--color-surface-elevated);z-index:1;border-top:1px solid var(--color-border);margin-top:var(--space-md)}.filter-actions .button{border-radius:var(--border-radius-md);padding:var(--space-sm) var(--space-md);font-weight:var(--font-weight-medium);transition:all .2s ease}.filter-actions .button--primary{background-color:var(--color-primary);color:#fff;border:none;flex-grow:2}.filter-actions .button--primary:hover{background-color:var(--color-primary-hover);transform:translateY(-1px)}.filter-actions .button--primary:active{transform:translateY(1px)}.filter-actions .button--primary:focus-visible{outline:2px solid var(--color-primary-dark);outline-offset:2px}.filter-actions .button--secondary{background-color:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border);margin-left:var(--space-sm)}.filter-actions .button--secondary:hover{background-color:var(--color-surface-hover);color:var(--color-text-primary)}.filter-actions .button--secondary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.search-suggestions{margin-top:var(--space-xs);background-color:var(--color-surface-elevated);border-radius:var(--border-radius-md);box-shadow:var(--shadow-medium);overflow:hidden;max-height:250px;overflow-y:auto}.search-suggestions .search-suggestion{padding:var(--space-sm) var(--space-md);cursor:pointer;transition:background-color .2s ease}.search-suggestions .search-suggestion:hover,.search-suggestions .search-suggestion:focus{background-color:var(--color-surface-hover)}.search-suggestions .search-suggestion:active{background-color:var(--color-primary-subtle)}.sort-options{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md) 0}.sort-option{display:flex;align-items:center;padding:var(--space-md);border-radius:var(--border-radius-md);background-color:var(--color-surface);cursor:pointer;transition:all .2s ease}.sort-option:hover{background-color:var(--color-surface-hover)}.sort-option:focus-within{outline:2px solid var(--color-primary);outline-offset:2px}.sort-option input[type=radio]{margin-right:var(--space-md)}.sort-option span{font-size:var(--font-size-md)}.search-container{padding:var(--space-md) 0}.search-container form{display:flex;flex-direction:column;gap:var(--space-md)}.search-container input[type=text]{padding:var(--space-md);border-radius:var(--border-radius-md);border:1px solid var(--color-border);font-size:var(--font-size-md);background-color:var(--color-surface)}.search-container input[type=text]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-translucent)}@keyframes dialog-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes dialog-fade-in{0%{opacity:0;transform:translate(-50%,-45%)}to{opacity:1;transform:translate(-50%,-50%)}}@keyframes backdrop-fade{0%{opacity:0}to{opacity:1}}@media(min-width:768px){.filter-dialog:not(.is-tabbed)[open]{max-width:480px;left:auto;right:0;border-radius:var(--border-radius-lg) 0 0 0;box-shadow:var(--shadow-xl)}.shop-filters{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}@media(prefers-color-scheme:dark){.filter-dialog::backdrop{background-color:#000000b3}.shop-filter{background-color:var(--color-surface-dark)}.shop-filter.active{background-color:var(--color-primary-dark)}.category-filter{background-color:var(--color-surface-dark)}.category-filter.active{background-color:var(--color-primary-dark)}}.filter-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:2999;opacity:0;visibility:hidden;transition:opacity var(--transition-normal),visibility var(--transition-normal)}.filter-backdrop.active{opacity:1;visibility:visible}.filter-sidebar{position:fixed;left:0;right:0;bottom:0;width:100%;max-height:90vh;background-color:var(--color-surface-elevated);border-radius:var(--border-radius-lg) var(--border-radius-lg) 0 0;box-shadow:0 -3px 6px #00000026;transform:translateY(100%);transition:transform var(--transition-normal);z-index:3000;display:flex;flex-direction:column;overflow:hidden}.filter-sidebar #filter-sidebar-container,.filter-sidebar #filter-form{display:flex;flex-direction:column;flex:1 1 0;min-height:0;overflow:hidden}.filter-sidebar.active{transform:translateY(0)}@media(min-width:860px){.filter-sidebar{top:0;bottom:auto;right:auto;width:410px;max-height:100vh;height:100vh;border-radius:0;border-right:1px solid var(--color-border);box-shadow:var(--shadow-small);transform:translate(-100%)}.filter-sidebar.active{transform:translate(0)}}.filter-sidebar__drag-handle{display:flex;justify-content:center;padding:var(--space-sm) 0 var(--space-xxs);cursor:grab;flex-shrink:0;touch-action:none}.filter-sidebar__drag-handle:active{cursor:grabbing}@media(min-width:860px){.filter-sidebar__drag-handle{display:none}}.filter-sidebar__drag-bar{width:40px;height:4px;border-radius:2px;background:var(--color-border)}.filter-sidebar__header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-xs) var(--space-md);border-bottom:1px solid var(--color-border);background:var(--color-surface-elevated);flex-shrink:0}.filter-sidebar__title{margin:0;font-size:var(--font-size-lg);font-weight:600;line-height:1.2;color:var(--color-text-primary)}.filter-sidebar__clear-link{background:none;border:1px solid var(--color-border);color:var(--color-danger, #f44336);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;padding:var(--space-xxs) var(--space-sm);border-radius:var(--border-radius-md);transition:all var(--transition-fast)}.filter-sidebar__clear-link:hover{background:var(--color-danger-translucent, rgba(244, 67, 54, .08));border-color:var(--color-danger, #f44336)}.filter-sidebar__close-button{background:none;border:1px solid var(--color-border);font-size:1.25rem;cursor:pointer;padding:var(--space-xs);line-height:1;color:var(--color-text-secondary);border-radius:var(--border-radius-md);transition:all var(--transition-fast);width:32px;height:32px;display:flex;align-items:center;justify-content:center}.filter-sidebar__close-button:hover{background:var(--color-surface);border-color:var(--color-text-secondary)}.filter-sidebar__close-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.filter-sidebar__content{padding:var(--space-md);flex:1 1 0;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.filter-sidebar__section{margin-bottom:var(--space-md);border:none;padding:0}.filter-sidebar__section:last-child{margin-bottom:0}.filter-sidebar__section-title{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-sm);padding:0;background:none;text-transform:none;letter-spacing:normal;line-height:1.2}.filter-sidebar__section-title:before{display:none}.filter-sidebar__footer{padding:var(--space-sm) var(--space-md);border-top:1px solid var(--color-border);background:var(--color-surface-elevated);display:flex;flex-direction:column;gap:var(--space-sm);flex-shrink:0;box-shadow:none}.filter-actions{display:flex;flex-direction:column;gap:var(--space-sm)}.filter-actions .button--save-defaults{background:var(--color-success);color:#fff!important;border:none;min-width:180px;padding:var(--space-sm) var(--space-md);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);white-space:nowrap;display:flex;align-items:center;justify-content:center;gap:.5rem;border-radius:var(--border-radius-md);transition:background var(--transition-fast)}.filter-actions .button--save-defaults:hover{background:var(--color-success-hover)}.filter-actions .button--save-defaults:disabled{opacity:.6;cursor:not-allowed}.save-feedback{min-height:20px}.save-feedback .success-message{color:var(--color-success);font-size:var(--font-size-sm);padding:var(--space-xs);background:var(--color-success-translucent);border-radius:var(--border-radius-sm);text-align:center;border:1px solid var(--color-success)}.save-feedback .error-message{color:var(--color-danger);font-size:var(--font-size-sm);padding:var(--space-xs);background:var(--color-danger-translucent);border-radius:var(--border-radius-sm);text-align:center;border:1px solid var(--color-danger)}.filter-toggle-group{display:flex;gap:var(--space-xxs)}.filter-toggle-group .filter-toggle{flex:1;display:flex;align-items:center;justify-content:center;height:36px;padding:0 var(--space-sm);border-radius:var(--border-radius-pill);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);transition:all var(--transition-fast)}.filter-toggle-group .filter-toggle input[type=radio]{position:absolute;opacity:0;width:0;height:0}.filter-toggle-group .filter-toggle:hover{background:var(--color-surface-elevated);border-color:var(--color-primary)}.filter-toggle-group .filter-toggle--active,.filter-toggle-group .filter-toggle:has(input:checked){background:var(--color-primary);border-color:var(--color-primary);color:#fff}.filter-shop-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xs)}.filter-shop-grid .filter-shop-button{display:flex;align-items:center;justify-content:center;height:48px;padding:0 var(--space-sm);border-radius:var(--border-radius-md);border:1px solid var(--color-border);background:var(--color-surface-elevated);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast)}.filter-shop-grid .filter-shop-button input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.filter-shop-grid .filter-shop-button:hover{border-color:var(--color-primary);background:#4d8def0a}.filter-shop-grid .filter-shop-button--active,.filter-shop-grid .filter-shop-button:has(input:checked){background:#4d8def14;border-color:var(--color-primary);color:var(--color-primary)}.category-mode-toggle{display:flex;gap:var(--space-xxs);margin-bottom:var(--space-sm);padding:0;background:none;border:none;border-radius:0}.category-mode-toggle .filter-toggle{height:28px;font-size:var(--font-size-xs);padding:0 var(--space-sm)}.filter-group{display:flex;flex-direction:column;gap:var(--space-xxs)}.filter-group--price{flex-direction:row;gap:var(--space-sm);align-items:flex-end}.filter-group--sort{gap:var(--space-xxs)}.filter-group--categories{scrollbar-width:thin}.filter-label{display:flex;align-items:center;font-size:var(--font-size-sm);line-height:1.4;cursor:pointer;padding:var(--space-xxs) var(--space-xs);border-radius:var(--border-radius-md);transition:background var(--transition-fast)}.filter-label:hover{background:var(--color-surface)}.filter-label--radio{margin-bottom:0}.filter-label--price-min,.filter-label--price-max{flex-direction:column;align-items:flex-start;flex:1;padding:0}.filter-label--price-min span,.filter-label--price-max span{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin-bottom:var(--space-xxs)}.filter-label input[type=checkbox],.filter-label input[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border:2px solid #adb5bd;margin-right:var(--space-sm);margin-top:0;flex-shrink:0;position:relative;transition:all var(--transition-fast);background:var(--color-surface-elevated);cursor:pointer}.filter-label input[type=checkbox]:hover,.filter-label input[type=radio]:hover{border-color:var(--color-primary)}.filter-label input[type=checkbox]:focus-visible,.filter-label input[type=radio]:focus-visible{outline:2px solid var(--color-primary-translucent);outline-offset:2px}.filter-label input[type=checkbox]:checked,.filter-label input[type=radio]:checked{background:var(--color-primary);border-color:var(--color-primary)}.filter-label input[type=checkbox]:checked:after,.filter-label input[type=radio]:checked:after{content:"";position:absolute;display:block}.filter-label input[type=checkbox]{border-radius:var(--border-radius-sm)}.filter-label input[type=checkbox]:checked:after{left:4px;top:1px;width:6px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.filter-label input[type=radio]{border-radius:50%}.filter-label input[type=radio]:checked:after{left:50%;top:50%;width:8px;height:8px;border-radius:50%;background:#fff;transform:translate(-50%,-50%)}.filter-input--price{width:100%;padding:10px 12px;border:2px solid var(--color-border);border-radius:var(--border-radius-md);font-size:var(--font-size-sm);background:var(--color-surface-elevated);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.filter-input--price:hover{border-color:var(--color-primary-hover)}.filter-input--price:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #4d8def1a}.filter-input--price::placeholder{color:var(--color-text-secondary);opacity:.7}.filter-sort-link{display:block;padding:var(--space-xxs) var(--space-xs);color:var(--color-text-primary);text-decoration:none;font-size:var(--font-size-sm);line-height:1.4;border-radius:var(--border-radius-md);transition:background var(--transition-fast)}.filter-sort-link:hover{background:var(--color-surface);color:var(--color-primary)}.filter-sort-link.active{background:#4d8def14;color:var(--color-primary);font-weight:var(--font-weight-medium)}.filter-sort-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.filter-sidebar .button{font-size:var(--font-size-sm);padding:var(--space-sm) var(--space-lg);border-radius:var(--border-radius-md);font-weight:var(--font-weight-medium);transition:all var(--transition-fast)}.filter-sidebar .button--secondary{background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border)}.filter-sidebar .button--secondary:hover{background:var(--color-surface-elevated);border-color:var(--color-text-secondary)}.filter-sidebar .button--secondary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.filter-sidebar.loading{pointer-events:none}.filter-sidebar.loading:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:#fffc;z-index:10}.filter-option.pending{opacity:.6;pointer-events:none;transition:opacity .2s ease}.filter-option input[type=checkbox].pending,.filter-option input[type=radio].pending{opacity:.6;pointer-events:none}[data-hx-request] .filter-option input,[data-hx-request] .filter-chip{pointer-events:none;opacity:.7}.filter-sidebar__content::-webkit-scrollbar{width:6px}.filter-sidebar__content::-webkit-scrollbar-track{background:transparent}.filter-sidebar__content::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.filter-sidebar__content::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}@media(prefers-color-scheme:dark){.filter-sidebar .filter-label:hover{background:var(--color-surface)}.filter-sidebar .filter-label input[type=checkbox],.filter-sidebar .filter-label input[type=radio]{border-color:#6b7280;background:#374151}.filter-sidebar .filter-label input[type=checkbox]:hover,.filter-sidebar .filter-label input[type=radio]:hover{border-color:var(--color-primary);background:#4b5563}.filter-sidebar .filter-label input[type=checkbox]:checked,.filter-sidebar .filter-label input[type=radio]:checked{background:var(--color-primary);border-color:var(--color-primary)}.filter-sidebar .filter-label input[type=checkbox]:focus-visible,.filter-sidebar .filter-label input[type=radio]:focus-visible{box-shadow:0 0 0 2px #4d8def4d}.filter-sidebar .filter-input--price{background:#374151;border-color:#6b7280;color:#f9fafb}.filter-sidebar .filter-input--price:hover{border-color:var(--color-primary-hover)}.filter-sidebar .filter-input--price:focus{background:#4b5563;border-color:var(--color-primary);color:#fff}.filter-sidebar .filter-input--price::placeholder{color:#9ca3af}.filter-sidebar .filter-toggle-group .filter-toggle{background:#374151;border-color:#4b5563;color:#9ca3af}.filter-sidebar .filter-toggle-group .filter-toggle--active,.filter-sidebar .filter-toggle-group .filter-toggle:has(input:checked){background:var(--color-primary);border-color:var(--color-primary);color:#fff}.filter-sidebar .filter-shop-grid .filter-shop-button{background:#374151;border-color:#4b5563;color:#d1d5db}.filter-sidebar .filter-shop-grid .filter-shop-button--active,.filter-sidebar .filter-shop-grid .filter-shop-button:has(input:checked){background:#4d8def26;border-color:var(--color-primary);color:var(--color-primary)}.filter-sidebar .filter-backdrop{background:#0009}}.search-bar{display:flex;align-items:center;width:100%;max-width:500px;position:relative}.search-bar__input{width:100%;padding:var(--space-xs) var(--space-md);padding-right:calc(var(--space-md) * 2);border:1px solid var(--color-border);border-radius:var(--border-radius-pill);background-color:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-md);transition:all var(--transition-fast)}.search-bar__input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--focus-ring-color)}.search-bar__input::placeholder{color:var(--color-text-secondary)}.search-bar__button{position:absolute;right:var(--space-xs);top:50%;transform:translateY(-50%);border:none;background:none;color:var(--color-text-secondary);padding:var(--space-xxs);cursor:pointer;transition:color var(--transition-fast)}.search-bar__button:hover{color:var(--color-primary)}.search-bar__button svg{width:20px;height:20px}.search-bar--large .search-bar__input{padding:var(--space-sm) var(--space-lg);padding-right:calc(var(--space-lg) * 2);font-size:var(--font-size-lg)}.search-bar--large .search-bar__button svg{width:24px;height:24px}.search-results{position:absolute;top:100%;left:0;right:0;background-color:var(--color-surface-elevated);border:1px solid var(--color-border);border-top:none;border-radius:0 0 var(--border-radius-md) var(--border-radius-md);box-shadow:var(--shadow-medium);z-index:100;max-height:300px;overflow-y:auto;display:none}.search-results.active{display:block}.search-results__item{padding:var(--space-sm);cursor:pointer;border-bottom:1px solid var(--color-divider);transition:background-color var(--transition-fast)}.search-results__item:hover,.search-results__item.highlighted{background-color:var(--color-surface)}.search-results__item:last-child{border-bottom:none}.search-results__item-title{font-weight:var(--font-weight-medium);margin-bottom:var(--space-xxs)}.search-results__item-meta{font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex;align-items:center;gap:var(--space-xs)}.search-results__item-shop{display:flex;align-items:center;gap:var(--space-xxs)}.search-results__item-shop img{width:16px;height:16px}.search-results__item-price{font-weight:var(--font-weight-medium)}.search-results__no-results{padding:var(--space-md);text-align:center;color:var(--color-text-secondary)}.search-results__footer{padding:var(--space-sm);text-align:center;border-top:1px solid var(--color-divider)}.search-results__footer a{color:var(--color-primary);text-decoration:none;font-weight:var(--font-weight-medium)}.search-results__footer a:hover{text-decoration:underline}.price-slider{margin:var(--space-md) 0}.price-slider__range{width:100%;display:flex;flex-direction:column;gap:var(--space-sm)}.price-slider__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xs)}.price-slider__title{font-weight:var(--font-weight-medium);font-size:var(--font-size-md);color:var(--color-text-primary)}.price-slider__values{display:flex;justify-content:space-between;color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--space-xs)}.price-slider__track{position:relative;width:100%;height:6px;background-color:var(--color-border);border-radius:var(--border-radius-pill);margin:var(--space-md) 0}.price-slider__progress{position:absolute;height:100%;left:0;right:0;background-color:var(--color-primary);border-radius:var(--border-radius-pill)}.price-slider__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;top:0;left:0;width:100%;height:6px;background:transparent;pointer-events:none}.price-slider__input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--color-primary);border:2px solid white;box-shadow:var(--shadow-small);cursor:pointer;pointer-events:auto;transition:transform var(--transition-fast)}.price-slider__input::-webkit-slider-thumb:hover{transform:scale(1.1)}.price-slider__input::-webkit-slider-thumb:active{transform:scale(1.2)}.price-slider__input::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--color-primary);border:2px solid white;box-shadow:var(--shadow-small);cursor:pointer;pointer-events:auto;transition:transform var(--transition-fast)}.price-slider__input::-moz-range-thumb:hover{transform:scale(1.1)}.price-slider__input::-moz-range-thumb:active{transform:scale(1.2)}.price-slider__input:focus{outline:none}.price-slider__input:focus::-webkit-slider-thumb{box-shadow:0 0 0 3px var(--focus-ring-color)}.price-slider__input:focus::-moz-range-thumb{box-shadow:0 0 0 3px var(--focus-ring-color)}.price-slider__input-min{z-index:2}.price-slider__input-max{z-index:1}.price-slider__inputs{display:flex;gap:var(--space-sm);margin-top:var(--space-md)}.price-slider__inputs-field{flex:1;display:flex;align-items:center}.price-slider__inputs-field label{margin-right:var(--space-xs);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.price-slider__inputs-field input{width:100%;padding:var(--space-xs);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm)}.price-slider__inputs-field input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--focus-ring-color)}.auth-page{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:var(--spacing-xl) var(--spacing-md)}.auth-container{width:100%;max-width:480px;background:var(--color-surface);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.auth-header{text-align:center;padding:var(--spacing-xl) var(--spacing-lg) var(--spacing-lg);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:#fff}.auth-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-sm)}.auth-subtitle{font-size:var(--font-size-md);opacity:.9;margin:0}.auth-tabs{display:flex;background:var(--color-background);border-bottom:1px solid var(--color-border)}.auth-tab{flex:1;padding:var(--spacing-md) var(--spacing-lg);background:transparent;border:none;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease;border-bottom:3px solid transparent}.auth-tab:hover{background:var(--color-background-hover);color:var(--color-text)}.auth-tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary);background:var(--color-surface)}.auth-content{padding:var(--spacing-xl) var(--spacing-lg)}.auth-tab-content--active{display:block}.auth-form .form-group{margin-bottom:var(--spacing-lg)}.auth-form .form-group label{display:block;font-weight:var(--font-weight-medium);color:var(--color-text);margin-bottom:var(--spacing-xs)}.auth-form .form-group input{width:100%;padding:var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-md);transition:border-color .2s ease}.auth-form .form-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}.auth-form .form-group input:invalid{border-color:var(--color-error)}.auth-form .form-actions{margin-top:var(--spacing-xl)}.auth-form .form-actions .button{width:100%;justify-content:center}.auth-footer{padding:var(--spacing-lg);text-align:center;background:var(--color-background);border-top:1px solid var(--color-border)}.auth-footer .button{background:transparent;color:var(--color-text-secondary);border:none;font-size:var(--font-size-sm)}.auth-footer .button:hover{color:var(--color-primary);background:transparent}.user-manage-page{padding:var(--spacing-xl) var(--spacing-md);max-width:800px;margin:0 auto}.user-manage-container{background:var(--color-surface);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.user-manage-header{padding:var(--spacing-xl) var(--spacing-lg);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:#fff}.user-manage-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-sm)}.user-manage-subtitle{font-size:var(--font-size-lg);opacity:.9;margin:0}.user-manage-sections{padding:var(--spacing-lg)}.user-section{margin-bottom:var(--spacing-xl)}.user-section:last-child{margin-bottom:0}.user-section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--color-border)}.user-profile-info{display:grid;gap:var(--spacing-md)}.user-info-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0}.user-info-item label{font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.user-info-item span{color:var(--color-text)}.status-badge{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.status-badge--active{background:var(--color-success-light);color:var(--color-success-dark)}.status-badge--inactive{background:var(--color-error-light);color:var(--color-error-dark)}.status-badge--subscribed{background:var(--color-primary-light);color:var(--color-primary-dark)}.user-preferences .placeholder-content{text-align:center;padding:var(--spacing-xl);background:var(--color-background);border-radius:var(--border-radius);border:2px dashed var(--color-border)}.user-preferences .placeholder-icon{font-size:var(--font-size-3xl);margin-bottom:var(--spacing-md)}.user-preferences .placeholder-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-sm)}.user-preferences .placeholder-description{color:var(--color-text-secondary);margin-bottom:var(--spacing-md)}.user-preferences .placeholder-list{text-align:left;display:inline-block;color:var(--color-text-secondary);margin:0}.user-preferences .placeholder-list li{margin-bottom:var(--spacing-xs)}.user-actions .action-group{padding:var(--spacing-lg);background:var(--color-background);border-radius:var(--border-radius);border:1px solid var(--color-border)}.user-actions .action-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-xs)}.user-actions .action-description{color:var(--color-text-secondary);margin-bottom:var(--spacing-md)}.user-actions .logout-form{margin:0}.user-actions .logout-form .button{min-width:120px}.user-manage-footer{padding:var(--spacing-lg);text-align:center;background:var(--color-background);border-top:1px solid var(--color-border)}.user-manage-footer .button{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.user-manage-footer .button:hover{color:var(--color-primary);border-color:var(--color-primary);background:transparent}#auth-content-area{margin-top:var(--spacing-md);min-height:50px}#auth-content-area .auth-error{padding:var(--spacing-md);background:var(--color-error-light);color:var(--color-error-dark);border-radius:var(--border-radius);text-align:center}#auth-content-area .auth-error h3{margin-bottom:var(--spacing-sm);font-size:var(--font-size-md)}#auth-content-area .auth-error p{margin-bottom:var(--spacing-md)}#auth-content-area .auth-success-message{padding:var(--spacing-md);background:var(--color-success-light);color:var(--color-success-dark);border-radius:var(--border-radius);text-align:center;font-weight:var(--font-weight-medium)}@media(max-width:480px){.auth-page{padding:var(--spacing-md) var(--spacing-sm);min-height:50vh}.auth-container{box-shadow:none;border-radius:0}.auth-header{padding:var(--spacing-lg) var(--spacing-md)}.auth-title{font-size:var(--font-size-xl)}.auth-content{padding:var(--spacing-lg) var(--spacing-md)}.user-manage-page{padding:var(--spacing-md) var(--spacing-sm)}.user-manage-container{box-shadow:none;border-radius:0}.user-info-item{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}}.product-card__debug{font-size:var(--font-size-xs);color:var(--color-text-secondary);background:var(--color-background);padding:var(--spacing-sm);margin-top:var(--spacing-sm);border-radius:var(--border-radius);border:1px solid var(--color-border)}.product-card__debug__title{font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-xs)}.product-card__debug__content{font-family:var(--font-family-mono);white-space:pre-wrap;line-height:1.2;font-size:var(--font-size-xs)}.production .product-card__debug{display:none}.debug-message{padding:var(--spacing-sm);background:var(--color-warning-light);color:var(--color-warning-dark);border-radius:var(--border-radius);font-size:var(--font-size-sm);margin:var(--spacing-sm) 0;border:1px solid var(--color-warning)}.debug-message--hidden{display:none}.debug-message--visible{display:block}.production .debug-message{display:none!important}.htmx-debug-message{position:fixed;bottom:var(--spacing-lg);right:var(--spacing-lg);background:var(--color-primary);color:#fff;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);font-size:var(--font-size-sm);z-index:var(--z-index-toast);box-shadow:var(--shadow-lg);display:none}.htmx-debug-message--visible{display:block}.production .htmx-debug-message{display:none!important}.navigation__list{display:flex;list-style:none;padding:0;margin:0}.navigation__list--horizontal{flex-direction:row;gap:var(--space-md)}.navigation__list--vertical{flex-direction:column;gap:var(--space-sm)}.navigation__item--has-dropdown{position:relative}.navigation__link{text-decoration:none;color:var(--color-text-primary);font-weight:var(--font-weight-medium);transition:color var(--transition-fast);display:flex;align-items:center;gap:var(--space-xs)}.navigation__link:hover{color:var(--color-primary)}.navigation__link.active{color:var(--color-primary);font-weight:var(--font-weight-bold)}.navigation__link svg{width:16px;height:16px}.navigation__dropdown{position:absolute;top:100%;left:0;min-width:200px;background-color:var(--color-surface-elevated);border-radius:var(--border-radius-md);box-shadow:var(--shadow-medium);padding:var(--space-xs) 0;z-index:1000;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity var(--transition-fast),transform var(--transition-fast)}.navigation__dropdown.active{opacity:1;transform:translateY(0);pointer-events:auto}.navigation__dropdown-item{padding:var(--space-xs) var(--space-md)}.navigation__dropdown-item:hover{background-color:var(--color-surface)}.navigation__dropdown-link{text-decoration:none;color:var(--color-text-primary);display:block;transition:color var(--transition-fast)}.navigation__dropdown-link:hover{color:var(--color-primary)}.navigation--mobile .navigation__list{flex-direction:column;gap:var(--space-sm)}.navigation--mobile .navigation__link{padding:var(--space-sm) 0;font-size:var(--font-size-lg);border-bottom:1px solid var(--color-border)}.navigation--mobile .navigation__dropdown{position:static;box-shadow:none;opacity:1;transform:none;pointer-events:auto;background-color:transparent;padding:0;padding-left:var(--space-md);display:none}.navigation--mobile .navigation__dropdown.active{display:block}.navigation--mobile .navigation__dropdown-item{padding:var(--space-xs) 0}.navigation--mobile .navigation__dropdown-item:hover{background-color:transparent}.component3-number{text-align:center;padding:100px 0;font-size:150px;font-weight:700;color:var(--color-accent)}.component3-content{text-align:center;padding:20px}.component4-container{background-color:#ffa5001a;padding:20px;border-radius:10px;margin:20px 0;border:2px solid orange}.component4-number{text-align:center;padding:20px 0;font-size:150px;font-weight:700;color:orange}.component4-content{text-align:center}.debug-container{border:2px dashed var(--color-accent);padding:20px;margin:20px 0;border-radius:var(--border-radius);background-color:rgba(var(--color-accent-rgb),.05)}.debug-container__title{font-size:.9em;font-weight:700}.debug-container__content{margin-top:5px;font-size:.8em}.debug-info{color:#999;font-size:.8rem;margin-top:1rem;padding:.5rem;border:1px dashed #ddd}.debug-button{background-color:var(--color-button-primary-bg);color:var(--color-button-primary-text);border:none;padding:10px 20px;border-radius:var(--border-radius);font-weight:700;margin:10px 5px;cursor:pointer}.debug-button:hover{background-color:var(--color-button-primary-hover)}.debug-button--secondary{background-color:var(--color-button-secondary-bg);color:var(--color-button-secondary-text)}.debug-button--secondary:hover{background-color:var(--color-button-secondary-hover)}.debug-button--danger{background-color:var(--color-error);color:#fff}.debug-button--danger:hover{background-color:var(--color-error-hover, #c62828)}.debug-info-panel{background-color:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--border-radius);padding:15px;margin-top:20px;font-family:monospace;font-size:14px;max-height:200px;overflow-y:auto;white-space:pre-wrap}#htmx-debug-message{position:fixed;bottom:110px;left:10px;background-color:#0064ffcc;color:#fff;padding:5px 10px;border-radius:5px;z-index:9999;font-size:14px;max-width:90%;display:none}.component-banner{background-color:var(--color-primary);color:#fff;text-align:center;padding:var(--space-md) 0}.component-2__number{text-align:center;padding:100px 0;font-size:150px;font-weight:700;color:var(--color-primary-light)}.component-2__content{text-align:center}.auth-panel{width:100%;max-width:520px;margin:2rem auto;background:#fff;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-large);overflow:hidden;position:relative}.auth-panel:before{content:"";position:absolute;top:0;left:0;right:0;height:200px;background:linear-gradient(135deg,#4d8def1a,#ff6b6b0d);z-index:0}.auth-panel__header{text-align:center;padding:var(--space-xxl) var(--space-xl) var(--space-xl);position:relative;z-index:1}.auth-panel__title{font-size:var(--font-size-xxl);font-weight:var(--font-weight-bold);margin:0 0 var(--space-sm) 0;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-accent) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;line-height:var(--line-height-tight)}.auth-panel__subtitle{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin:0}.auth-panel__tabs{display:flex;background:var(--color-surface);border-bottom:1px solid var(--color-divider);position:relative;z-index:1}.auth-panel__content{padding:var(--space-xl);background:#fff;position:relative;z-index:1}.auth-panel__messages{margin-top:var(--space-md);min-height:20px}.auth-panel__footer{padding:var(--space-lg);text-align:center;background:var(--color-surface);border-top:1px solid var(--color-divider)}.auth-tab{flex:1;padding:var(--space-md) var(--space-lg);background:transparent;border:none;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-normal);position:relative}.auth-tab:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:3px;background:var(--color-primary);transform:scaleX(0);transition:transform var(--transition-normal)}.auth-tab:hover{color:var(--color-text-primary);background:#4d8def0d}.auth-tab--active{color:var(--color-primary);font-weight:var(--font-weight-bold)}.auth-tab--active:after{transform:scaleX(1)}.auth-tab-content{display:none}.auth-tab-content--active{display:block;animation:fadeInUp var(--transition-normal) ease-out}.auth-form{display:flex;flex-direction:column;gap:var(--space-lg)}.form-group{display:flex;flex-direction:column;gap:var(--space-xs)}.form-group label{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.form-group input{width:100%;padding:var(--space-sm) var(--space-md);border:2px solid var(--color-border);border-radius:var(--border-radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:#fff;transition:all var(--transition-normal);box-sizing:border-box}.form-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px #4d8def1a;transform:translateY(-1px)}.form-group input::placeholder{color:var(--color-text-disabled)}.form-group input:hover:not(:focus){border-color:var(--color-primary-hover)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}@media(max-width:576px){.form-row{grid-template-columns:1fr}}.form-helper{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:0}.form-link{color:var(--color-primary);text-decoration:none;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:color var(--transition-fast)}.form-link:hover{color:var(--color-primary-hover);text-decoration:underline}.form-checkbox{display:flex;align-items:flex-start;gap:var(--space-sm)}.form-checkbox input[type=checkbox]{width:20px;height:20px;margin-top:2px;cursor:pointer;accent-color:var(--color-primary)}.form-checkbox label{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal);cursor:pointer}.form-divider{position:relative;text-align:center;margin:var(--space-lg) 0}.form-divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--color-divider)}.form-divider span{position:relative;background:#fff;padding:0 var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.form-actions{margin-top:var(--space-xs)}.auth-switch{width:100%;background:transparent;border:2px solid var(--color-border);color:var(--color-text-primary);padding:var(--space-sm) var(--space-lg);border-radius:var(--border-radius-md);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-normal)}.auth-switch:hover{border-color:var(--color-primary);color:var(--color-primary);background:#4d8def0d}.auth-error{background:linear-gradient(135deg,#f443361a,#f443360d);border:1px solid rgba(244,67,54,.3);border-radius:var(--border-radius-md);padding:var(--space-md);margin-bottom:var(--space-lg)}.auth-error p{color:var(--color-error);margin:0;font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.auth-success{background:linear-gradient(135deg,#4caf501a,#4caf500d);border:1px solid rgba(76,175,80,.3);border-radius:var(--border-radius-md);padding:var(--space-md);margin-bottom:var(--space-lg)}.auth-success p{color:var(--color-success);margin:0;font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.auth-loading{position:relative}.auth-loading:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:#fffc;border-radius:inherit;display:flex;align-items:center;justify-content:center}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(prefers-color-scheme:dark){.auth-panel{background:var(--color-surface)}.auth-panel:before{opacity:.5}.auth-panel__content{background:var(--color-surface)}.form-group input{background:var(--color-background);border-color:var(--color-border);color:var(--color-text-primary)}.form-divider span{background:var(--color-surface)}.auth-tab:hover{background:#4d8def1a}}@media(max-width:576px){.auth-panel{margin:1rem}.auth-panel__header{padding:var(--space-xl) var(--space-lg) var(--space-lg)}.auth-panel__content{padding:var(--space-lg)}}.user-settings{max-width:800px;margin:0 auto;padding:2rem;background:var(--color-surface, white);border-radius:12px;box-shadow:var(--shadow-medium, 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06))}.user-settings__header{text-align:center;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--color-border, #e5e7eb)}.user-settings__title{font-size:2rem;font-weight:700;color:var(--color-text-primary, #1f2937);margin-bottom:.5rem}.user-settings__subtitle{font-size:1.125rem;color:var(--color-text-secondary, #4b5563);margin:0}.user-settings__sections{display:flex;flex-direction:column;gap:2rem;max-width:800px;margin:0 auto}.user-settings__section{background:var(--color-surface-elevated, #f9fafb);border-radius:8px;padding:1.5rem;border:1px solid var(--color-border, #e5e7eb)}.user-settings__section-title{font-size:1.25rem;font-weight:600;color:var(--color-text-primary, #1f2937);margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.user-settings__section-content{color:var(--color-text-secondary, #4b5563)}.user-settings .form-group{margin-bottom:1.5rem}.user-settings .form-group label{display:block;font-weight:500;color:var(--color-text-primary, #374151);margin-bottom:.5rem}.user-settings .form-group input,.user-settings .form-group select,.user-settings .form-group textarea{width:100%;padding:.75rem;border:1px solid var(--color-border, #d1d5db);border-radius:6px;font-size:1rem;background:var(--color-surface, white);color:var(--color-text-primary, #1f2937);transition:border-color .2s ease,box-shadow .2s ease}.user-settings .form-group input:focus,.user-settings .form-group select:focus,.user-settings .form-group textarea:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px var(--focus-ring-color, rgba(59, 130, 246, .1))}.user-settings .form-group textarea{resize:vertical;min-height:100px}.user-settings .button{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;font-weight:500;text-decoration:none;cursor:pointer;transition:all .2s ease;gap:.5rem}.user-settings .button--primary{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff}.user-settings .button--primary:hover{background:linear-gradient(135deg,#2563eb,#1e40af);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.user-settings .button--secondary{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.user-settings .button--secondary:hover{background:#e5e7eb;transform:translateY(-1px)}.user-settings .button--danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.user-settings .button--danger:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-1px);box-shadow:0 4px 12px #ef444466}.user-settings__footer{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--color-border, #e5e7eb);text-align:center;color:var(--color-text-secondary, #4b5563);font-size:.875rem}.user-settings__avatar{width:80px;height:80px;border-radius:50%;margin:0 auto 1rem;background:linear-gradient(135deg,#3b82f6,#1d4ed8);display:flex;align-items:center;justify-content:center;color:#fff;font-size:2rem;font-weight:600;box-shadow:0 4px 12px #3b82f64d}.user-settings .profile-info{display:flex;flex-direction:column;gap:2rem}.user-settings .profile-info__group{background:var(--color-surface-elevated, #f9fafb);border-radius:8px;padding:1.5rem;border:1px solid var(--color-border, #e5e7eb)}.user-settings .profile-info__group-title{font-size:1rem;font-weight:600;color:var(--color-text-primary, #1f2937);margin:0 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-divider, #f3f4f6)}.user-settings .profile-info__item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--color-divider, #f9fafb)}.user-settings .profile-info__item:last-child{border-bottom:none}.user-settings .profile-info__item--highlight{background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:6px;padding:.75rem 1rem;margin:.5rem 0;border:1px solid #f59e0b}.user-settings .profile-info__item label{font-weight:500;color:var(--color-text-secondary, #6b7280);flex:0 0 auto;margin-right:1rem;min-width:120px;font-size:.875rem}.user-settings .profile-info__item span{color:var(--color-text-primary, #1f2937);font-weight:400;text-align:right;flex:1}.user-settings .status-badge{padding:.25rem .75rem;border-radius:20px;font-size:.875rem;font-weight:500}.user-settings .status-badge.status-active{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#065f46;border:1px solid #10b981}.user-settings .status-badge.status-inactive{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#991b1b;border:1px solid #ef4444}.user-settings .role-badge{padding:.25rem .75rem;border-radius:15px;font-size:.875rem;font-weight:500;text-transform:capitalize;background:linear-gradient(135deg,#e0e7ff,#c7d2fe);color:#3730a3;border:1px solid #6366f1}.user-settings .subscription-badge{padding:.25rem .75rem;border-radius:20px;font-size:.875rem;font-weight:500}.user-settings .subscription-badge.subscription-trial{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e;border:1px solid #f59e0b}.user-settings .subscription-badge.subscription-active{background:linear-gradient(135deg,#ecfdf5,#d1fae5);color:#065f46;border:1px solid #10b981}.user-settings .subscription-badge.subscription-cancelled,.user-settings .subscription-badge.subscription-expired{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#991b1b;border:1px solid #ef4444}.user-settings .access-badge{padding:.25rem .75rem;border-radius:20px;font-size:.875rem;font-weight:500}.user-settings .access-badge.access-active{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#065f46;border:1px solid #10b981}.user-settings .access-badge.access-inactive{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#991b1b;border:1px solid #ef4444}.user-settings .trial-active{color:var(--color-success, #059669);font-weight:500}.user-settings .trial-expired{color:var(--color-warning, #d97706);font-weight:500}.user-settings .trial-status,.user-settings .subscription-active{color:var(--color-primary, #3b82f6);font-weight:600}.user-settings__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin:1.5rem 0}.user-settings__stats-item{text-align:center;padding:1rem;background:#fff;border-radius:8px;border:1px solid #e5e7eb}.user-settings__stats-item-value{font-size:1.5rem;font-weight:700;color:#1f2937}.user-settings__stats-item-label{font-size:.875rem;color:#4b5563;margin-top:.25rem}.user-settings .preference-summary{margin-bottom:1.5rem}.user-settings .preference-summary__title{font-size:1.125rem;font-weight:600;color:#374151;margin-bottom:1rem}.user-settings .preference-items{background:var(--color-surface, white);border:1px solid var(--color-border, #e5e7eb);border-radius:8px;overflow:hidden}.user-settings .preference-items .loading-state{display:flex;align-items:center;justify-content:center;padding:2rem;color:var(--color-text-secondary, #4b5563);gap:.75rem}.user-settings .preference-items .loading-state .loading-spinner{width:20px;height:20px;border:2px solid var(--color-border, #e5e7eb);border-top:2px solid var(--color-primary, #3b82f6);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.user-settings .preference-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--color-divider, #f3f4f6)}.user-settings .preference-item:last-child{border-bottom:none}.user-settings .preference-item .preference-label{font-weight:500;color:var(--color-text-primary, #374151);flex:1}.user-settings .preference-item .preference-value{color:var(--color-text-primary, #1f2937);font-weight:400;text-transform:capitalize}.user-settings .preference-item .preference-value--muted{color:var(--color-text-disabled, #6b7280);font-style:italic}.user-settings .preference-item .preference-value--reset{color:var(--color-success, #059669);font-weight:500}.user-settings .preference-note{padding:.75rem 1rem;background:#f0f9ff;border-top:1px solid #e0f2fe;color:#0369a1}.user-settings .preference-note small{font-size:.875rem}.user-settings .preference-control--inline{display:flex;gap:var(--space-xs, 8px)}.user-settings .preference-actions{margin:1.5rem 0}.user-settings .preference-actions .action-item{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;background:var(--color-surface, white);border:1px solid var(--color-border, #e5e7eb);border-radius:8px;margin-bottom:1rem}.user-settings .preference-actions .action-item:last-child{margin-bottom:0}.user-settings .preference-actions .action-item .action-info{flex:1;margin-right:1rem}.user-settings .preference-actions .action-item .action-info .action-title{font-size:1rem;font-weight:600;color:var(--color-text-primary, #1f2937);margin:0 0 .5rem}.user-settings .preference-actions .action-item .action-info .action-description{font-size:.875rem;color:var(--color-text-secondary, #6b7280);margin:0;line-height:1.5}.user-settings .preference-actions .action-item .action-control{flex-shrink:0}.user-settings .preference-help{margin-top:1.5rem}.user-settings .preference-help .help-card{display:flex;align-items:flex-start;gap:1rem;padding:1rem;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:8px}.user-settings .preference-help .help-card .help-icon{font-size:1.25rem;flex-shrink:0}.user-settings .preference-help .help-card .help-content{flex:1}.user-settings .preference-help .help-card .help-content strong{color:#92400e;font-weight:600}.user-settings .preference-help .help-card .help-content p{margin:.5rem 0 0;color:#78350f;font-size:.875rem;line-height:1.5}@media(max-width:768px){.user-settings{padding:1rem;margin:1rem}.user-settings__title{font-size:1.5rem}.user-settings__sections{grid-template-columns:1fr}.user-settings__stats{grid-template-columns:repeat(2,1fr)}.user-settings .profile-info{gap:1rem}.user-settings .profile-info__group{padding:1rem}.user-settings .profile-info__item{flex-direction:column;align-items:flex-start;gap:.5rem}.user-settings .profile-info__item label{min-width:auto;margin-right:0;font-weight:600;color:var(--color-text-primary, #1f2937)}.user-settings .profile-info__item span{text-align:left}.user-settings .profile-info__item--highlight{padding:1rem}.user-settings .status-badge,.user-settings .role-badge,.user-settings .subscription-badge,.user-settings .access-badge{font-size:.75rem;padding:.25rem .5rem}.user-settings .preference-actions .action-item{flex-direction:column;align-items:stretch;gap:1rem}.user-settings .preference-actions .action-item .action-info{margin-right:0;text-align:center}.user-settings .preference-actions .action-item .action-control{align-self:center}.user-settings .preference-help .help-card{flex-direction:column;text-align:center}}.dialog{border-radius:var(--border-radius-lg);border:none;padding:0;background-color:var(--color-background);overflow:hidden;max-width:90vw;max-height:90vh}.dialog::backdrop{background-color:#00000080}.dialog-wrapper{position:relative;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md);border-bottom:1px solid var(--color-border)}.dialog-title{font-size:var(--font-size-lg);font-weight:600;margin:0}.dialog-close{border:none;background:transparent;cursor:pointer;font-size:var(--font-size-lg);color:var(--color-text-muted);padding:var(--space-xs);display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-sm)}.dialog-close:hover{background-color:var(--color-surface-hover)}.dialog-content{padding:var(--space-md);overflow-y:auto;flex:1}.dialog-footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md);border-top:1px solid var(--color-border)}.dialog-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:1000}@keyframes dialog-fade-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.dialog[open]{animation:dialog-fade-in .2s ease-out}.dialog-active{display:block}.dialog-tabs{display:flex;border-bottom:1px solid var(--color-border)}.dialog-tab{padding:var(--space-sm) var(--space-md);border:none;background:transparent;cursor:pointer;font-size:var(--font-size-base);color:var(--color-text-muted);border-bottom:2px solid transparent}.dialog-tab[aria-selected=true]{color:var(--color-primary);border-bottom:2px solid var(--color-primary)}.dialog-tab:hover:not([aria-selected=true]){color:var(--color-text);border-bottom:2px solid var(--color-border)}.dialog-tab-panel{padding:var(--space-md);overflow-y:auto}.dialog-tab-panel.hidden,.dialog-tab-panel.is-hidden{display:none}.hidden,.is-hidden{display:none!important}.shop-icon-fixed{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px}.shop-icon-img-fixed{max-width:100%;max-height:100%}.progress-container{width:100%;height:4px;background-color:var(--color-surface);margin-bottom:var(--space-md);border-radius:var(--border-radius-sm);overflow:hidden}.progress-bar{height:100%;background-color:var(--color-primary);transition:width .3s ease}.progress-bar--empty{width:0!important}.slider-min-0 .slider-range{left:0 %}.slider-max-0 .slider-range{right:100 %}.slider-min-1 .slider-range{left:1 %}.slider-max-1 .slider-range{right:99 %}.slider-min-2 .slider-range{left:2 %}.slider-max-2 .slider-range{right:98 %}.slider-min-3 .slider-range{left:3 %}.slider-max-3 .slider-range{right:97 %}.slider-min-4 .slider-range{left:4 %}.slider-max-4 .slider-range{right:96 %}.slider-min-5 .slider-range{left:5 %}.slider-max-5 .slider-range{right:95 %}.slider-min-6 .slider-range{left:6 %}.slider-max-6 .slider-range{right:94 %}.slider-min-7 .slider-range{left:7 %}.slider-max-7 .slider-range{right:93 %}.slider-min-8 .slider-range{left:8 %}.slider-max-8 .slider-range{right:92 %}.slider-min-9 .slider-range{left:9 %}.slider-max-9 .slider-range{right:91 %}.slider-min-10 .slider-range{left:10 %}.slider-max-10 .slider-range{right:90 %}.slider-min-11 .slider-range{left:11 %}.slider-max-11 .slider-range{right:89 %}.slider-min-12 .slider-range{left:12 %}.slider-max-12 .slider-range{right:88 %}.slider-min-13 .slider-range{left:13 %}.slider-max-13 .slider-range{right:87 %}.slider-min-14 .slider-range{left:14 %}.slider-max-14 .slider-range{right:86 %}.slider-min-15 .slider-range{left:15 %}.slider-max-15 .slider-range{right:85 %}.slider-min-16 .slider-range{left:16 %}.slider-max-16 .slider-range{right:84 %}.slider-min-17 .slider-range{left:17 %}.slider-max-17 .slider-range{right:83 %}.slider-min-18 .slider-range{left:18 %}.slider-max-18 .slider-range{right:82 %}.slider-min-19 .slider-range{left:19 %}.slider-max-19 .slider-range{right:81 %}.slider-min-20 .slider-range{left:20 %}.slider-max-20 .slider-range{right:80 %}.slider-min-21 .slider-range{left:21 %}.slider-max-21 .slider-range{right:79 %}.slider-min-22 .slider-range{left:22 %}.slider-max-22 .slider-range{right:78 %}.slider-min-23 .slider-range{left:23 %}.slider-max-23 .slider-range{right:77 %}.slider-min-24 .slider-range{left:24 %}.slider-max-24 .slider-range{right:76 %}.slider-min-25 .slider-range{left:25 %}.slider-max-25 .slider-range{right:75 %}.slider-min-26 .slider-range{left:26 %}.slider-max-26 .slider-range{right:74 %}.slider-min-27 .slider-range{left:27 %}.slider-max-27 .slider-range{right:73 %}.slider-min-28 .slider-range{left:28 %}.slider-max-28 .slider-range{right:72 %}.slider-min-29 .slider-range{left:29 %}.slider-max-29 .slider-range{right:71 %}.slider-min-30 .slider-range{left:30 %}.slider-max-30 .slider-range{right:70 %}.slider-min-31 .slider-range{left:31 %}.slider-max-31 .slider-range{right:69 %}.slider-min-32 .slider-range{left:32 %}.slider-max-32 .slider-range{right:68 %}.slider-min-33 .slider-range{left:33 %}.slider-max-33 .slider-range{right:67 %}.slider-min-34 .slider-range{left:34 %}.slider-max-34 .slider-range{right:66 %}.slider-min-35 .slider-range{left:35 %}.slider-max-35 .slider-range{right:65 %}.slider-min-36 .slider-range{left:36 %}.slider-max-36 .slider-range{right:64 %}.slider-min-37 .slider-range{left:37 %}.slider-max-37 .slider-range{right:63 %}.slider-min-38 .slider-range{left:38 %}.slider-max-38 .slider-range{right:62 %}.slider-min-39 .slider-range{left:39 %}.slider-max-39 .slider-range{right:61 %}.slider-min-40 .slider-range{left:40 %}.slider-max-40 .slider-range{right:60 %}.slider-min-41 .slider-range{left:41 %}.slider-max-41 .slider-range{right:59 %}.slider-min-42 .slider-range{left:42 %}.slider-max-42 .slider-range{right:58 %}.slider-min-43 .slider-range{left:43 %}.slider-max-43 .slider-range{right:57 %}.slider-min-44 .slider-range{left:44 %}.slider-max-44 .slider-range{right:56 %}.slider-min-45 .slider-range{left:45 %}.slider-max-45 .slider-range{right:55 %}.slider-min-46 .slider-range{left:46 %}.slider-max-46 .slider-range{right:54 %}.slider-min-47 .slider-range{left:47 %}.slider-max-47 .slider-range{right:53 %}.slider-min-48 .slider-range{left:48 %}.slider-max-48 .slider-range{right:52 %}.slider-min-49 .slider-range{left:49 %}.slider-max-49 .slider-range{right:51 %}.slider-min-50 .slider-range{left:50 %}.slider-max-50 .slider-range{right:50 %}.slider-min-51 .slider-range{left:51 %}.slider-max-51 .slider-range{right:49 %}.slider-min-52 .slider-range{left:52 %}.slider-max-52 .slider-range{right:48 %}.slider-min-53 .slider-range{left:53 %}.slider-max-53 .slider-range{right:47 %}.slider-min-54 .slider-range{left:54 %}.slider-max-54 .slider-range{right:46 %}.slider-min-55 .slider-range{left:55 %}.slider-max-55 .slider-range{right:45 %}.slider-min-56 .slider-range{left:56 %}.slider-max-56 .slider-range{right:44 %}.slider-min-57 .slider-range{left:57 %}.slider-max-57 .slider-range{right:43 %}.slider-min-58 .slider-range{left:58 %}.slider-max-58 .slider-range{right:42 %}.slider-min-59 .slider-range{left:59 %}.slider-max-59 .slider-range{right:41 %}.slider-min-60 .slider-range{left:60 %}.slider-max-60 .slider-range{right:40 %}.slider-min-61 .slider-range{left:61 %}.slider-max-61 .slider-range{right:39 %}.slider-min-62 .slider-range{left:62 %}.slider-max-62 .slider-range{right:38 %}.slider-min-63 .slider-range{left:63 %}.slider-max-63 .slider-range{right:37 %}.slider-min-64 .slider-range{left:64 %}.slider-max-64 .slider-range{right:36 %}.slider-min-65 .slider-range{left:65 %}.slider-max-65 .slider-range{right:35 %}.slider-min-66 .slider-range{left:66 %}.slider-max-66 .slider-range{right:34 %}.slider-min-67 .slider-range{left:67 %}.slider-max-67 .slider-range{right:33 %}.slider-min-68 .slider-range{left:68 %}.slider-max-68 .slider-range{right:32 %}.slider-min-69 .slider-range{left:69 %}.slider-max-69 .slider-range{right:31 %}.slider-min-70 .slider-range{left:70 %}.slider-max-70 .slider-range{right:30 %}.slider-min-71 .slider-range{left:71 %}.slider-max-71 .slider-range{right:29 %}.slider-min-72 .slider-range{left:72 %}.slider-max-72 .slider-range{right:28 %}.slider-min-73 .slider-range{left:73 %}.slider-max-73 .slider-range{right:27 %}.slider-min-74 .slider-range{left:74 %}.slider-max-74 .slider-range{right:26 %}.slider-min-75 .slider-range{left:75 %}.slider-max-75 .slider-range{right:25 %}.slider-min-76 .slider-range{left:76 %}.slider-max-76 .slider-range{right:24 %}.slider-min-77 .slider-range{left:77 %}.slider-max-77 .slider-range{right:23 %}.slider-min-78 .slider-range{left:78 %}.slider-max-78 .slider-range{right:22 %}.slider-min-79 .slider-range{left:79 %}.slider-max-79 .slider-range{right:21 %}.slider-min-80 .slider-range{left:80 %}.slider-max-80 .slider-range{right:20 %}.slider-min-81 .slider-range{left:81 %}.slider-max-81 .slider-range{right:19 %}.slider-min-82 .slider-range{left:82 %}.slider-max-82 .slider-range{right:18 %}.slider-min-83 .slider-range{left:83 %}.slider-max-83 .slider-range{right:17 %}.slider-min-84 .slider-range{left:84 %}.slider-max-84 .slider-range{right:16 %}.slider-min-85 .slider-range{left:85 %}.slider-max-85 .slider-range{right:15 %}.slider-min-86 .slider-range{left:86 %}.slider-max-86 .slider-range{right:14 %}.slider-min-87 .slider-range{left:87 %}.slider-max-87 .slider-range{right:13 %}.slider-min-88 .slider-range{left:88 %}.slider-max-88 .slider-range{right:12 %}.slider-min-89 .slider-range{left:89 %}.slider-max-89 .slider-range{right:11 %}.slider-min-90 .slider-range{left:90 %}.slider-max-90 .slider-range{right:10 %}.slider-min-91 .slider-range{left:91 %}.slider-max-91 .slider-range{right:9 %}.slider-min-92 .slider-range{left:92 %}.slider-max-92 .slider-range{right:8 %}.slider-min-93 .slider-range{left:93 %}.slider-max-93 .slider-range{right:7 %}.slider-min-94 .slider-range{left:94 %}.slider-max-94 .slider-range{right:6 %}.slider-min-95 .slider-range{left:95 %}.slider-max-95 .slider-range{right:5 %}.slider-min-96 .slider-range{left:96 %}.slider-max-96 .slider-range{right:4 %}.slider-min-97 .slider-range{left:97 %}.slider-max-97 .slider-range{right:3 %}.slider-min-98 .slider-range{left:98 %}.slider-max-98 .slider-range{right:2 %}.slider-min-99 .slider-range{left:99 %}.slider-max-99 .slider-range{right:1 %}.slider-min-100 .slider-range{left:100 %}.slider-max-100 .slider-range{right:0 %}.logo-icon-invert{filter:invert(var(--icon-invert))}.load-more,#infinite-scroll-trigger{grid-column:1/-1!important;width:100%!important;margin:0!important;padding:0!important;min-height:1px!important;height:auto!important;overflow:visible!important}.load-more:has(.smart-loading-indicator[style*="display: block"]),#infinite-scroll-trigger:has(.smart-loading-indicator[style*="display: block"]){height:auto!important;margin:var(--space-xxs) 0!important;padding:var(--space-xxs)!important}.load-more .loading-indicator,#infinite-scroll-trigger .loading-indicator{display:none;margin:0;text-align:center;padding:var(--space-xs)}.load-more.htmx-request .loading-indicator,#infinite-scroll-trigger.htmx-request .loading-indicator{display:block;margin:var(--space-xxs) 0}@supports not selector(:has(*)){.load-more{margin:0!important;padding:0!important}.load-more .smart-loading-indicator[style*="display: block"]{margin:var(--space-xxs) 0!important}}.smart-loading-indicator{margin:0!important;padding:0!important;min-height:0!important;height:0!important;background:transparent!important;border:none!important;text-align:center!important;overflow:hidden!important}.smart-loading-indicator[style*="display: block"]{margin:var(--space-xxs) 0!important;padding:var(--space-xxs)!important;min-height:16px!important;height:auto!important;opacity:.8!important}.smart-loading-indicator .loading-text{font-size:12px!important;color:#495057!important;font-style:italic!important;font-weight:400!important;line-height:1.2!important}.load-more:empty,#infinite-scroll-trigger:empty{min-height:1px!important;height:auto!important;margin:0!important;padding:0!important}.smart-loading-indicator[style*="display: none"]{margin:0!important;padding:0!important;min-height:0!important;height:0!important;line-height:0!important}.hero{position:relative;overflow:hidden}.hero__title{font-size:clamp(1.75rem,5vw,var(--font-size-xxxl));color:var(--color-text-primary);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);animation:slideInFromBottom var(--transition-normal) ease-out}.hero__description{font-size:var(--font-size-lg);color:var(--color-text-secondary);animation:slideInFromBottom var(--transition-normal) ease-out .1s both}.hero__image{position:relative;animation:scaleIn var(--transition-slow) ease-out .2s both}.hero__image img{transition:transform var(--transition-normal);filter:drop-shadow(0 10px 30px rgba(0,0,0,.1))}.hero__image img:hover{transform:scale(1.05) rotate(1deg)}.button-group{display:flex;gap:var(--space-md);flex-wrap:wrap;animation:fadeIn var(--transition-normal) ease-out .3s both}.button-group--center{justify-content:center}.feature-card{padding:var(--space-xl);background:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.5);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-medium);transition:all var(--transition-normal);position:relative;overflow:hidden}.feature-card:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(45deg,var(--color-primary),var(--color-accent));border-radius:inherit;opacity:0;transition:opacity var(--transition-normal);z-index:-1}.feature-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-large)}.feature-card:hover:before{opacity:.1}.feature-card:hover .feature-card__icon{transform:scale(1.1) rotate(5deg);color:var(--color-primary)}.feature-card__icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-primary-translucent);border-radius:var(--border-radius-md);margin-bottom:var(--space-md);transition:all var(--transition-normal);color:var(--color-primary)}.feature-card__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-sm);color:var(--color-text-primary)}.feature-card__description{color:var(--color-text-secondary);line-height:var(--line-height-normal)}.steps-list__item{display:flex;gap:var(--space-lg);margin-bottom:var(--space-xl);position:relative}.steps-list__item:not(:last-child):after{content:"";position:absolute;left:24px;top:60px;width:2px;height:calc(100% + var(--space-md));background:linear-gradient(to bottom,var(--color-primary),transparent)}.steps-list__number{flex-shrink:0;width:48px;height:48px;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-bold);box-shadow:0 4px 12px #4d8def4d;transition:all var(--transition-normal)}.steps-list:hover .steps-list__number{transform:scale(1.1);box-shadow:0 6px 20px #4d8def66}.steps-list h4{margin-bottom:var(--space-xs);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.steps-list p{color:var(--color-text-secondary);margin:0}.benefits-list__item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--color-divider);transition:all var(--transition-normal);position:relative}.benefits-list__item:before{content:"";position:absolute;left:-var(--space-md);right:-var(--space-md);top:0;bottom:0;background:var(--color-primary-translucent);border-radius:var(--border-radius-md);opacity:0;transition:opacity var(--transition-normal)}.benefits-list__item:hover{transform:translate(var(--space-xs))}.benefits-list__item:hover:before{opacity:1}.benefits-list__item:hover svg{color:var(--color-primary);transform:scale(1.2)}.benefits-list__item svg{color:var(--color-accent);transition:all var(--transition-normal);flex-shrink:0}.benefits-list__item span{position:relative;z-index:1}.manual-section__title{font-size:var(--font-size-xxl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);display:flex;align-items:center;gap:var(--space-sm)}.manual-subsection{padding-left:var(--space-lg);border-left:3px solid var(--color-primary-translucent)}.manual-subsection h4{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-primary)}.info-box{padding:var(--space-lg);border-radius:var(--border-radius-md);margin:var(--space-md) 0;position:relative;overflow:hidden}.info-box:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%}.info-box--tip{background:linear-gradient(135deg,#4d8def0d,#4d8def1a);border:1px solid rgba(77,141,239,.2)}.info-box--tip:before{background:var(--color-primary)}.info-box--example{background:linear-gradient(135deg,#ff6b6b0d,#ff6b6b1a);border:1px solid rgba(255,107,107,.2)}.info-box--example:before{background:var(--color-accent)}.info-box p{margin:0;padding-left:var(--space-md)}.info-box strong{color:var(--color-text-primary)}.nav-item{text-align:center;padding:var(--space-lg);background:var(--color-surface);border-radius:var(--border-radius-lg);transition:all var(--transition-normal);cursor:pointer}.nav-item:hover{transform:translateY(-3px);box-shadow:var(--shadow-medium);background:#fff}.nav-item:hover .nav-item__icon{transform:scale(1.2) rotate(-5deg)}.nav-item__icon{font-size:2rem;margin-bottom:var(--space-sm);transition:transform var(--transition-normal)}.nav-item h5{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);margin-bottom:var(--space-xs)}.nav-item p{margin:0;color:var(--color-text-secondary)}.tips-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-lg);margin-top:var(--space-lg)}.tip-card{padding:var(--space-lg);background:#fff;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-small);border-top:4px solid var(--color-primary);transition:all var(--transition-normal)}.tip-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-large);border-top-color:var(--color-accent)}.tip-card__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin-bottom:var(--space-sm);color:var(--color-text-primary)}.tip-card p{color:var(--color-text-secondary);margin:0;line-height:var(--line-height-normal)}.shop-card{text-align:center;padding:var(--space-lg);background:#fff;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-small);transition:all var(--transition-normal);position:relative;overflow:hidden}.shop-card:before{content:"";position:absolute;top:-100%;left:0;width:100%;height:100%;background:linear-gradient(180deg,transparent 0%,var(--color-primary-translucent) 100%);transition:top var(--transition-normal)}.shop-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-large)}.shop-card:hover:before{top:0}.shop-card:hover .shop-card__logo{transform:scale(1.1)}.shop-card__logo{width:80px;height:80px;object-fit:contain;margin-bottom:var(--space-md);transition:transform var(--transition-normal);position:relative;z-index:1}.shop-card__name{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin:0;position:relative;z-index:1}@keyframes float{0%,to{transform:translateY(0) rotate(0)}33%{transform:translateY(-20px) rotate(2deg)}66%{transform:translateY(10px) rotate(-2deg)}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}#handleiding{scroll-margin-top:80px}section[id]{scroll-margin-top:80px}.bg-light{background:var(--color-surface);position:relative}.bg-light:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,var(--color-border) 50%,transparent 100%)}.feature-list{list-style:none;padding:0;margin:var(--space-md) 0}.feature-list li{position:relative;padding-left:var(--space-lg);margin-bottom:var(--space-sm)}.cta{background:linear-gradient(135deg,var(--color-surface) 0%,var(--color-background) 100%);position:relative;overflow:hidden}.cta:after{content:"";position:absolute;bottom:-50%;left:-10%;width:120%;height:100%;background:radial-gradient(ellipse at center,var(--color-primary-translucent) 0%,transparent 70%);animation:float 15s ease-in-out infinite reverse}.cta .container{position:relative;z-index:1}.grid-2,.grid-3,.grid-4{gap:var(--space-lg)}@media(min-width:768px){.grid-2,.grid-3,.grid-4{gap:var(--space-xl)}}@media(max-width:768px){.hero{text-align:center}.hero__image{margin-top:var(--space-xl)}.button-group{justify-content:center}.steps-list__item{flex-direction:column;text-align:center}.steps-list__item:after{display:none}}@media(prefers-color-scheme:dark){.feature-card{background:#1e1e1eb3;border-color:#ffffff1a}.shop-card,.tip-card{background:var(--color-surface)}.info-box--tip{background:linear-gradient(135deg,#4d8def1a,#4d8def33)}.info-box--example{background:linear-gradient(135deg,#ff6b6b1a,#ff6b6b33)}}.feedback-banner{background:var(--color-secondary-light);border-bottom:1px solid var(--color-border);padding:var(--space-sm) 0}.feedback-banner__content{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}@media(max-width:768px){.feedback-banner__content{flex-direction:column;text-align:center;gap:var(--space-sm)}}.feedback-banner__text{flex:1;margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.feedback-banner__button{display:flex;align-items:center;gap:var(--space-xs);white-space:nowrap}.feedback-banner__button svg{width:16px;height:16px}.accessibility-features{background:var(--color-background-alt)}.accessibility-feature h4{color:var(--color-primary);margin-bottom:var(--space-sm)}.keyboard-shortcuts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-lg);margin-bottom:var(--space-md)}.shortcut-category__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-primary);margin-bottom:var(--space-md);padding-bottom:var(--space-xs);border-bottom:2px solid var(--color-primary-light)}.shortcut-list{display:flex;flex-direction:column;gap:var(--space-sm)}.shortcut-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm);background:var(--color-background);border-radius:var(--border-radius);border:1px solid var(--color-border-light)}.shortcut-key{background:var(--color-background-dark);color:var(--color-text-primary);padding:var(--space-xs) var(--space-sm);border-radius:var(--border-radius-sm);font-family:var(--font-family-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);border:1px solid var(--color-border);box-shadow:0 1px 2px #0000001a;white-space:nowrap;min-width:60px;text-align:center}.shortcut-description{flex:1;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.shop-card{text-align:center;padding:var(--space-md);background:var(--color-background);border-radius:var(--border-radius);border:1px solid var(--color-border-light);transition:transform .2s ease,box-shadow .2s ease}.shop-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.shop-card__logo{width:80px;height:auto;margin-bottom:var(--space-sm);filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.shop-card__logo--small{width:60px;height:auto}.shop-card__name{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.manual-section__title{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-primary);border-bottom:2px solid var(--color-primary-light);padding-bottom:var(--space-sm)}.manual-subsection h4{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.feature-list{list-style:none;padding:0;margin:0}.feature-list li{position:relative;padding-left:var(--space-md);margin-bottom:var(--space-xs)}.feature-list li:before{content:"✓";position:absolute;left:0;color:var(--color-success);font-weight:var(--font-weight-bold)}.feature-list li strong{color:var(--color-primary)}.info-box{padding:var(--space-md);border-radius:var(--border-radius);border-left:4px solid var(--color-info);background:var(--color-info-light)}.info-box--tip{border-left-color:var(--color-success);background:var(--color-success-light)}.info-box--example{border-left-color:var(--color-warning);background:var(--color-warning-light)}.info-box p{margin:0;font-size:var(--font-size-sm)}.info-box kbd{background:var(--color-background-dark);color:var(--color-text-primary);padding:2px 6px;border-radius:3px;font-family:var(--font-family-mono);font-size:.85em;border:1px solid var(--color-border)}.tips-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-lg)}.tip-card{background:var(--color-background);border:1px solid var(--color-border-light);border-radius:var(--border-radius);padding:var(--space-lg);transition:transform .2s ease,box-shadow .2s ease}.tip-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.tip-card__title{color:var(--color-primary);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-sm)}.tip-card p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;line-height:1.5}.tip-card p kbd{background:var(--color-background-dark);color:var(--color-text-primary);padding:2px 6px;border-radius:3px;font-family:var(--font-family-mono);font-size:.85em;border:1px solid var(--color-border)}.nav-item{text-align:center;padding:var(--space-md);background:var(--color-background);border-radius:var(--border-radius);border:1px solid var(--color-border-light)}.nav-item__icon{font-size:var(--font-size-xl);margin-bottom:var(--space-xs)}.nav-item h5{margin:0 0 var(--space-xs) 0;font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.nav-item .text-sm{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:0}.steps-list{list-style:none;padding:0;margin:0}.steps-list__item{display:flex;gap:var(--space-md);margin-bottom:var(--space-lg)}.steps-list__item:last-child{margin-bottom:0}.steps-list__number{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--color-primary);color:var(--color-white);border-radius:50%;font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);flex-shrink:0;margin-top:2px}.steps-list h4{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-xs) 0}.steps-list p{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.benefits-list{list-style:none;padding:0;margin:0}.benefits-list__item{display:flex;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-md)}.benefits-list__item:last-child{margin-bottom:0}.benefits-list__item svg{color:var(--color-success);flex-shrink:0;margin-top:2px}.benefits-list__item span{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}@media(max-width:768px){.keyboard-shortcuts-grid{grid-template-columns:1fr;gap:var(--space-md)}.shortcut-item{flex-direction:column;text-align:center;gap:var(--space-xs)}.shortcut-key{min-width:auto}.tips-grid{grid-template-columns:1fr;gap:var(--space-md)}.steps-list__item{flex-direction:column;text-align:center;gap:var(--space-sm)}.steps-list__number{align-self:center}}.keyboard-shortcuts-notification{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--color-surface-elevated);border:2px solid var(--color-primary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-large);padding:var(--space-lg);max-width:500px;max-height:80vh;overflow-y:auto;z-index:10000;display:none}.keyboard-shortcuts-notification .notification-content{position:relative}.keyboard-shortcuts-notification .notification-content h3{color:var(--color-primary);margin-bottom:var(--space-md);font-size:var(--font-size-xl);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-xs)}.keyboard-shortcuts-notification .notification-content .notification-close{position:absolute;top:-8px;right:-8px;background:var(--color-primary);color:#fff;border:none;border-radius:50%;width:32px;height:32px;font-size:var(--font-size-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.keyboard-shortcuts-notification .notification-content .notification-close:hover{background-color:var(--color-primary-hover);transform:scale(1.1)}.keyboard-shortcuts-notification .notification-content .notification-close:focus{outline:2px solid var(--color-accent);outline-offset:2px}.keyboard-shortcuts-help .shortcuts-list{list-style:none;padding:0;margin:var(--space-md) 0}.keyboard-shortcuts-help .shortcuts-list li{display:flex;align-items:center;margin-bottom:var(--space-sm);padding:var(--space-xs) 0;border-bottom:1px solid var(--color-divider)}.keyboard-shortcuts-help .shortcuts-list li:last-child{border-bottom:none;margin-bottom:0}.keyboard-shortcuts-help .shortcuts-list li kbd{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);padding:var(--space-xxs) var(--space-xs);font-family:monospace;font-size:var(--font-size-sm);color:var(--color-primary);margin-right:var(--space-md);min-width:120px;text-align:center;box-shadow:0 1px 2px #0000001a}.keyboard-shortcuts-help p{margin-top:var(--space-lg);text-align:center;color:var(--color-text-secondary);font-style:italic}.sr-announcer{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.keyboard-navigation-active *:focus-visible{outline:3px solid var(--color-primary);outline-offset:3px;box-shadow:0 0 0 1px var(--color-background),0 0 0 4px var(--color-primary)}.keyboard-navigation-active button:focus-visible,.keyboard-navigation-active .button:focus-visible{transform:translateY(-2px);box-shadow:var(--shadow-medium),0 0 0 3px var(--color-primary)}.keyboard-navigation-active a:focus-visible{background-color:var(--color-primary-translucent);border-radius:var(--border-radius-sm);padding:2px 4px}@keyframes shortcut-notification-appear{0%{opacity:0;transform:translate(-50%,-60%)}to{opacity:1;transform:translate(-50%,-50%)}}.keyboard-shortcuts-notification{animation:shortcut-notification-appear var(--transition-normal) ease-out}@media(prefers-color-scheme:dark){.keyboard-shortcuts-notification .notification-content h3{color:var(--color-primary)}.keyboard-shortcuts-notification .shortcuts-list kbd{background-color:#374151;border-color:#4b5563;color:var(--color-primary)}}@media(max-width:768px){.keyboard-shortcuts-notification{max-width:90vw;max-height:70vh;padding:var(--space-md)}.keyboard-shortcuts-notification .notification-content h3{font-size:var(--font-size-lg)}.keyboard-shortcuts-notification .shortcuts-list li{flex-direction:column;align-items:flex-start}.keyboard-shortcuts-notification .shortcuts-list li kbd{margin-bottom:var(--space-xs);margin-right:0;min-width:auto}}.session-notifications{position:fixed;top:1rem;right:1rem;z-index:9999;max-width:400px;pointer-events:none}@media(max-width:480px){.session-notifications{top:.5rem;right:.5rem;left:.5rem;max-width:none}}.session-warning,.session-message{pointer-events:all;margin-bottom:.5rem;border-radius:8px;box-shadow:0 4px 12px #00000026;animation:slideInRight .3s ease-out}@media(max-width:480px){.session-warning,.session-message{margin-bottom:.25rem}}.session-warning{background:linear-gradient(135deg,#fff3cd,#ffeaa7);border:1px solid #ffc107;color:#856404}.session-warning .alert-content{padding:1rem}@media(max-width:480px){.session-warning .alert-content{padding:.75rem}}.session-warning .alert-title{margin:0 0 .5rem;font-size:1rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.session-warning .alert-title .icon-clock:before{content:"⏰";font-style:normal}.session-warning .alert-message{margin:0 0 1rem;font-size:.9rem;line-height:1.4}@media(max-width:480px){.session-warning .alert-message{font-size:.85rem;margin-bottom:.75rem}}.session-warning .alert-actions{display:flex;gap:.5rem;flex-wrap:wrap}@media(max-width:480px){.session-warning .alert-actions{gap:.25rem}}.session-warning .btn{padding:.375rem .75rem;border:none;border-radius:4px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}@media(max-width:480px){.session-warning .btn{padding:.25rem .5rem;font-size:.8rem}}.session-warning .btn:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.session-warning .btn:active{transform:translateY(0)}.session-warning .btn-primary{background:#007bff;color:#fff}.session-warning .btn-primary:hover{background:#0056b3}.session-warning .btn-secondary{background:#6c757d;color:#fff}.session-warning .btn-secondary:hover{background:#545b62}.session-message.alert-success{background:linear-gradient(135deg,#d4edda,#c3e6cb);border:1px solid #28a745;color:#155724;padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between}.session-message.alert-success .alert-message{margin:0;font-size:.9rem;font-weight:500}.session-message.alert-success .alert-close{background:none;border:none;color:#155724;font-size:1.2rem;cursor:pointer;padding:0;margin-left:.5rem;line-height:1}.session-message.alert-success .alert-close:hover{color:#0c3f1a}.session-message.alert-error{background:linear-gradient(135deg,#f8d7da,#f1b2ba);border:1px solid #dc3545;color:#721c24;padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between}.session-message.alert-error .alert-message{margin:0;font-size:.9rem;font-weight:500}.session-message.alert-error .alert-close{background:none;border:none;color:#721c24;font-size:1.2rem;cursor:pointer;padding:0;margin-left:.5rem;line-height:1}.session-message.alert-error .alert-close:hover{color:#491217}.session-expired-dialog{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;z-index:10000;display:flex;align-items:center;justify-content:center;animation:fadeIn .3s ease-out}.session-expired-dialog .modal-content{background:#fff;border-radius:8px;padding:0;max-width:400px;width:90%;box-shadow:0 10px 25px #0000004d;animation:slideInUp .3s ease-out}.session-expired-dialog .modal-header{padding:1.25rem 1.25rem 0}.session-expired-dialog .modal-header .modal-title{margin:0;font-size:1.25rem;font-weight:600;color:#333}.session-expired-dialog .modal-body{padding:1rem 1.25rem}.session-expired-dialog .modal-body p{margin:0;color:#666;line-height:1.5}.session-expired-dialog .modal-footer{padding:0 1.25rem 1.25rem;display:flex;justify-content:flex-end}.session-expired-dialog .modal-footer .btn{padding:.5rem 1rem;border:none;border-radius:4px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.session-expired-dialog .modal-footer .btn.btn-primary{background:#007bff;color:#fff}.session-expired-dialog .modal-footer .btn.btn-primary:hover{background:#0056b3;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}[data-session-indicator]{transition:all .2s ease}[data-session-indicator].session-warning{position:relative}[data-session-indicator].session-warning:after{content:"⚠️";position:absolute;top:-2px;right:-2px;font-size:.7rem;animation:pulse 2s infinite}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}[data-theme=dark] .session-warning{background:linear-gradient(135deg,#2c2416,#3d3017);border-color:#ffc107;color:#ffeaa7}[data-theme=dark] .session-message.alert-success{background:linear-gradient(135deg,#1e3a28,#2a4f35);border-color:#28a745;color:#c3e6cb}[data-theme=dark] .session-message.alert-success .alert-close{color:#c3e6cb}[data-theme=dark] .session-message.alert-success .alert-close:hover{color:#fff}[data-theme=dark] .session-message.alert-error{background:linear-gradient(135deg,#3a1e23,#4f2a32);border-color:#dc3545;color:#f1b2ba}[data-theme=dark] .session-message.alert-error .alert-close{color:#f1b2ba}[data-theme=dark] .session-message.alert-error .alert-close:hover{color:#fff}[data-theme=dark] .session-expired-dialog .modal-content{background:#2d3748;color:#e2e8f0}[data-theme=dark] .session-expired-dialog .modal-content .modal-title{color:#e2e8f0}[data-theme=dark] .session-expired-dialog .modal-content .modal-body p{color:#cbd5e0}@media(prefers-reduced-motion:reduce){.session-warning,.session-message,.session-expired-dialog .modal-content{animation:none}[data-session-indicator].session-warning:after{animation:none}.btn{transition:none}.btn:hover{transform:none}}.offline-toast,.update-toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);padding:12px 20px;background:var(--color-primary, #2c3e50);color:#fff;border-radius:4px;box-shadow:0 4px 12px #00000026;z-index:1000;max-width:90%;width:400px;opacity:1;transition:opacity .3s}.offline-toast.hide,.update-toast.hide{opacity:0}.offline-toast-content,.update-toast-content{display:flex;align-items:center}.offline-toast-content svg,.update-toast-content svg{margin-right:8px}.offline-toast-content span,.update-toast-content span{flex:1}.offline-toast-close,.update-toast-close{background:none;border:none;color:#fff;font-size:20px;cursor:pointer;padding:0 0 0 8px}.update-toast{background:var(--color-success, #28a745)}.update-toast .update-now-btn{background:#fff;color:var(--color-success, #28a745);border:none;padding:6px 12px;border-radius:4px;font-weight:700;cursor:pointer;margin-left:8px}.update-toast .update-now-btn:hover{background:#ffffffe6}.htmx-offline-queued{position:relative}.htmx-offline-queued:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:#0000000a;border:2px dashed var(--color-primary, #2c3e50);border-radius:inherit;pointer-events:none}body.offline .htmx-request{opacity:.7;pointer-events:none}body.offline:before{content:"You are offline";position:fixed;top:0;left:0;right:0;padding:8px;background:var(--color-warning, #ffc107);color:var(--color-text-dark, #333);text-align:center;font-weight:700;z-index:1000;box-shadow:0 2px 4px #0000001a}.offline-page{text-align:center;padding:40px 0}.offline-page svg{color:var(--color-warning, #ffc107)}.offline-page .mt-lg{margin-top:2rem}.offline-page .mt-md{margin-top:1rem}.offline-page .ml-md{margin-left:1rem}.offline-page .text-secondary{color:var(--color-text-secondary, #495057)}.offline-page .button{display:inline-block;padding:8px 16px;border-radius:4px;text-decoration:none;font-weight:700;cursor:pointer;transition:background-color .2s}.offline-page .button--primary{background-color:var(--color-primary, #2c3e50);color:#fff;border:none}.offline-page .button--primary:hover{background-color:var(--color-primary-dark, #1a252f)}.offline-page .button--secondary{background-color:var(--color-secondary, #6c757d);color:#fff;border:none}.offline-page .button--secondary:hover{background-color:var(--color-secondary-dark, #5a6268)}
