.catalog-toolbar{gap:var(--space-3);padding:var(--space-4);flex-direction:column;display:flex}.catalog-toolbar__search{position:relative}.catalog-toolbar__search-icon{left:var(--space-3);color:var(--color-text-tertiary);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.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{gap:var(--space-2);scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;display:flex;overflow-x:auto}.catalog-toolbar__filters::-webkit-scrollbar{display:none}.catalog-chip{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;display:inline-flex}.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{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.catalog-toolbar__sort{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);border:1px solid var(--color-border);cursor:pointer;white-space:nowrap;background:0 0;min-height:36px;display:inline-flex}.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{gap:var(--space-3);padding:0 var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}@media (width<=359px){.product-grid{grid-template-columns:1fr}}@media (width>=768px){.product-grid{gap:var(--space-4);grid-template-columns:repeat(3,1fr)}}@media (width>=1024px){.product-grid{gap:var(--space-4);grid-template-columns:repeat(4,1fr);max-width:1200px}}.product-grid__section-title{font:var(--font-h2);color:var(--color-text);padding-top:var(--space-4);grid-column:1/-1}.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);transition:box-shadow var(--duration-normal) var(--ease-out), transform var(--duration-normal) var(--ease-out);cursor:pointer;flex-direction:column;display:flex;position:relative;overflow:hidden}.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{aspect-ratio:1;background-color:var(--color-neutral-100);position:relative;overflow:hidden}.product-card__img{object-fit:cover;width:100%;height:100%;transition:transform .4s var(--ease-out);display:block}.product-card:hover .product-card__img{transform:scale(1.04)}.product-card__img-placeholder{width:100%;height:100%;color:var(--color-text-tertiary);justify-content:center;align-items:center;display:flex}.product-card__body{gap:var(--space-2);padding:var(--space-3) var(--space-3) var(--space-4);flex-direction:column;flex:1;display:flex}@media (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);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.product-card__sku{margin-right:var(--space-1);color:var(--color-text-tertiary);font:var(--font-label);align-items:center;display:inline-flex}.product-card__desc{font:var(--font-caption);color:var(--color-text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.product-card__meta{gap:var(--space-1) var(--space-3);font:var(--font-label);color:var(--color-text-tertiary);flex-wrap:wrap;display:flex}.product-card__meta-item{align-items:center;gap:3px;display:inline-flex}.product-card__meta-item--success{color:var(--color-success)}.product-card__meta-item--warning{color:var(--color-warning)}.product-card__footer{justify-content:space-between;align-items:center;gap:var(--space-2);padding-top:var(--space-2);margin-top:auto;display:flex}.price{font-variant-numeric:tabular-nums;color:var(--color-text);letter-spacing:-.01em;font-weight:700}.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{margin-left:2px;font-weight:500}.product-card__cta{border-radius:var(--radius);background-color:var(--color-primary);color:#fff;cursor:pointer;min-width:44px;min-height:44px;padding:var(--space-2) var(--space-3);justify-content:center;align-items:center;gap:var(--space-1);transition:background-color var(--duration-fast), transform var(--duration-fast), box-shadow var(--duration-fast);border:none;flex-shrink:0;font-size:.875rem;font-weight:600;display:flex;box-shadow:0 2px 8px #3b82f640}.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{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;position:absolute}.product-dialog__overlay{z-index:50;padding:var(--space-4);background:#0f172a7a;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.product-dialog{border-radius:var(--radius-md);background:var(--color-bg-elevated);width:min(100%,560px);max-height:min(90vh,760px);box-shadow:var(--shadow-lift);flex-direction:column;display:flex;position:relative;overflow:hidden}@media (width>=640px){.product-dialog__overlay{align-items:center}}.product-dialog__close{top:var(--space-3);right:var(--space-3);z-index:1;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg-elevated);width:40px;height:40px;color:var(--color-text);cursor:pointer;box-shadow:var(--shadow-sm);justify-content:center;align-items:center;display:inline-flex;position:absolute}.product-dialog__close:focus-visible{box-shadow:var(--focus-ring)}.product-dialog__scroll{flex:auto;min-height:0;overflow-y:auto}.product-dialog__media{aspect-ratio:16/10;background:var(--color-neutral-100);flex:none;width:100%;overflow:hidden}.product-dialog__media img{object-fit:cover;width:100%;height:100%;display:block}.product-dialog__placeholder{width:100%;height:100%;color:var(--color-text-tertiary);justify-content:center;align-items:center;display:flex}.product-dialog__body{gap:var(--space-3);padding:var(--space-5);flex-direction:column;display:flex}.product-dialog__badges{gap:var(--space-2);flex-wrap:wrap;display:flex}.product-dialog__badge{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);align-items:center;display:inline-flex}.product-dialog__badge--muted{background:var(--color-neutral-100);color:var(--color-text-tertiary)}.product-dialog__badge--success{color:var(--color-success);background:#22c55e1f}.product-dialog__badge--warning{color:var(--color-warning);background:#f59e0b1f}.product-dialog__intro{gap:var(--space-2);display:grid}.product-dialog__title{font:var(--font-h2);color:var(--color-text)}.product-dialog__lead{font:var(--font-body);color:var(--color-text-secondary);margin:0}.product-dialog__proof{gap:var(--space-2);color:var(--color-text-tertiary);font:var(--font-label);flex-wrap:wrap;display:flex}.product-dialog__proof-item{align-items:center;gap:4px;display:inline-flex}.product-dialog__description{margin:var(--space-1) 0 0;max-width:100%;font:var(--font-body);color:var(--color-text);overflow-wrap:anywhere;line-height:1.6}.product-dialog__description>*{margin:0}.product-dialog__description>*+*{margin-top:var(--space-2)}.product-dialog__description ul,.product-dialog__description ol{padding-left:var(--space-5);margin:0}.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{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5) var(--space-5);border-top:1px solid var(--color-border);flex:none;display:flex}.product-dialog__cta{min-width:max-content}@media (width<=479px){.product-dialog__purchase{flex-direction:column;align-items:stretch}.product-dialog__cta{width:100%}}.catalog-empty{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-16) var(--space-6);text-align:center;flex-direction:column;display:flex}.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:#fff;--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:#fff;--tg-theme-secondary-bg-color:#f9fafb;--tg-theme-header-bg-color:#fff;--tg-theme-accent-text-color:#3b82f6;--tg-theme-section-bg-color:#fff;--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 #0000000a, 0 1px 3px #0000000f;--shadow-md:0 2px 8px #0000000f, 0 4px 16px #0000000a;--shadow-lg:0 4px 12px #00000014, 0 8px 24px #0000000f;--shadow-lift:0 8px 24px #0000001a, 0 2px 8px #0000000f;--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:#3b82f614;--color-primary-border:#3b82f633;--color-secondary:#8b5cf6;--color-secondary-light:#8b5cf614;--color-success:#10b981;--color-success-light:#10b98114;--color-danger:var(--tg-theme-destructive-text-color);--color-danger-light:#ef444414;--color-warning:#f59e0b;--color-warning-light:#f59e0b14;--color-info:#3b82f6;--color-info-light:#3b82f614;--color-text:var(--tg-theme-text-color);--color-text-secondary:var(--tg-theme-hint-color);--color-text-tertiary:var(--color-neutral-400);--color-border:#00000014;--color-border-strong:#00000024;--color-bg:var(--tg-theme-bg-color);--color-bg-secondary:var(--tg-theme-secondary-bg-color);--color-bg-elevated:var(--tg-theme-section-bg-color);--color-overlay:#0006;--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:#aaa;--tg-theme-link-color:#2ea6ff;--tg-theme-button-color:#2ea6ff;--tg-theme-button-text-color:#fff;--tg-theme-secondary-bg-color:#232e3c;--tg-theme-header-bg-color:#17212b;--tg-theme-accent-text-color:#2ea6ff;--tg-theme-section-bg-color:#1e2a36;--tg-theme-section-header-text-color:#aaa;--tg-theme-subtitle-text-color:#aaa;--tg-theme-destructive-text-color:#f5222d;--color-border:#ffffff14;--color-border-strong:#ffffff24;--color-bg-elevated:var(--tg-theme-section-bg-color);--color-text-tertiary:#666;--color-overlay:#0009;--shadow-sm:0 1px 2px #0003, 0 1px 3px #00000026;--shadow-md:0 2px 8px #0003, 0 4px 16px #00000026;--shadow-lg:0 4px 12px #00000040, 0 8px 24px #0003;--shadow-lift:0 8px 24px #0000004d, 0 2px 8px #0003}}body{color:var(--color-text);background-color:var(--color-bg-secondary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.6}#root{flex-direction:column;min-height:100vh;display:flex}button{cursor:pointer;border:none;outline:none;font-family:inherit;transition:all .2s}button:active{transform:scale(.98)}input,textarea{border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem;font-family:inherit;font-size:1rem;transition:border-color .2s}input:focus,textarea:focus{border-color:var(--color-primary);outline:none}.container{max-width:800px;margin:0 auto;padding:0 1rem}.btn{border-radius:var(--radius);justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;transition:all .2s;display:inline-flex}.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{border-radius:50%;justify-content:center;align-items:center;padding:.5rem;display:inline-flex}.card{background-color:var(--color-bg);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.badge{text-transform:uppercase;border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-block}.badge-success{color:#065f46;background-color:#d1fae5}.badge-warning{color:#92400e;background-color:#fef3c7}.badge-danger{color:#991b1b;background-color:#fee2e2}.badge-info{color:#1e40af;background-color:#dbeafe}:focus-visible{box-shadow:var(--focus-ring);outline:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.error-message a{color:inherit;font-weight:600;text-decoration:underline}.error-message a:hover{text-decoration:none}
