.catalog-toolbar{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4)}.catalog-toolbar__search{position:relative}.catalog-toolbar__search-icon{position:absolute;left:var(--space-3);top:50%;transform:translateY(-50%);color:var(--color-text-tertiary);pointer-events:none}.catalog-toolbar__search-input{width:100%;padding:var(--space-3) var(--space-4);padding-left:var(--space-10);border:1px solid var(--color-border);border-radius:var(--radius);font:var(--font-body);color:var(--color-text);background-color:var(--color-bg);transition:border-color var(--duration-fast) var(--ease-out)}.catalog-toolbar__search-input::placeholder{color:var(--color-text-tertiary)}.catalog-toolbar__search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.catalog-toolbar__filters{display:flex;gap:var(--space-2);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}.catalog-toolbar__filters::-webkit-scrollbar{display:none}.catalog-chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);font:var(--font-label);white-space:nowrap;border:1px solid var(--color-border);background-color:var(--color-bg);color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--duration-fast),border-color var(--duration-fast),color var(--duration-fast);min-height:36px}.catalog-chip:hover{border-color:var(--color-border-strong);color:var(--color-text)}.catalog-chip--active{background-color:var(--color-primary-light);border-color:var(--color-primary-border);color:var(--color-primary)}.catalog-chip--active:hover{background-color:var(--color-primary-light);border-color:var(--color-primary)}.catalog-toolbar__row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.catalog-toolbar__sort{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius);font:var(--font-caption);color:var(--color-text-secondary);background:none;border:1px solid var(--color-border);cursor:pointer;white-space:nowrap;min-height:36px}.catalog-toolbar__sort:hover{border-color:var(--color-border-strong);color:var(--color-text)}.catalog-toolbar__count{font:var(--font-caption);color:var(--color-text-tertiary);white-space:nowrap}.product-grid{display:grid;gap:var(--space-3);padding:0 var(--space-4)}.product-grid{grid-template-columns:repeat(2,1fr)}@media(max-width:359px){.product-grid{grid-template-columns:1fr}}@media(min-width:768px){.product-grid{grid-template-columns:repeat(3,1fr);gap:var(--space-4)}}@media(min-width:1024px){.product-grid{grid-template-columns:repeat(4,1fr);gap:var(--space-4);max-width:1200px}}.product-grid__section-title{grid-column:1 / -1;font:var(--font-h2);color:var(--color-text);padding-top:var(--space-4)}.product-grid__section-title:first-child{padding-top:0}.product-card{background-color:var(--color-bg-elevated);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out);position:relative;cursor:pointer}.product-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.product-card--unavailable{opacity:.55}.product-card--unavailable:hover{box-shadow:var(--shadow-sm);transform:none}.product-card__img-wrap{position:relative;overflow:hidden;aspect-ratio:1 / 1;background-color:var(--color-neutral-100)}.product-card__img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s var(--ease-out)}.product-card:hover .product-card__img{transform:scale(1.04)}.product-card__img-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary)}.product-card__body{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-3) var(--space-4);flex:1}@media(min-width:768px){.product-card__body{padding:var(--space-4) var(--space-4) var(--space-5)}}.product-card__name{font:var(--font-h3);color:var(--color-text);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-card__sku{display:inline-flex;align-items:center;margin-right:var(--space-1);color:var(--color-text-tertiary);font:var(--font-label)}.product-card__desc{font:var(--font-caption);color:var(--color-text-secondary);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-card__meta{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3);font:var(--font-label);color:var(--color-text-tertiary)}.product-card__meta-item{display:inline-flex;align-items:center;gap:3px}.product-card__meta-item--success{color:var(--color-success)}.product-card__meta-item--warning{color:var(--color-warning)}.product-card__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-top:auto;padding-top:var(--space-2)}.price{font-variant-numeric:tabular-nums;font-weight:700;color:var(--color-text);letter-spacing:-.01em}.price--lg{font-size:1.25rem;line-height:1.2}.price--md{font-size:1.0625rem;line-height:1.3}.price--sm{font-size:.9375rem;line-height:1.3}.price__currency{font-weight:500;margin-left:2px}.product-card__cta{min-width:44px;min-height:44px;border-radius:var(--radius);background-color:var(--color-primary);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;font-weight:600;font-size:.875rem;padding:var(--space-2) var(--space-3);gap:var(--space-1);box-shadow:0 2px 8px #3b82f640;transition:background-color var(--duration-fast),transform var(--duration-fast),box-shadow var(--duration-fast)}.product-card__cta:hover{background-color:var(--color-primary-hover);box-shadow:0 4px 12px #3b82f659}.product-card__cta:active{transform:scale(.95)}.product-card__cta:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.product-card__cta:disabled:active{transform:none}.product-card__cta:focus-visible{box-shadow:var(--focus-ring)}.product-card__unavailable-badge{position:absolute;top:var(--space-2);left:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background-color:var(--color-neutral-800);color:#fff;font:var(--font-label);z-index:1}.product-dialog__overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;padding:var(--space-4);background:#0f172a7a}.product-dialog{width:min(100%,560px);max-height:min(90vh,760px);overflow:hidden;position:relative;display:flex;flex-direction:column;border-radius:var(--radius-md);background:var(--color-bg-elevated);box-shadow:var(--shadow-lift)}@media(min-width:640px){.product-dialog__overlay{align-items:center}}.product-dialog__close{position:absolute;top:var(--space-3);right:var(--space-3);z-index:1;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg-elevated);color:var(--color-text);cursor:pointer;box-shadow:var(--shadow-sm)}.product-dialog__close:focus-visible{box-shadow:var(--focus-ring)}.product-dialog__scroll{flex:1 1 auto;min-height:0;overflow-y:auto}.product-dialog__media{width:100%;flex:0 0 auto;aspect-ratio:16 / 10;overflow:hidden;background:var(--color-neutral-100)}.product-dialog__media img{width:100%;height:100%;display:block;object-fit:cover}.product-dialog__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary)}.product-dialog__body{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5)}.product-dialog__badges{display:flex;flex-wrap:wrap;gap:var(--space-2)}.product-dialog__badge{display:inline-flex;align-items:center;min-height:28px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);background:var(--color-primary-light);color:var(--color-primary);font:var(--font-label)}.product-dialog__badge--muted{background:var(--color-neutral-100);color:var(--color-text-tertiary)}.product-dialog__badge--success{background:#22c55e1f;color:var(--color-success)}.product-dialog__badge--warning{background:#f59e0b1f;color:var(--color-warning)}.product-dialog__intro{display:grid;gap:var(--space-2)}.product-dialog__title{font:var(--font-h2);color:var(--color-text)}.product-dialog__lead{margin:0;font:var(--font-body);color:var(--color-text-secondary)}.product-dialog__proof{display:flex;flex-wrap:wrap;gap:var(--space-2);color:var(--color-text-tertiary);font:var(--font-label)}.product-dialog__proof-item{display:inline-flex;align-items:center;gap:4px}.product-dialog__description{margin:var(--space-1) 0 0;max-width:100%;font:var(--font-body);color:var(--color-text);line-height:1.6;overflow-wrap:anywhere}.product-dialog__description>*{margin:0}.product-dialog__description>*+*{margin-top:var(--space-2)}.product-dialog__description ul,.product-dialog__description ol{margin:0;padding-left:var(--space-5)}.product-dialog__description li+li{margin-top:var(--space-1)}.product-dialog__description li>*{margin:0}.product-dialog__description li>*+*{margin-top:var(--space-1)}.product-dialog__purchase{display:flex;align-items:center;justify-content:space-between;flex:0 0 auto;gap:var(--space-3);padding:var(--space-3) var(--space-5) var(--space-5);border-top:1px solid var(--color-border)}.product-dialog__cta{min-width:max-content}@media(max-width:479px){.product-dialog__purchase{align-items:stretch;flex-direction:column}.product-dialog__cta{width:100%}}.catalog-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-16) var(--space-6);text-align:center}.catalog-empty__icon{color:var(--color-text-tertiary);opacity:.5}.catalog-empty__title{font:var(--font-h3);color:var(--color-text)}.catalog-empty__desc{font:var(--font-caption);color:var(--color-text-secondary);max-width:280px}.catalog-empty__action{margin-top:var(--space-2)}*{box-sizing:border-box;margin:0;padding:0}:root{--tg-theme-bg-color: #ffffff;--tg-theme-text-color: #1f2937;--tg-theme-hint-color: #6b7280;--tg-theme-link-color: #2481cc;--tg-theme-button-color: #3b82f6;--tg-theme-button-text-color: #ffffff;--tg-theme-secondary-bg-color: #f9fafb;--tg-theme-header-bg-color: #ffffff;--tg-theme-accent-text-color: #3b82f6;--tg-theme-section-bg-color: #ffffff;--tg-theme-section-header-text-color: #6b7280;--tg-theme-subtitle-text-color: #6b7280;--tg-theme-destructive-text-color: #ef4444;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-sm: 8px;--radius: 12px;--radius-md: 16px;--radius-lg: 24px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 2px 8px rgba(0, 0, 0, .06), 0 4px 16px rgba(0, 0, 0, .04);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .08), 0 8px 24px rgba(0, 0, 0, .06);--shadow-lift: 0 8px 24px rgba(0, 0, 0, .1), 0 2px 8px rgba(0, 0, 0, .06);--font-h1: 600 1.75rem/1.2 var(--font-family);--font-h2: 600 1.375rem/1.25 var(--font-family);--font-h3: 600 1.125rem/1.3 var(--font-family);--font-body: 400 1rem/1.5 var(--font-family);--font-caption: 400 .8125rem/1.4 var(--font-family);--font-label: 500 .75rem/1.3 var(--font-family);--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica", "Arial", sans-serif;--color-neutral-50: #fafafa;--color-neutral-100: #f5f5f5;--color-neutral-200: #e5e5e5;--color-neutral-300: #d4d4d4;--color-neutral-400: #a3a3a3;--color-neutral-500: #737373;--color-neutral-600: #525252;--color-neutral-700: #404040;--color-neutral-800: #262626;--color-neutral-900: #171717;--color-primary: var(--tg-theme-button-color);--color-primary-hover: #2563eb;--color-primary-light: rgba(59, 130, 246, .08);--color-primary-border: rgba(59, 130, 246, .2);--color-secondary: #8b5cf6;--color-secondary-light: rgba(139, 92, 246, .08);--color-success: #10b981;--color-success-light: rgba(16, 185, 129, .08);--color-danger: var(--tg-theme-destructive-text-color);--color-danger-light: rgba(239, 68, 68, .08);--color-warning: #f59e0b;--color-warning-light: rgba(245, 158, 11, .08);--color-info: #3b82f6;--color-info-light: rgba(59, 130, 246, .08);--color-text: var(--tg-theme-text-color);--color-text-secondary: var(--tg-theme-hint-color);--color-text-tertiary: var(--color-neutral-400);--color-border: rgba(0, 0, 0, .08);--color-border-strong: rgba(0, 0, 0, .14);--color-bg: var(--tg-theme-bg-color);--color-bg-secondary: var(--tg-theme-secondary-bg-color);--color-bg-elevated: #ffffff;--color-overlay: rgba(0, 0, 0, .4);--focus-ring: 0 0 0 2px var(--color-bg), 0 0 0 4px var(--color-primary);--focus-ring-offset: 2px;--ease-out: cubic-bezier(.16, 1, .3, 1);--duration-fast: .15s;--duration-normal: .2s}@media(prefers-color-scheme:dark){:root{--tg-theme-bg-color: #17212b;--tg-theme-text-color: #f5f5f5;--tg-theme-hint-color: #aaaaaa;--tg-theme-link-color: #2ea6ff;--tg-theme-button-color: #2ea6ff;--tg-theme-button-text-color: #ffffff;--tg-theme-secondary-bg-color: #232e3c;--tg-theme-header-bg-color: #17212b;--tg-theme-accent-text-color: #2ea6ff;--tg-theme-section-bg-color: #17212b;--tg-theme-section-header-text-color: #aaaaaa;--tg-theme-subtitle-text-color: #aaaaaa;--tg-theme-destructive-text-color: #f5222d;--color-border: rgba(255, 255, 255, .08);--color-border-strong: rgba(255, 255, 255, .14);--color-bg-elevated: #1e2a36;--color-text-tertiary: #666666;--color-overlay: rgba(0, 0, 0, .6);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2), 0 1px 3px rgba(0, 0, 0, .15);--shadow-md: 0 2px 8px rgba(0, 0, 0, .2), 0 4px 16px rgba(0, 0, 0, .15);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .25), 0 8px 24px rgba(0, 0, 0, .2);--shadow-lift: 0 8px 24px rgba(0, 0, 0, .3), 0 2px 8px rgba(0, 0, 0, .2)}}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--color-text);background-color:var(--color-bg-secondary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh;display:flex;flex-direction:column}button{font-family:inherit;cursor:pointer;border:none;outline:none;transition:all .2s}button:active{transform:scale(.98)}input,textarea{font-family:inherit;border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem;font-size:1rem;transition:border-color .2s}input:focus,textarea:focus{outline:none;border-color:var(--color-primary)}.container{max-width:800px;margin:0 auto;padding:0 1rem}.btn{padding:.75rem 1.5rem;border-radius:var(--radius);font-weight:500;font-size:1rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;transition:all .2s}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover{background-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background-color:var(--color-bg-secondary)}.btn-danger{background-color:var(--color-danger);color:#fff}.btn-danger:hover{background-color:#dc2626}.btn-small{padding:.5rem 1rem;font-size:.875rem}.btn-icon{padding:.5rem;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.card{background-color:var(--color-bg);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.badge{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase}.badge-success{background-color:#d1fae5;color:#065f46}.badge-warning{background-color:#fef3c7;color:#92400e}.badge-danger{background-color:#fee2e2;color:#991b1b}.badge-info{background-color:#dbeafe;color:#1e40af}*:focus-visible{outline:none;box-shadow:var(--focus-ring)}.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}.error-message a{color:inherit;text-decoration:underline;font-weight:600}.error-message a:hover{text-decoration:none}
