:root{--color-text: #1a1d29;--color-bg: #f7f8fa;--color-accent: #3b5bff;--color-success: #16a34a;--color-error: #dc2626;--color-pending: #f59e0b;--color-surface: #ffffff;--color-border: #e2e4ea;--color-text-muted: #6b7080;--color-disabled: #b9bcc7;--color-accent-hover: #2d47cc;--color-success-subtle: #e8f6ed;--color-error-subtle: #fbe9e9;--color-pending-subtle: #fef3e2;--color-on-solid: #ffffff;--color-skeleton-highlight: color-mix(in srgb, var(--color-border), white 60%);color-scheme:light;--font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-weight-regular: 400;--font-weight-semibold: 600;--text-xs-size: .75rem;--text-xs-line: 1rem;--text-sm-size: .875rem;--text-sm-line: 1.25rem;--text-base-size: 1rem;--text-base-line: 1.5rem;--text-lg-size: 1.25rem;--text-lg-line: 1.75rem;--text-xl-size: 1.75rem;--text-xl-line: 2.25rem;--space-1: 4px;--space-2: 8px;--space-3: 16px;--space-4: 24px;--space-5: 32px;--space-6: 48px;--radius-control: 6px;--border-width: 1px}:root[data-theme=dark]{color-scheme:dark;--color-text: #e6e8ee;--color-bg: #0e1015;--color-accent: #8b9cff;--color-success: #4ade80;--color-error: #f87171;--color-pending: #fbbf24;--color-surface: #161922;--color-border: #2b2f3c;--color-text-muted: #9ba1b3;--color-disabled: #5a6072;--color-accent-hover: #a9b6ff;--color-success-subtle: #10281a;--color-error-subtle: #331616;--color-pending-subtle: #33260c;--color-on-solid: #0e1015;--color-skeleton-highlight: color-mix(in srgb, var(--color-border), white 12%)}.btn-primary{display:inline-flex;align-items:center;gap:var(--space-2);font-family:inherit;font-size:var(--text-base-size);font-weight:var(--font-weight-semibold);color:var(--color-on-solid);background:var(--color-accent);border:none;border-radius:var(--radius-control);padding:var(--space-2) var(--space-4)}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn-primary:disabled{background:var(--color-disabled);cursor:not-allowed}.btn-secondary{display:inline-flex;align-items:center;gap:var(--space-2);font-family:inherit;font-size:var(--text-sm-size);font-weight:var(--font-weight-regular);color:var(--color-text);background:transparent;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control);padding:var(--space-1) var(--space-3)}.btn-secondary:hover:not(:disabled){border-color:var(--color-text-muted)}.btn-secondary:disabled{color:var(--color-disabled);border-color:var(--color-border);cursor:not-allowed}.text-error{color:var(--color-error);font-size:var(--text-sm-size);line-height:var(--text-sm-line)}.text-muted{color:var(--color-text-muted);font-size:var(--text-sm-size);line-height:var(--text-sm-line)}.back-link{font-size:var(--text-sm-size);text-decoration:none}.back-link:hover{text-decoration:underline}.page-error{margin:0 0 var(--space-3)}.loading-row{display:flex;align-items:center;gap:var(--space-2)}.inline-retry{background:none;border:none;padding:0;color:inherit;font:inherit;text-decoration:underline}.form-field{margin-bottom:var(--space-3)}.form-field label{display:block;font-size:var(--text-sm-size);line-height:var(--text-sm-line);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-1)}.form-field .form-optional{font-weight:var(--font-weight-regular);color:var(--color-text-muted)}.form-field input[type=text],.form-field input[type=tel],.form-field input[type=email]{width:100%;padding:var(--space-2) var(--space-3);font-family:inherit;font-size:var(--text-base-size);color:var(--color-text);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control)}.form-field input:focus{outline:none;border-color:var(--color-accent)}.form-field input:disabled{color:var(--color-text-muted);background:var(--color-bg)}.form-field.form-field--invalid input{border-color:var(--color-error)}.form-field-error,.form-hint{margin:var(--space-1) 0 0}.form-row{display:grid;grid-template-columns:1fr;column-gap:var(--space-3)}@media(min-width:520px){.form-row{grid-template-columns:1fr 1fr}}.form-checkbox{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);font-size:var(--text-sm-size);line-height:var(--text-sm-line)}.form-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.quantity-stepper{display:flex;align-items:center;gap:var(--space-1)}.quantity-stepper button{width:28px;height:28px;padding:0;border:var(--border-width) solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-control);font-family:inherit;font-size:var(--text-base-size);line-height:1;color:var(--color-text)}.quantity-stepper button:hover{border-color:var(--color-text-muted)}.quantity-stepper input{width:40px;padding:var(--space-1);text-align:center;font-family:inherit;font-size:var(--text-sm-size);color:var(--color-text);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control)}.quantity-stepper input:focus{outline:none;border-color:var(--color-accent)}.restock-control{display:flex;align-items:center;gap:var(--space-1)}.restock-control input{width:56px;padding:var(--space-1);text-align:center;font-family:inherit;font-size:var(--text-sm-size);color:var(--color-text);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control)}.restock-control input:focus{outline:none;border-color:var(--color-accent)}*{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-family);font-size:var(--text-base-size);line-height:var(--text-base-line);font-weight:var(--font-weight-regular)}h1,h2,h3{margin:0;font-weight:var(--font-weight-semibold)}a{color:var(--color-accent)}button{cursor:pointer;font-family:inherit}button:disabled{cursor:not-allowed}a:focus-visible,button:focus-visible{outline:none;box-shadow:0 0 0 2px var(--color-bg),0 0 0 4px var(--color-accent);border-radius:var(--radius-control)}.toast-stack{position:fixed;left:50%;bottom:var(--space-4);transform:translate(-50%);display:flex;flex-direction:column-reverse;gap:var(--space-2);z-index:100;pointer-events:none;width:min(360px,calc(100vw - var(--space-4) * 2))}.toast{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);font-size:var(--text-sm-size);font-weight:var(--font-weight-semibold);pointer-events:auto;animation:toast-enter .2s ease}.toast--success{background:var(--color-success-subtle);border:var(--border-width) solid var(--color-success);color:var(--color-success)}.toast--error{background:var(--color-error-subtle);border:var(--border-width) solid var(--color-error);color:var(--color-error)}.toast-dismiss{flex-shrink:0;background:none;border:none;padding:0;color:inherit;font-size:var(--text-lg-size);line-height:1}@keyframes toast-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.spinner{display:inline-block;box-sizing:border-box;border:2px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:currentColor;border-radius:50%;animation:spinner-rotate .6s linear infinite;flex-shrink:0}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.google-signin-button{width:100%;justify-content:center;padding:var(--space-2) var(--space-3);margin-top:var(--space-3)}.google-signin-icon{width:16px;height:16px;flex-shrink:0}.logo{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:var(--font-weight-semibold);color:var(--color-text)}.logo-mark{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--color-accent);color:var(--color-on-solid);border-radius:var(--radius-control)}.logo--md{font-size:var(--text-base-size)}.logo--md .logo-mark{width:28px;height:28px}.logo--lg{font-size:var(--text-lg-size)}.logo--lg .logo-mark{width:36px;height:36px}.auth-page{max-width:360px;margin:var(--space-6) auto 0;padding:0 var(--space-3)}.auth-page h1{font-size:var(--text-xl-size);line-height:var(--text-xl-line);margin-bottom:var(--space-4)}.auth-brand{margin-bottom:var(--space-5)}.auth-tagline{margin:var(--space-2) 0 0}.auth-hint{margin:0 0 var(--space-4)}.auth-field{margin-bottom:var(--space-3)}.auth-field label{display:block;font-size:var(--text-sm-size);line-height:var(--text-sm-line);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-1)}.auth-field input{width:100%;padding:var(--space-2) var(--space-3);font-family:inherit;font-size:var(--text-base-size);color:var(--color-text);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control)}.auth-field input:focus{outline:none;border-color:var(--color-accent)}.auth-error{margin:0 0 var(--space-3)}.auth-page .btn-primary{width:100%}.auth-divider{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-4);color:var(--color-text-muted);font-size:var(--text-xs-size)}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-top:var(--border-width) solid var(--color-border)}.auth-footer{margin-top:var(--space-4);font-size:var(--text-sm-size);line-height:var(--text-sm-line)}.auth-footer a{text-decoration:none}.auth-footer a:hover{text-decoration:underline}.breadcrumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);list-style:none;margin:0 0 var(--space-3);padding:0;font-size:var(--text-sm-size)}.breadcrumbs li{display:flex;align-items:center;gap:var(--space-1)}.breadcrumbs a{color:var(--color-text-muted);text-decoration:none}.breadcrumbs a:hover{color:var(--color-text);text-decoration:underline}.breadcrumbs [aria-current=page]{color:var(--color-text);font-weight:var(--font-weight-semibold)}.breadcrumbs-separator{color:var(--color-border)}.address-lines{display:flex;flex-direction:column;font-style:normal;font-size:var(--text-sm-size);line-height:var(--text-sm-line);color:var(--color-text)}.checkout-address{margin:var(--space-4) 0 var(--space-3);padding:0;border:none;min-width:0}.checkout-address legend{padding:0;margin-bottom:var(--space-2);font-weight:var(--font-weight-semibold)}.checkout-address-intro{margin:0 0 var(--space-3)}.checkout-address-options{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3)}.checkout-address-option{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);cursor:pointer}.checkout-address-option:hover{border-color:var(--color-text-muted)}.checkout-address-option--selected,.checkout-address-option--selected:hover{border-color:var(--color-accent)}.checkout-address-option input[type=radio]{margin-top:4px;accent-color:var(--color-accent)}.checkout-address-body{display:flex;flex-direction:column;gap:2px;min-width:0}.checkout-address-label{font-size:var(--text-sm-size);line-height:var(--text-sm-line);font-weight:var(--font-weight-semibold)}.checkout-address-new{padding-top:var(--space-2)}.cart-summary{border:var(--border-width) solid var(--color-border);padding:var(--space-4)}.cart-summary h2{font-size:var(--text-lg-size);line-height:var(--text-lg-line);margin-bottom:var(--space-3)}.cart-empty{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3)}.cart-items{list-style:none;margin:0 0 var(--space-3);padding:0}.cart-item{padding:var(--space-3) 0;border-bottom:var(--border-width) solid var(--color-border);animation:cart-item-enter .25s ease}@keyframes cart-item-enter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.cart-item{animation:none}}.cart-item:first-child{padding-top:0}.cart-item:last-child{border-bottom:none}.cart-item-info{display:flex;justify-content:space-between;gap:var(--space-2);margin:0 0 var(--space-2)}.cart-item-name{margin:0;font-weight:var(--font-weight-semibold)}.cart-item-line-total{margin:0;white-space:nowrap}.cart-item-controls{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.cart-remove{background:none;border:none;padding:0;color:var(--color-text-muted);font-size:var(--text-sm-size);text-decoration:underline}.cart-remove:hover{color:var(--color-error)}.cart-total{display:flex;justify-content:space-between;align-items:baseline;padding-top:var(--space-3);margin-bottom:var(--space-1);border-top:var(--border-width) solid var(--color-border);font-weight:var(--font-weight-semibold)}.cart-currency-note{margin:0 0 var(--space-3);font-size:var(--text-sm-size)}.cart-summary .btn-primary{width:100%}.stock-count{font-size:var(--text-sm-size);line-height:var(--text-sm-line);white-space:nowrap}.stock-count--out{color:var(--color-error);font-weight:var(--font-weight-semibold)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;color:var(--color-text);background:transparent;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control)}.theme-toggle:hover{border-color:var(--color-text-muted)}.app-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);max-width:960px;margin:0 auto;padding:var(--space-3);border-bottom:var(--border-width) solid var(--color-border)}.app-header-brand{text-decoration:none}.app-header-nav{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);font-size:var(--text-sm-size)}.app-header-nav a{color:var(--color-text);text-decoration:none}.app-header-nav a:hover{text-decoration:underline}.app-header-cart-link{display:inline-flex;align-items:center;gap:var(--space-1)}.app-header-cart-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 var(--space-1);border-radius:999px;background:var(--color-accent);color:var(--color-surface);font-size:var(--text-xs-size);font-weight:var(--font-weight-semibold);line-height:1}.app-header-admin-badge{padding:var(--space-1) var(--space-2);border:var(--border-width) solid var(--color-accent);border-radius:var(--radius-control);color:var(--color-accent);font-size:var(--text-xs-size);font-weight:var(--font-weight-semibold)}.skeleton{background:linear-gradient(90deg,var(--color-border) 25%,var(--color-skeleton-highlight) 50%,var(--color-border) 75%);background-size:200% 100%;border-radius:var(--radius-control);animation:skeleton-shimmer 1.5s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none;background:var(--color-border)}}.skeleton-text{height:14px}.skeleton-pill{width:70px;height:22px;border-radius:999px}.products-page{max-width:1200px;margin:var(--space-5) auto 0;padding:0 var(--space-3) var(--space-6)}.products-intro{margin:var(--space-3) 0 var(--space-4)}.products-heading{font-size:var(--text-xl-size);line-height:var(--text-xl-line);margin:0 0 var(--space-1)}.products-subheading{margin:0}.products-controls{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-4)}.product-search-input{display:block;width:100%;max-width:320px;padding:var(--space-2) var(--space-3);font-family:inherit;font-size:var(--text-sm-size);color:var(--color-text);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control)}.product-search-input:focus{outline:none;border-color:var(--color-accent)}.product-sort-control{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm-size);color:var(--color-text-muted);white-space:nowrap;margin-left:auto}.product-sort-control select{padding:var(--space-1) var(--space-2);font-family:inherit;font-size:var(--text-sm-size);color:var(--color-text);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control)}.product-sort-control select:focus{outline:none;border-color:var(--color-accent)}.price-filter{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm-size);color:var(--color-text-muted)}.price-filter label{display:flex;align-items:center;gap:var(--space-1);white-space:nowrap}.price-filter input{width:72px;padding:var(--space-1) var(--space-2);font-family:inherit;font-size:var(--text-sm-size);color:var(--color-text);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control)}.price-filter input:focus{outline:none;border-color:var(--color-accent)}.control-active{border-color:var(--color-accent);color:var(--color-accent)}.products-layout{display:flex;align-items:flex-start;gap:var(--space-5);flex-wrap:wrap}.category-sidebar{flex:0 0 180px;min-width:160px}.category-sidebar-heading{font-size:var(--text-sm-size);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.02em;color:var(--color-text-muted);margin:0 0 var(--space-2)}.category-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.category-link{display:block;width:100%;padding:var(--space-1) 0;text-align:left;font-family:inherit;font-size:var(--text-sm-size);color:var(--color-text);background:none;border:none;cursor:pointer}.category-link:hover{text-decoration:underline}.category-link-active{color:var(--color-accent);font-weight:var(--font-weight-semibold)}.product-grid-section{flex:3 1 480px;min-width:280px}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-4);animation:product-grid-enter .25s ease}@keyframes product-grid-enter{0%{opacity:0}to{opacity:1}}.product-card{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);transition:border-color .15s ease}.product-card:hover{border-color:var(--color-accent)}.product-card-link{display:flex;flex-direction:column;gap:var(--space-1);color:inherit;text-decoration:none}.product-card-link:hover .product-card-name{text-decoration:underline}@media(prefers-reduced-motion:reduce){.product-card{transition:none}.product-grid{animation:none}}.product-card-thumb{width:100%;aspect-ratio:1 / 1;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control);overflow:hidden;background:var(--color-bg);margin-bottom:var(--space-1)}.product-card-thumb img{display:block;width:100%;height:100%;object-fit:cover}.product-thumb-placeholder{width:100%;height:100%;background:var(--color-border)}.product-card-name{margin:0;font-weight:var(--font-weight-semibold);font-size:var(--text-sm-size);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-card-price{margin:0;font-weight:var(--font-weight-semibold)}.product-card-add{margin-top:auto;align-self:flex-start}.skeleton-thumb{width:100%;aspect-ratio:1 / 1;margin-bottom:var(--space-1)}.skeleton-text-name{width:85%}.skeleton-text-price{width:40%}.skeleton-button{width:96px;height:30px;margin-top:auto;align-self:flex-start}.product-card-stepper{margin-top:auto}.product-pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-top:var(--space-5)}.product-pagination-status{font-size:var(--text-sm-size);color:var(--color-text-muted)}.cart-sidebar{flex:1 1 260px;min-width:240px}@media(max-width:640px){.products-layout{flex-direction:column}.category-sidebar{width:100%}.category-list{flex-direction:row;gap:var(--space-3);overflow-x:auto;padding-bottom:var(--space-1)}.category-link{white-space:nowrap;width:auto}}.star-rating{display:inline-flex;align-items:center;gap:2px}.star-rating-button{display:inline-flex;padding:2px;background:transparent;border:none;cursor:pointer;border-radius:var(--radius-control)}.star-rating-button:hover .star-rating-star path{fill:var(--color-accent)}.error-state{padding:var(--space-3) 0}.error-state-message{margin:0 0 var(--space-3)}.error-state-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.detail-page{max-width:1100px;margin:var(--space-5) auto 0;padding:0 var(--space-3) var(--space-6)}.detail-layout{display:flex;gap:var(--space-5);align-items:flex-start;flex-wrap:wrap}.detail-gallery{flex:1 1 280px;max-width:380px}.detail-image{width:100%;aspect-ratio:1 / 1;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control);overflow:hidden;background:var(--color-bg)}.detail-image img{display:block;width:100%;height:100%;object-fit:cover}.detail-image video{display:block;width:100%;height:100%;object-fit:contain;background:#000}.detail-image-placeholder{width:100%;height:100%;background:var(--color-border)}.detail-thumb-strip{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.detail-thumb{width:56px;height:56px;padding:0;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control);overflow:hidden;background:var(--color-bg);cursor:pointer}.detail-thumb img{display:block;width:100%;height:100%;object-fit:cover}.detail-thumb-video{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:#000;color:#fff;font-size:var(--text-lg-size)}.detail-thumb-selected{border-color:var(--color-accent);border-width:2px}.detail-image-admin{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.detail-image-admin-label{margin:0}.detail-info{flex:1 1 320px;min-width:0}.detail-sku{margin:0 0 var(--space-2)}.detail-name{font-size:var(--text-xl-size);line-height:var(--text-xl-line);margin:0 0 var(--space-3)}.detail-rating-summary{display:flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-2)}.detail-price{font-size:var(--text-lg-size);line-height:var(--text-lg-line);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-4)}.detail-quantity-row{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.detail-quantity-row .quantity-stepper button{width:32px;height:32px}.detail-description{margin:0 0 var(--space-4);padding-top:var(--space-4);border-top:var(--border-width) solid var(--color-border)}.detail-description h2,.detail-specs h2{font-size:var(--text-lg-size);line-height:var(--text-lg-line);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-2)}.detail-description p{margin:0;color:var(--color-text)}.detail-specs{margin:0 0 var(--space-4);padding-top:var(--space-4);border-top:var(--border-width) solid var(--color-border)}.detail-specs-list{margin:0}.detail-specs-row{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:var(--border-width) solid var(--color-border)}.detail-specs-row:first-child{border-top:var(--border-width) solid var(--color-border)}.detail-specs-row dt{color:var(--color-text-muted)}.detail-specs-row dd{margin:0;font-weight:var(--font-weight-semibold);text-align:right}.detail-admin{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-4);border-top:var(--border-width) solid var(--color-border)}.detail-stock{margin:0 0 var(--space-4)}.detail-reviews{margin-top:var(--space-6);padding-top:var(--space-4);border-top:var(--border-width) solid var(--color-border)}.detail-reviews h2{font-size:var(--text-lg-size);line-height:var(--text-lg-line);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-3)}.review-form{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:var(--space-3);margin-bottom:var(--space-4);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface)}.review-form-label{margin:0;font-weight:var(--font-weight-semibold)}.review-form-comment{width:100%;padding:var(--space-2) var(--space-3);font-family:inherit;font-size:var(--text-base-size);color:var(--color-text);background:var(--color-bg);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control);resize:vertical}.review-form-comment:focus{outline:none;border-color:var(--color-accent)}.review-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.review-list-item{padding:var(--space-3) 0;border-bottom:var(--border-width) solid var(--color-border)}.review-list-item:last-child{border-bottom:none}.review-list-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.review-list-author{font-weight:var(--font-weight-semibold)}.review-list-date{font-size:var(--text-xs-size)}.review-list-comment{margin:0;color:var(--color-text)}.related-products{margin-top:var(--space-6);padding-top:var(--space-4);border-top:var(--border-width) solid var(--color-border)}.related-products h2{font-size:var(--text-lg-size);line-height:var(--text-lg-line);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-3)}.related-products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-3)}.related-product-card{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:inherit;text-decoration:none;transition:border-color .15s ease}.related-product-card:hover{border-color:var(--color-accent)}.related-product-card:hover .related-product-name{text-decoration:underline}.related-product-image{width:100%;aspect-ratio:1 / 1;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control);overflow:hidden;background:var(--color-bg);margin-bottom:var(--space-1)}.related-product-image img{display:block;width:100%;height:100%;object-fit:cover}.related-product-image-placeholder{width:100%;height:100%;background:var(--color-border)}.related-product-name{margin:0;font-weight:var(--font-weight-semibold);font-size:var(--text-sm-size);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.related-product-price{margin:0;font-weight:var(--font-weight-semibold)}@media(prefers-reduced-motion:reduce){.related-product-card{transition:none}}@media(max-width:480px){.detail-gallery{max-width:none}}.status-page{max-width:560px;margin:var(--space-5) auto 0;padding:0 var(--space-3) var(--space-6)}.status-page h1{font-size:var(--text-xl-size);line-height:var(--text-xl-line);margin:var(--space-3) 0 var(--space-5)}.cancel-button{margin-bottom:var(--space-5)}.order-placed-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-4);background:var(--color-success-subtle);border:var(--border-width) solid var(--color-success);border-radius:var(--radius-control);color:var(--color-success);font-weight:var(--font-weight-semibold);animation:outcome-enter .35s ease}.order-placed-dismiss{flex-shrink:0;background:none;border:none;padding:0;color:inherit;font-size:var(--text-lg-size);line-height:1}@media(prefers-reduced-motion:reduce){.order-placed-banner{animation:none}}.pipeline{display:flex;list-style:none;margin:0 0 var(--space-5);padding:0}.pipeline-stage{flex:1;min-width:0;padding:0 var(--space-1);text-align:center}.pipeline-track{position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-2)}.pipeline-track:before{content:"";position:absolute;top:50%;left:0;right:0;height:2px;background:var(--color-border);transform:translateY(-50%);transition:background-color .3s ease}.pipeline-stage:first-child .pipeline-track:before{left:50%}.pipeline-stage:last-child .pipeline-track:before{right:50%}.pipeline-node{position:relative;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:2px solid var(--color-border);background:var(--color-bg);color:var(--color-text-muted);font-size:var(--text-sm-size);font-weight:var(--font-weight-semibold);transition:background-color .3s ease,border-color .3s ease,color .3s ease}@keyframes pipeline-node-settle{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.12);opacity:1}to{transform:scale(1)}}.pipeline-stage--done .pipeline-node,.pipeline-stage--success .pipeline-node,.pipeline-stage--stopped .pipeline-node{animation:pipeline-node-settle .4s ease}@keyframes pipeline-connector-fill{0%{transform:translateY(-50%) scaleX(0)}to{transform:translateY(-50%) scaleX(1)}}.pipeline-stage--done .pipeline-track:before,.pipeline-stage--success .pipeline-track:before,.pipeline-stage--stopped .pipeline-track:before{transform-origin:left;animation:pipeline-connector-fill .45s ease}.pipeline-label{display:block;font-size:var(--text-sm-size);line-height:var(--text-sm-line);color:var(--color-text-muted)}.pipeline-stage--done .pipeline-track:before{background:var(--color-text)}.pipeline-stage--done .pipeline-node{background:var(--color-text);border-color:var(--color-text);color:var(--color-bg)}.pipeline-stage--done .pipeline-label{color:var(--color-text)}.pipeline-stage--active .pipeline-track:before{background:var(--color-pending)}.pipeline-stage--active .pipeline-node{background:var(--color-pending-subtle);border-color:var(--color-pending);color:var(--color-pending);animation:pipeline-pulse 1.6s ease-in-out infinite}.pipeline-stage--active .pipeline-label{color:var(--color-text);font-weight:var(--font-weight-semibold)}@keyframes pipeline-pulse{0%,to{box-shadow:0 0 0 0 var(--color-pending-subtle);transform:scale(1)}50%{box-shadow:0 0 0 6px var(--color-pending-subtle);transform:scale(1.06)}}.pipeline-stage--stopped .pipeline-track:before{background:var(--color-error)}.pipeline-stage--stopped .pipeline-node{background:var(--color-error);border-color:var(--color-error);color:var(--color-on-solid)}.pipeline-stage--stopped .pipeline-label{color:var(--color-error);font-weight:var(--font-weight-semibold)}.pipeline-stage--success .pipeline-track:before{background:var(--color-success)}.pipeline-stage--success .pipeline-node{background:var(--color-success);border-color:var(--color-success);color:var(--color-on-solid)}.pipeline-stage--success .pipeline-label{color:var(--color-success);font-weight:var(--font-weight-semibold)}.pipeline-stage--upcoming .pipeline-node{background:var(--color-bg);border-color:var(--color-text-muted);color:var(--color-text-muted)}@keyframes outcome-enter{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.outcome{padding:var(--space-3) var(--space-4);margin-bottom:var(--space-5);border-left:4px solid var(--color-border);animation:outcome-enter .35s ease}@media(prefers-reduced-motion:reduce){.pipeline-node,.pipeline-track:before,.outcome{animation:none!important;transition:none!important}}.outcome-title{margin:0;font-weight:var(--font-weight-semibold)}.outcome-detail{margin:var(--space-1) 0 0}.outcome--pending{background:var(--color-pending-subtle);border-left-color:var(--color-pending)}.outcome--success{background:var(--color-success-subtle);border-left-color:var(--color-success)}.outcome--error{background:var(--color-error-subtle);border-left-color:var(--color-error)}.outcome--neutral{background:var(--color-border)}.order-items{list-style:none;margin:0 0 var(--space-4);padding:0}.order-item{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:var(--border-width) solid var(--color-border)}.order-item:first-child{border-top:var(--border-width) solid var(--color-border)}.order-item-info{display:flex;align-items:center;gap:var(--space-2);min-width:0;color:inherit;text-decoration:none}.order-item-info:hover .order-item-name{text-decoration:underline}.order-item-thumb{flex-shrink:0;width:40px;height:40px;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control);overflow:hidden;background:var(--color-bg)}.order-item-thumb img{display:block;width:100%;height:100%;object-fit:cover}.order-item-thumb-placeholder{display:block;width:100%;height:100%;background:var(--color-border)}.order-total{display:flex;justify-content:space-between;align-items:baseline;padding-top:var(--space-2);margin-bottom:var(--space-5);font-weight:var(--font-weight-semibold)}.order-shipping{margin-bottom:var(--space-5)}.order-shipping h2{margin:0 0 var(--space-2);font-size:var(--text-base-size);line-height:var(--text-base-line)}.status-badge{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:var(--radius-control);font-size:var(--text-xs-size);line-height:var(--text-xs-line);font-weight:var(--font-weight-semibold);white-space:nowrap}.status-badge--pending{background:var(--color-pending-subtle);color:var(--color-pending)}.status-badge--success{background:var(--color-success-subtle);color:var(--color-success)}.status-badge--error{background:var(--color-error-subtle);color:var(--color-error)}.status-badge--neutral{background:var(--color-border);color:var(--color-text-muted)}.history-page{max-width:640px;margin:var(--space-5) auto 0;padding:0 var(--space-3) var(--space-6)}.history-page h1{font-size:var(--text-xl-size);line-height:var(--text-xl-line);margin:var(--space-3) 0 var(--space-4)}.history-empty{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3)}.history-list{list-style:none;margin:0;padding:0}.history-row{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) 0;border-bottom:var(--border-width) solid var(--color-border)}.history-row:first-child{border-top:var(--border-width) solid var(--color-border)}.history-row-main{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.history-order-link{font-weight:var(--font-weight-semibold);text-decoration:none}.history-order-link:hover{text-decoration:underline}.history-row-meta{display:flex;flex-wrap:wrap;gap:var(--space-3)}.skeleton-order-link{width:90px}.skeleton-order-meta{width:180px}.history-row-ship{overflow-wrap:anywhere}.cart-page{max-width:480px;margin:var(--space-5) auto 0;padding:0 var(--space-3) var(--space-6)}.cart-page h1{font-size:var(--text-xl-size);line-height:var(--text-xl-line);margin:var(--space-3) 0 var(--space-4)}.barlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.barlist-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-1);font-size:var(--text-sm-size);line-height:var(--text-sm-line)}.barlist-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text);text-decoration:none}a.barlist-label:hover{text-decoration:underline}.barlist-value{flex:none;font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.barlist-secondary{font-weight:var(--font-weight-regular)}.barlist-baseline{border-left:var(--border-width) solid var(--color-border)}.barlist-fill{height:8px;border-radius:0 4px 4px 0;background:var(--color-accent)}.barlist-fill--success{background:var(--color-success)}.barlist-fill--pending{background:var(--color-pending)}.barlist-fill--error{background:var(--color-error)}.barlist-fill--neutral{background:var(--color-text-muted)}.chart{--chart-plot-height: 180px;--chart-y-gutter: 44px;margin:0}.chart-body{display:flex;gap:var(--space-2)}.chart-yaxis{position:relative;flex:0 0 var(--chart-y-gutter);height:var(--chart-plot-height)}.chart-tick{position:absolute;right:0;transform:translateY(50%);font-size:var(--text-xs-size);line-height:1;color:var(--color-text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.chart-plot{position:relative;flex:1;min-width:0;height:var(--chart-plot-height);touch-action:pan-y;border-radius:var(--radius-control)}.chart-plot:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}.chart-gridlines{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.chart-gridline{position:absolute;left:0;right:0;height:0;border-top:var(--border-width) solid var(--color-border)}.chart-columns{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:stretch}.chart-col{position:relative;flex:1;display:flex;align-items:flex-end;justify-content:center;padding:0 1px}.chart-bar{width:100%;max-width:24px;background:var(--color-accent);border-radius:4px 4px 0 0;transition:background-color .12s ease}.chart-bar--active{background:var(--color-accent-hover)}.chart-bar--zero{height:2px;background:var(--color-border);border-radius:0}.chart-peak-label{position:absolute;font-size:var(--text-xs-size);line-height:1;color:var(--color-text-muted);white-space:nowrap;pointer-events:none}.chart-peak-label.chart-anchor--center{left:50%;transform:translate(-50%)}.chart-peak-label.chart-anchor--start{left:0}.chart-peak-label.chart-anchor--end{right:0}.chart-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;margin:0;pointer-events:none}.chart-tooltip{position:absolute;top:0;z-index:2;display:flex;flex-direction:column;gap:2px;padding:var(--space-2) var(--space-3);background:var(--color-text);color:var(--color-surface);border-radius:var(--radius-control);font-size:var(--text-xs-size);line-height:var(--text-xs-line);white-space:nowrap;pointer-events:none}.chart-tooltip-value{font-size:var(--text-sm-size);line-height:var(--text-sm-line);font-weight:var(--font-weight-semibold)}.chart-tooltip-label{opacity:.8}.chart-xaxis{display:flex;justify-content:space-between;margin:var(--space-2) 0 0 calc(var(--chart-y-gutter) + var(--space-2));font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--color-text-muted)}.chart-table{margin-top:var(--space-3);font-size:var(--text-sm-size)}.chart-table summary{cursor:pointer;color:var(--color-text-muted);width:fit-content}.chart-table summary:hover{color:var(--color-text)}.chart-table-scroll{max-height:260px;overflow:auto;margin-top:var(--space-2);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control)}.chart-table table{width:100%;border-collapse:collapse}.chart-table th,.chart-table td{padding:var(--space-1) var(--space-3);text-align:right;font-weight:var(--font-weight-regular);font-variant-numeric:tabular-nums;border-bottom:var(--border-width) solid var(--color-border)}.chart-table th[scope=row],.chart-table thead th:first-child{text-align:left}.chart-table thead th{position:sticky;top:0;background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-xs-size)}.chart-table tbody tr:last-child th,.chart-table tbody tr:last-child td{border-bottom:none}.dashboard-page{max-width:960px;margin:var(--space-5) auto 0;padding:0 var(--space-3) var(--space-6);transition:opacity .15s ease}.dashboard-page--refreshing{opacity:.6}.dashboard-page h1{font-size:var(--text-xl-size);line-height:var(--text-xl-line);margin:0}.dashboard-page h2{font-size:var(--text-lg-size);line-height:var(--text-lg-line);margin:0 0 var(--space-1)}.dashboard-title-row{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-4)}.dashboard-refresh{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-3);margin-bottom:var(--space-5)}.stat-tile{padding:var(--space-3);border:var(--border-width) solid var(--color-border);background:var(--color-surface)}.stat-tile p{margin:0}.stat-tile-value{font-size:var(--text-xl-size);line-height:var(--text-xl-line);font-weight:var(--font-weight-semibold);margin:var(--space-1) 0}.dashboard-section{padding:var(--space-3) 0 var(--space-4);border-top:var(--border-width) solid var(--color-border);margin-bottom:var(--space-3)}.dashboard-section-note{margin:0 0 var(--space-3)}.dashboard-columns{display:grid;grid-template-columns:1fr;column-gap:var(--space-5)}@media(min-width:760px){.dashboard-columns{grid-template-columns:1fr 1fr}}.dashboard-list{list-style:none;margin:0;padding:0}.dashboard-list-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:var(--border-width) solid var(--color-border);font-size:var(--text-sm-size);line-height:var(--text-sm-line)}.dashboard-list-row:last-child{border-bottom:none}.dashboard-list-link{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text);text-decoration:none}.dashboard-list-link:hover{text-decoration:underline}.dashboard-rating{flex:none;display:inline-flex;align-items:center;gap:var(--space-1)}.dashboard-rating-value{font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.dashboard-stock{flex:none;font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.dashboard-stock--out{color:var(--color-error)}.skeleton-stat-tile{height:104px}.skeleton-chart{height:240px}.address-list{list-style:none;margin:0;padding:0}.address-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) 0;border-bottom:var(--border-width) solid var(--color-border)}.address-list .address-card:first-child{border-top:var(--border-width) solid var(--color-border)}.address-card--new{border-bottom:none}.address-card--new h3{margin:0;font-size:var(--text-base-size);line-height:var(--text-base-line)}.address-card-head{display:flex;align-items:center;gap:var(--space-2)}.address-card-label{font-weight:var(--font-weight-semibold)}.address-badge{padding:0 var(--space-2);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text-muted);font-size:var(--text-xs-size);line-height:var(--text-xs-line)}.address-card-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-1)}.address-confirm{margin-top:var(--space-1)}.address-confirm p{margin:0 0 var(--space-2)}.address-add{margin-top:var(--space-3)}.address-empty{margin:0 0 var(--space-3)}.skeleton-address-title{width:80px}.skeleton-address-line{width:220px}.profile-page{max-width:640px;margin:var(--space-5) auto 0;padding:0 var(--space-3) var(--space-6)}.profile-page h1{font-size:var(--text-xl-size);line-height:var(--text-xl-line);margin:var(--space-3) 0 var(--space-4)}.profile-page h2{font-size:var(--text-lg-size);line-height:var(--text-lg-line);margin:0 0 var(--space-2)}.profile-section{margin-bottom:var(--space-5)}.profile-section-note{margin:0 0 var(--space-3)}.skeleton-profile-field{width:100%;height:40px;margin-bottom:var(--space-3)}.not-found-page{max-width:480px;margin:var(--space-6) auto 0;padding:0 var(--space-3)}.not-found-page .logo{margin-bottom:var(--space-5)}.not-found-page h1{font-size:var(--text-xl-size);line-height:var(--text-xl-line);margin:0 0 var(--space-3)}
