:root,[data-theme=wireframe]{--color-bg:#fff;--color-surface:#fff;--color-primary:#000;--color-secondary:#333;--color-border:#000;--color-success:#000;--color-success-bg:#fff;--color-warning:#000;--color-warning-bg:#fff;--color-danger:#000;--color-danger-bg:#fff;--border-width:2px;--border-style:solid;--border-radius-sm:0px;--border-radius-md:0px;--border-radius-lg:0px;--border-radius-full:0px;--shadow-base:4px 4px 0 var(--color-primary);--shadow-hover:6px 6px 0 var(--color-primary);--shadow-inset:inset 2px 2px 0 var(--color-primary);--badge-bg:#000;--badge-fg:#fff;--font-family:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif}[data-theme=minimal]{--color-bg:#fafafa;--color-surface:#fff;--color-primary:#1a1a2e;--color-secondary:#6b7280;--color-border:#e5e7eb;--color-success:#059669;--color-success-bg:#ecfdf5;--color-warning:#d97706;--color-warning-bg:#fffbeb;--color-danger:#dc2626;--color-danger-bg:#fef2f2;--border-width:1px;--border-radius-sm:4px;--border-radius-md:6px;--border-radius-lg:12px;--border-radius-full:9999px;--shadow-base:0 1px 3px #0000000a;--shadow-hover:0 8px 24px #00000014;--shadow-inset:none;--badge-bg:#111;--badge-fg:#fff}[data-theme=dark]{--color-bg:#111;--color-surface:#1e1e1e;--color-primary:#e5e7eb;--color-secondary:#9ca3af;--color-border:#333;--color-success:#34d399;--color-success-bg:#05966933;--color-warning:#fbbf24;--color-warning-bg:#d9770633;--color-danger:#f87171;--color-danger-bg:#dc262633;--border-width:1px;--border-radius-sm:4px;--border-radius-md:6px;--border-radius-lg:12px;--border-radius-full:9999px;--shadow-base:0 4px 12px #0000004d;--shadow-hover:0 8px 24px #00000080;--shadow-inset:none;--badge-bg:#e5e7eb;--badge-fg:#111}:root{--font-xs:.75rem;--font-sm:.875rem;--font-base:1rem;--font-md:1.125rem;--font-lg:1.25rem;--font-xl:1.5rem;--font-2xl:2rem;--fw-normal:400;--fw-semi:600;--fw-bold:700;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--ease:cubic-bezier(.2, 0, .2, 1);--duration:.2s;--container-max:1200px;--header-height:72px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);font-size:var(--font-base);font-weight:var(--fw-normal);color:var(--color-primary);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;transition:background-color var(--duration) var(--ease), color var(--duration) var(--ease);line-height:1.5}a{color:var(--color-primary);border-bottom:var(--border-width) solid transparent;transition:border-color var(--duration) var(--ease);text-decoration:none}a:hover{border-bottom-color:var(--color-primary)}img{border:var(--border-width) var(--border-style) var(--color-border);border-radius:var(--border-radius-lg);max-width:100%;transition:border-radius var(--duration) var(--ease), border-color var(--duration) var(--ease);display:block}button{cursor:pointer;background:var(--color-surface);border:var(--border-width) var(--border-style) var(--color-border);border-radius:var(--border-radius-md);color:var(--color-primary);font-family:inherit;font-weight:var(--fw-semi);transition:all var(--duration) var(--ease)}input,select,textarea{border:var(--border-width) var(--border-style) var(--color-border);border-radius:var(--border-radius-sm);background:var(--color-surface);color:var(--color-primary);transition:all var(--duration) var(--ease);font-family:inherit}.container{width:100%;max-width:var(--container-max);padding:0 var(--sp-6);margin:0 auto}.site-header{border-bottom:var(--border-width) var(--border-style) var(--color-border);background:var(--color-surface);z-index:100;transition:background var(--duration) var(--ease), border-color var(--duration) var(--ease);position:sticky;top:0}.site-header .container{height:var(--header-height);justify-content:space-between;align-items:center;display:flex}.brand{align-items:center;gap:var(--sp-4);display:flex}.brand-logo{align-items:center;gap:var(--sp-2);display:flex}.logo-circle{border:1px solid var(--color-primary);width:32px;height:32px;font-size:var(--font-xs);font-weight:var(--fw-bold);color:var(--color-primary);background:0 0;border-radius:50%;justify-content:center;align-items:center;line-height:1;display:flex}.logo-text{font-size:var(--font-lg);letter-spacing:.15em;text-transform:uppercase;color:var(--color-primary);font-weight:800}.brand-tagline{font-size:var(--font-xs);color:var(--color-secondary);border-left:1px solid var(--color-border);padding-left:var(--sp-3);letter-spacing:.05em;align-items:center;height:16px;display:flex}.header-meta{align-items:center;gap:var(--sp-4);display:flex}.theme-select{height:32px;font-size:var(--font-xs);font-weight:var(--fw-semi);border:var(--border-width) var(--border-style) var(--color-border);border-radius:var(--border-radius-sm);background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-base);appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='3'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding:0 28px 0 12px}.header-status{font-size:var(--font-sm);font-weight:var(--fw-semi);border:var(--border-width) var(--border-style) var(--color-border);border-radius:var(--border-radius-sm);box-shadow:var(--shadow-base);background:var(--color-surface);align-items:center;gap:6px;padding:4px 12px;display:flex}.portal-layout{gap:var(--sp-8);padding:var(--sp-8) 0;grid-template-columns:1fr;display:grid}@media (width>=860px){.portal-layout{grid-template-columns:260px 1fr}}.sidebar{z-index:200;background:var(--color-surface);padding:var(--sp-6);transition:transform var(--duration) var(--ease);flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto;transform:translate(-100%)}.sidebar.mobile-open{transform:translate(0)}.sidebar-header-mobile{margin-bottom:var(--sp-6);justify-content:space-between;align-items:center;display:flex}.sidebar-header-mobile h3{font-size:var(--font-lg);font-weight:var(--fw-bold);margin:0}.hide-on-desktop{display:flex}.hide-on-mobile{display:none}@media (width>=860px){.sidebar{top:calc(var(--header-height) + var(--sp-8));z-index:1;background:0 0;padding:0;transition:none;display:block;position:sticky;overflow-y:visible;transform:none}.sidebar-header-mobile{display:none}.hide-on-desktop{display:none!important}.hide-on-mobile{display:block!important}}.filter-group{margin-bottom:var(--sp-6);border:var(--border-width) var(--border-style) var(--color-border);border-radius:var(--border-radius-lg);padding:var(--sp-4);box-shadow:var(--shadow-base);background:var(--color-surface);transition:all var(--duration) var(--ease)}.filter-title{font-size:var(--font-md);font-weight:var(--fw-bold);margin-bottom:var(--sp-3);text-transform:uppercase;border-bottom:var(--border-width) solid var(--color-border);padding-bottom:var(--sp-2)}.filter-list{gap:var(--sp-2);flex-direction:column;display:flex}.filter-checkbox{align-items:center;gap:var(--sp-2);font-size:var(--font-sm);font-weight:var(--fw-semi);cursor:pointer;color:var(--color-secondary);transition:color var(--duration) var(--ease);display:flex}.filter-checkbox:hover{color:var(--color-primary)}.filter-checkbox input[type=checkbox]{appearance:none;border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-sm);cursor:pointer;background:var(--color-surface);width:20px;height:20px;position:relative}.filter-checkbox input[type=checkbox]:checked{background:var(--badge-bg);border-color:var(--badge-bg)}.filter-checkbox input[type=checkbox]:checked:after{content:"";border:solid var(--badge-fg);border-width:0 2px 2px 0;width:4px;height:8px;position:absolute;top:2px;left:6px;transform:rotate(45deg)}.top-actions{gap:var(--sp-3);margin-bottom:var(--sp-6);justify-content:space-between;align-items:center;display:flex}.mobile-filter-btn{font-size:var(--font-md);font-weight:var(--fw-semi);color:var(--color-primary);background:0 0;border:none;align-items:center;gap:6px;padding:0;display:flex}.search-wrapper{flex:1;max-width:400px;position:relative}.search-icon{color:var(--color-secondary);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-input{width:100%;height:44px;font-weight:var(--fw-semi);box-shadow:var(--shadow-base);padding:0 12px 0 40px}.search-input:focus{box-shadow:var(--shadow-hover);border-color:var(--color-primary);outline:none;transform:translate(-2px,-2px)}.sort-select{height:44px;font-weight:var(--fw-semi);box-shadow:var(--shadow-base);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='3'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding:0 32px 0 16px}.sort-select:focus{border-color:var(--color-primary);outline:none}.product-grid{gap:var(--sp-3);grid-template-columns:repeat(2,1fr);display:grid}@media (width>=540px){.product-grid{gap:var(--sp-6)}}@media (width>=1120px){.product-grid{grid-template-columns:repeat(3,1fr)}}.product-card{border:var(--border-width) var(--border-style) var(--color-border);border-radius:var(--border-radius-lg);background:var(--color-surface);box-shadow:var(--shadow-base);transition:transform var(--duration) var(--ease), box-shadow var(--duration) var(--ease), border-color var(--duration) var(--ease);flex-direction:column;display:flex}.product-card:hover{box-shadow:var(--shadow-hover);transform:translate(-2px,-2px)}.card-image{aspect-ratio:1;border-bottom:var(--border-width) var(--border-style) var(--color-border);background:var(--color-bg);border-radius:var(--border-radius-lg) var(--border-radius-lg) 0 0;border-top:none;border-left:none;border-right:none;justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.card-image img{object-fit:cover;border:none;border-radius:0;width:100%;height:100%}.card-body{padding:var(--sp-4);flex-direction:column;flex:1;display:flex}.product-name{font-size:var(--font-md);font-weight:var(--fw-bold);margin-bottom:var(--sp-2);-webkit-line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;min-height:2.8em;display:-webkit-box;overflow:hidden}.product-price{font-size:var(--font-lg);font-weight:var(--fw-bold);margin-bottom:var(--sp-3);border-bottom:2px solid var(--color-border);padding-bottom:4px;display:inline-block}.product-price .unit{font-size:var(--font-sm);font-weight:var(--fw-semi);color:var(--color-secondary)}.card-meta{gap:var(--sp-2);flex-wrap:wrap;margin-top:auto;display:flex}.card-meta-row{font-size:var(--font-sm);font-weight:var(--fw-semi);color:var(--color-secondary);align-items:center;gap:4px;display:flex}.badge{height:26px;font-size:var(--font-xs);font-weight:var(--fw-bold);text-transform:uppercase;border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-full);background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-base);align-items:center;padding:0 10px;display:inline-flex}.badge-category{background:var(--badge-bg);color:var(--badge-fg);border-color:var(--badge-bg)}.badge-stock{background:var(--color-surface);gap:6px}.badge-stock .dot{border:var(--border-width) solid currentColor;border-radius:var(--border-radius-full);width:8px;height:8px}.badge-in-stock{color:var(--color-success);border-color:var(--color-success)}.badge-in-stock .dot{background:var(--color-success)}.badge-low-stock{color:var(--color-warning);border-color:var(--color-warning)}.badge-low-stock .dot{background:var(--color-warning)}.badge-out-of-stock{color:var(--color-danger);border-color:var(--color-danger)}.btn{height:44px;padding:0 var(--sp-6);font-size:var(--font-sm);font-weight:var(--fw-bold);text-transform:uppercase;box-shadow:var(--shadow-base);justify-content:center;align-items:center;transition:all .1s;display:inline-flex}.btn:active{box-shadow:none;transform:translate(2px,2px)}.btn-primary{background:var(--badge-bg);color:var(--badge-fg);border-color:var(--badge-bg)}.btn-primary:hover{opacity:.9}.btn-outline{background:var(--color-surface);color:var(--color-primary)}.btn-outline:hover{background:var(--color-bg)}.modal-overlay{z-index:200;padding:var(--sp-6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal{background:var(--color-surface);border-radius:var(--border-radius-xl);box-shadow:var(--shadow-hover);width:100%;max-width:540px;max-height:90vh;animation:.3s cubic-bezier(.16,1,.3,1) slideUp;overflow-y:auto}.modal-header{justify-content:space-between;align-items:flex-start;gap:var(--sp-4);padding:var(--sp-5) var(--sp-6);background:var(--color-surface);z-index:10;display:flex;position:sticky;top:0}.modal-header h2{font-size:var(--font-lg);font-weight:var(--fw-bold);margin:0;line-height:1.4}.modal-close{width:32px;height:32px;color:var(--color-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .2s,color .2s;display:flex}.modal-close:hover{background:var(--color-bg);color:var(--color-primary)}.modal-body{padding:0 var(--sp-6) var(--sp-6)}.modal-image{aspect-ratio:1;border-radius:var(--border-radius-lg);width:100%;margin-bottom:var(--sp-6);background:var(--color-bg);justify-content:center;align-items:center;display:flex;overflow:hidden}.modal-image img{object-fit:contain;mix-blend-mode:multiply;width:100%;height:100%}.detail-grid{background:var(--color-bg);border-radius:var(--border-radius-lg);padding:var(--sp-2) var(--sp-5);flex-direction:column;display:flex}.detail-item{padding:var(--sp-3) 0;border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;display:flex}.detail-item:last-child{border-bottom:none}.detail-label{font-size:var(--font-sm);font-weight:var(--fw-semi);color:var(--color-secondary);flex-shrink:0}.detail-value{font-size:var(--font-sm);font-weight:var(--fw-semi);text-align:right}.detail-value.price{font-size:var(--font-lg);font-weight:var(--fw-bold);color:var(--color-primary)}.detail-description{margin-top:var(--sp-6);padding:var(--sp-4);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);font-weight:var(--fw-semi);background:var(--color-bg);box-shadow:var(--shadow-base)}.skeleton{background:linear-gradient(90deg, var(--color-bg) 25%, var(--color-border) 37%, var(--color-bg) 63%);background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-card{border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);background:var(--color-surface);overflow:hidden}.skeleton-card .skeleton-image{aspect-ratio:1;width:100%}.skeleton-card .skeleton-body{padding:var(--sp-5);gap:var(--sp-3);flex-direction:column;display:flex}.skeleton-card .skeleton-line{border-radius:var(--border-radius-sm);height:14px}.skeleton-card .skeleton-line.w-80{width:80%}.skeleton-card .skeleton-line.w-50{width:50%}.state-container{padding:var(--sp-10) var(--sp-6);text-align:center;border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-base);background:var(--color-surface);flex-direction:column;justify-content:center;align-items:center;display:flex}.state-icon{margin-bottom:var(--sp-4);font-size:3rem}.state-title{font-size:var(--font-lg);font-weight:var(--fw-bold);margin-bottom:var(--sp-2)}.state-text{font-size:var(--font-sm);color:var(--color-secondary);margin-bottom:var(--sp-6);max-width:320px}@media (width<=480px){.modal-overlay{align-items:flex-end;padding:0}.modal{border-radius:var(--border-radius-xl) var(--border-radius-xl) 0 0;max-height:85vh}.modal-header{padding:var(--sp-4) var(--sp-5)}.modal-body{padding:0 var(--sp-5) var(--sp-5)}.brand-tagline{display:none}.site-header .container{padding:0 var(--sp-3)}.header-meta{gap:var(--sp-2)}.header-status{font-size:var(--font-xs);padding:4px 8px}.search-wrapper{max-width:none}.product-name,.detail-value,.state-title{word-break:break-word;overflow-wrap:break-word}}:root{--admin-bg:#fafafa;--admin-card:#fff;--admin-text:#1a1a2e;--admin-text-secondary:#6b7280;--admin-accent:#1b365d;--admin-accent-hover:#142a4a;--admin-success:#059669;--admin-success-bg:#05966914;--admin-warning:#d97706;--admin-warning-bg:#d9770614;--admin-danger:#dc2626;--admin-danger-bg:#dc262614;--admin-border:#e5e7eb;--admin-border-focus:#1b365d;--admin-radius:8px;--admin-radius-sm:6px;--admin-border-width:0px;--admin-shadow:0 1px 3px #0000000f, 0 1px 2px #0000000a;--admin-shadow-md:0 4px 12px #00000014;--admin-shadow-lg:0 12px 40px #0000001f;--admin-font:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--admin-transition:.2s cubic-bezier(.4, 0, .2, 1)}[data-theme=dark]{--admin-bg:#111;--admin-card:#1e1e1e;--admin-text:#e5e7eb;--admin-text-secondary:#9ca3af;--admin-border:#333;--admin-border-focus:#3b82f6;--admin-accent:#3b82f6;--admin-accent-hover:#2563eb;--admin-success-bg:#34d3991f;--admin-warning-bg:#fbbf241f;--admin-danger-bg:#f871711f;--admin-border-width:1px}[data-theme=wireframe]{--admin-bg:#fff;--admin-card:#fff;--admin-text:#000;--admin-text-secondary:#333;--admin-border:#000;--admin-border-focus:#000;--admin-accent:#000;--admin-accent-hover:#222;--admin-radius:0px;--admin-radius-sm:0px;--admin-border-width:2px;--admin-shadow:4px 4px 0 #000;--admin-shadow-md:6px 6px 0 #000;--admin-shadow-lg:8px 8px 0 #000}.admin-panel{font-family:var(--admin-font);background:var(--admin-bg);color:var(--admin-text);-webkit-font-smoothing:antialiased;text-align:left;min-height:100vh;line-height:1.5}.admin-panel *{box-sizing:border-box}.admin-login-wrapper{background:var(--admin-bg);place-items:center;min-height:100vh;padding:24px;display:grid}.admin-login-card{background:var(--admin-card);border-radius:var(--admin-radius);border:var(--admin-border-width) solid var(--admin-border);box-shadow:var(--admin-shadow-lg);width:100%;max-width:400px;padding:48px 40px;animation:.4s ease-out adminFadeUp}.admin-login-card h1{font-family:var(--admin-font);color:var(--admin-text);letter-spacing:-.3px;margin:0 0 4px;font-size:22px;font-weight:600}.admin-login-card .login-subtitle{color:var(--admin-text-secondary);margin:0 0 32px;font-size:14px}.admin-login-card .login-field{margin-bottom:20px}.admin-login-card label{color:var(--admin-text-secondary);letter-spacing:.02em;margin-bottom:6px;font-size:13px;font-weight:500;display:block}.admin-login-card input{border:1.5px solid var(--admin-border);border-radius:var(--admin-radius-sm);width:100%;font-size:15px;font-family:var(--admin-font);color:var(--admin-text);background:var(--admin-bg);transition:border-color var(--admin-transition), box-shadow var(--admin-transition);outline:none;padding:10px 14px}.admin-login-card input:focus{border-color:var(--admin-border-focus);box-shadow:0 0 0 3px #1b365d1a}.admin-login-card .login-error{background:var(--admin-danger-bg);color:var(--admin-danger);border-radius:var(--admin-radius-sm);margin-bottom:20px;padding:10px 14px;font-size:13px;animation:.3s adminShake;display:none}.admin-login-card .login-error.visible{display:block}.admin-login-card .login-btn{background:var(--admin-accent);color:#fff;border-radius:var(--admin-radius-sm);width:100%;font-size:15px;font-weight:500;font-family:var(--admin-font);cursor:pointer;transition:background var(--admin-transition), transform .1s;border:none;padding:12px}.admin-login-card .login-btn:hover{background:var(--admin-accent-hover)}.admin-login-card .login-btn:active{transform:scale(.98)}.admin-login-card .login-btn:disabled{opacity:.6;cursor:not-allowed}.admin-topbar{background:var(--admin-card);border-bottom:1px solid var(--admin-border);z-index:100;justify-content:space-between;align-items:center;height:60px;padding:0 32px;display:flex;position:sticky;top:0;box-shadow:0 1px 2px #00000008}.admin-topbar-left{align-items:center;gap:16px;display:flex}.admin-topbar h1{font-family:var(--admin-font);letter-spacing:-.2px;color:var(--admin-text);margin:0;font-size:18px;font-weight:600}.admin-topbar-right{align-items:center;gap:16px;display:flex}.admin-user-info{color:var(--admin-text-secondary);font-size:13px}.admin-topbar-btn{border-radius:var(--admin-radius-sm);font-size:13px;font-weight:500;font-family:var(--admin-font);cursor:pointer;transition:all var(--admin-transition);border:1.5px solid var(--admin-border);background:var(--admin-card);color:var(--admin-text);align-items:center;gap:6px;padding:6px 16px;text-decoration:none;display:inline-flex}.admin-topbar-btn:hover{background:var(--admin-bg);border-color:var(--admin-border-focus)}.admin-topbar-btn.danger{color:var(--admin-danger);border-color:#dc26264d}.admin-topbar-btn.danger:hover{background:var(--admin-danger-bg);border-color:var(--admin-danger)}.admin-body{width:100%;max-width:1280px;margin:0 auto;padding:28px 32px 48px;animation:.3s ease-out adminFadeUp}.admin-stats{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;display:grid}.admin-stat-card{background:var(--admin-card);border:1px solid var(--admin-border);border-radius:var(--admin-radius);transition:box-shadow var(--admin-transition), transform var(--admin-transition);flex-direction:column;gap:4px;padding:20px 24px;display:flex}.admin-stat-card:hover{box-shadow:var(--admin-shadow);transform:translateY(-1px)}.admin-stat-card .stat-label{color:var(--admin-text-secondary);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:500}.admin-stat-card .stat-value{letter-spacing:-.5px;color:var(--admin-text);font-size:28px;font-weight:700}.admin-stat-card.success .stat-value{color:var(--admin-success)}.admin-stat-card.warning .stat-value{color:var(--admin-warning)}.admin-stat-card.danger .stat-value{color:var(--admin-danger)}.admin-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.admin-search{flex:1;max-width:320px;position:relative}.admin-search input{border:1.5px solid var(--admin-border);border-radius:var(--admin-radius-sm);width:100%;font-size:14px;font-family:var(--admin-font);background:var(--admin-card);color:var(--admin-text);transition:border-color var(--admin-transition), box-shadow var(--admin-transition);outline:none;padding:9px 14px 9px 38px}.admin-search input:focus{border-color:var(--admin-border-focus);box-shadow:0 0 0 3px #1b365d14}.admin-search:before{content:"⌕";color:var(--admin-text-secondary);pointer-events:none;font-size:16px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.admin-add-btn{background:var(--admin-accent);color:#fff;border-radius:var(--admin-radius-sm);font-size:14px;font-weight:500;font-family:var(--admin-font);cursor:pointer;transition:background var(--admin-transition), transform .1s;border:none;align-items:center;gap:6px;padding:9px 20px;display:inline-flex}.admin-add-btn:hover{background:var(--admin-accent-hover)}.admin-add-btn:active{transform:scale(.97)}.admin-table-wrapper{background:var(--admin-card);border:1px solid var(--admin-border);border-radius:var(--admin-radius);overflow:hidden}.admin-table{border-collapse:collapse;width:100%;font-size:14px}.admin-table thead{background:var(--admin-bg);border-bottom:1px solid var(--admin-border)}.admin-table th{text-align:left;color:var(--admin-text-secondary);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--admin-transition);padding:12px 16px;font-size:12px;font-weight:600}.admin-table th:hover{color:var(--admin-text)}.admin-table th.sorted-asc:after{content:" ↑"}.admin-table th.sorted-desc:after{content:" ↓"}.admin-table td{border-bottom:1px solid var(--admin-border);vertical-align:middle;color:var(--admin-text);padding:12px 16px}.admin-table tbody tr{transition:background var(--admin-transition)}.admin-table tbody tr:hover{background:#8080800d}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table .mono{font-family:SF Mono,Fira Code,monospace;font-size:13px}.admin-table .text-secondary{color:var(--admin-text-secondary);font-size:13px}.admin-table .profit-margin{color:var(--admin-success);font-size:12px;font-weight:500}.admin-stock-display{cursor:pointer;transition:background var(--admin-transition);border-radius:4px;align-items:center;gap:6px;min-width:48px;padding:4px 10px;font-family:SF Mono,Fira Code,monospace;font-size:13px;display:inline-flex}.admin-stock-display:hover{background:#1b365d0f}.admin-stock-display .stock-edit-hint{color:#9ca3af;opacity:0;transition:opacity var(--admin-transition);font-size:10px}.admin-stock-display:hover .stock-edit-hint{opacity:1}.admin-stock-input{border:1.5px solid var(--admin-accent);text-align:center;border-radius:4px;outline:none;width:72px;padding:4px 8px;font-family:SF Mono,Fira Code,monospace;font-size:13px;animation:.3s adminPulse;box-shadow:0 0 0 3px #1b365d1a}.admin-stock-saved{animation:.8s adminStockSaved}.admin-checkbox{appearance:none;border:1px solid var(--admin-border);cursor:pointer;vertical-align:middle;background:0 0;border-radius:4px;justify-content:center;align-items:center;width:18px;height:18px;margin:0;transition:all .2s;display:inline-flex}.admin-checkbox:checked{background:var(--admin-accent);border-color:var(--admin-accent)}.admin-checkbox:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:4px;height:8px;margin-top:-2px;display:block;transform:rotate(45deg)}.admin-badge{letter-spacing:.01em;border-radius:100px;padding:3px 10px;font-size:12px;font-weight:500;display:inline-flex}.admin-badge.in-stock{background:var(--admin-success-bg);color:var(--admin-success)}.admin-badge.low-stock{background:var(--admin-warning-bg);color:var(--admin-warning)}.admin-badge.out-of-stock{background:var(--admin-danger-bg);color:var(--admin-danger)}.admin-badge.inactive{background:var(--admin-border);color:var(--admin-text-secondary)}.admin-action-btns{gap:6px;display:flex}.admin-action-btn{border:1px solid var(--admin-border);background:var(--admin-card);color:var(--admin-text-secondary);font-size:12px;font-family:var(--admin-font);cursor:pointer;transition:all var(--admin-transition);border-radius:4px;padding:5px 12px}.admin-action-btn:hover{color:var(--admin-text);border-color:var(--admin-border-focus);background:var(--admin-bg)}.admin-action-btn.delete:hover{color:var(--admin-danger);background:var(--admin-danger-bg);border-color:#dc26264d}.admin-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0006;place-items:center;padding:24px;animation:.2s adminFadeIn;display:grid;position:fixed;inset:0}.admin-modal{background:var(--admin-card);box-shadow:var(--admin-shadow-lg);border-radius:12px;flex-direction:column;width:100%;max-width:620px;max-height:90vh;animation:.25s ease-out adminScaleIn;display:flex}.admin-modal-header{justify-content:space-between;align-items:center;padding:24px 28px 0;display:flex}.admin-modal-header h2{font-family:var(--admin-font);color:var(--admin-text);margin:0;font-size:18px;font-weight:600}.admin-modal-close{cursor:pointer;width:32px;height:32px;color:var(--admin-text-secondary);transition:all var(--admin-transition);background:0 0;border:none;border-radius:6px;place-items:center;font-size:20px;display:grid}.admin-modal-close:hover{background:var(--admin-bg);color:var(--admin-text)}.admin-modal-body{flex:1;padding:24px 28px;overflow-y:auto}.admin-form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.admin-form-grid .full-width{grid-column:1/-1}.admin-form-field{flex-direction:column;gap:5px;display:flex}.admin-form-field label{color:var(--admin-text-secondary);font-size:13px;font-weight:500}.admin-form-field label .required{color:var(--admin-danger);margin-left:2px}.admin-form-field input,.admin-form-field select,.admin-form-field textarea{border:1.5px solid var(--admin-border);border-radius:var(--admin-radius-sm);font-size:14px;font-family:var(--admin-font);color:var(--admin-text);background:var(--admin-card);transition:border-color var(--admin-transition), box-shadow var(--admin-transition);outline:none;padding:9px 12px}.admin-form-field input:focus,.admin-form-field select:focus,.admin-form-field textarea:focus{border-color:var(--admin-border-focus);box-shadow:0 0 0 3px #1b365d14}.admin-form-field textarea{resize:vertical;min-height:80px}.admin-form-field input.invalid,.admin-form-field select.invalid{border-color:var(--admin-danger);box-shadow:0 0 0 3px #dc262614}.admin-form-checkbox{align-items:center;gap:8px;padding-top:8px;display:flex}.admin-form-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--admin-accent);cursor:pointer}.admin-form-checkbox label{color:var(--admin-text);cursor:pointer;font-size:14px}.admin-modal-footer{border-top:1px solid var(--admin-border);justify-content:flex-end;gap:10px;margin-top:auto;padding:16px 28px 24px;display:flex}.admin-modal-footer .btn-cancel{border:1.5px solid var(--admin-border);border-radius:var(--admin-radius-sm);background:var(--admin-card);color:var(--admin-text);font-size:14px;font-family:var(--admin-font);cursor:pointer;transition:all var(--admin-transition);padding:9px 20px}.admin-modal-footer .btn-cancel:hover{background:var(--admin-bg)}.admin-modal-footer .btn-save{border-radius:var(--admin-radius-sm);background:var(--admin-accent);color:#fff;font-size:14px;font-weight:500;font-family:var(--admin-font);cursor:pointer;transition:background var(--admin-transition), transform .1s;border:none;padding:9px 24px}.admin-modal-footer .btn-save:hover{background:var(--admin-accent-hover)}.admin-modal-footer .btn-save:active{transform:scale(.97)}.admin-modal-footer .btn-save:disabled{opacity:.6;cursor:not-allowed}.admin-toast-container{z-index:2000;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:72px;right:24px}.admin-toast{background:var(--admin-card);border:1px solid var(--admin-border);border-radius:var(--admin-radius);box-shadow:var(--admin-shadow-md);font-size:14px;font-family:var(--admin-font);pointer-events:auto;align-items:center;gap:10px;max-width:380px;padding:12px 20px;animation:.3s ease-out adminSlideIn;display:flex}.admin-toast.success{border-left:3px solid var(--admin-success)}.admin-toast.error{border-left:3px solid var(--admin-danger)}.admin-toast.leaving{animation:.25s ease-in forwards adminSlideOut}.admin-toast-icon{flex-shrink:0;font-size:18px}.admin-confirm-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1100;background:#0006;place-items:center;padding:24px;animation:.15s adminFadeIn;display:grid;position:fixed;inset:0}.admin-confirm-dialog{background:var(--admin-card);box-shadow:var(--admin-shadow-lg);text-align:center;border-radius:12px;width:100%;max-width:380px;padding:28px;animation:.2s ease-out adminScaleIn}.admin-confirm-dialog h3{font-family:var(--admin-font);color:var(--admin-text);margin:0 0 8px;font-size:16px;font-weight:600}.admin-confirm-dialog p{color:var(--admin-text-secondary);margin:0 0 24px;font-size:14px}.admin-confirm-actions{justify-content:center;gap:10px;display:flex}.admin-confirm-actions button{border-radius:var(--admin-radius-sm);font-size:14px;font-weight:500;font-family:var(--admin-font);cursor:pointer;transition:all var(--admin-transition);padding:9px 24px}.admin-confirm-actions .btn-cancel-confirm{border:1.5px solid var(--admin-border);background:var(--admin-card);color:var(--admin-text)}.admin-confirm-actions .btn-cancel-confirm:hover{background:var(--admin-bg)}.admin-confirm-actions .btn-danger-confirm{background:var(--admin-danger);color:#fff;border:none}.admin-confirm-actions .btn-danger-confirm:hover{background:#b91c1c}.admin-empty{text-align:center;color:var(--admin-text-secondary);padding:60px 20px}.admin-empty-icon{opacity:.4;margin-bottom:12px;font-size:48px}.admin-empty p{font-size:15px}@keyframes adminFadeIn{0%{opacity:0}to{opacity:1}}@keyframes adminFadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes adminScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes adminSlideIn{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes adminSlideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(40px)}}@keyframes adminShake{0%,to{transform:translate(0)}20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}@keyframes adminPulse{0%{box-shadow:0 0 #1b365d33}to{box-shadow:0 0 0 3px #1b365d1a}}@keyframes adminStockSaved{0%{background:0 0}30%{background:#0596691f}to{background:0 0}}@media (width<=1024px){.admin-stats{grid-template-columns:repeat(2,1fr)}.admin-body{padding:20px}}@media (width<=768px){.admin-topbar{padding:0 16px}.admin-topbar h1{font-size:16px}.admin-user-info{display:none}.admin-stats{grid-template-columns:1fr 1fr;gap:10px}.admin-stat-card{padding:16px}.admin-stat-card .stat-value{font-size:22px}.admin-toolbar{flex-direction:column;align-items:stretch}.admin-search{max-width:none}.admin-table-wrapper{overflow-x:auto}.admin-table{min-width:700px}.admin-form-grid{grid-template-columns:1fr}.admin-modal{max-height:95vh}.admin-modal-body{padding:20px}}@media (width<=480px){.admin-stats{grid-template-columns:1fr}.admin-body{padding:16px}.admin-login-card{padding:32px 24px}}.image-upload-wrapper{margin-top:4px}.image-preview-container{border:2px dashed var(--admin-border);border-radius:var(--admin-radius-sm);cursor:pointer;background:var(--admin-bg);min-height:120px;transition:border-color var(--admin-transition);flex-direction:column;justify-content:center;align-items:center;padding:12px;display:flex;position:relative}.image-preview-container:hover{border-color:var(--admin-accent)}.image-preview{object-fit:contain;border-radius:4px;max-width:100%;max-height:150px;margin-bottom:8px}.image-placeholder{text-align:center;color:var(--admin-text-secondary);flex-direction:column;align-items:center;gap:8px;font-size:13px;display:flex}.btn-remove-image{background:var(--admin-danger-bg);color:var(--admin-danger);border-radius:var(--admin-radius-sm);cursor:pointer;transition:all var(--admin-transition);border:1px solid #dc262633;padding:4px 12px;font-size:12px}.btn-remove-image:hover{background:var(--admin-danger);color:#fff;border-color:var(--admin-danger)}.taxonomy-grid{grid-template-columns:1fr 1fr;gap:2rem;margin-top:1rem;display:grid}.taxonomy-header-row{border-bottom:1px solid var(--admin-border);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;display:flex}.taxonomy-header-row h3{border:none;margin:0;padding:0;font-size:1.1rem;font-weight:500}.taxonomy-list{flex-direction:column;gap:.5rem;max-height:300px;margin-bottom:1rem;display:flex;overflow-y:auto}.taxonomy-item{border:1px solid var(--admin-border);background:#00000005;border-radius:4px;justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex}[data-theme=dark] .taxonomy-item{background:#ffffff0d}.taxonomy-item-text{font-size:.95rem}.btn-remove-taxonomy{color:#ff4d4f;cursor:pointer;opacity:.6;background:0 0;border:none;padding:0 .5rem;font-size:1.2rem;line-height:1;transition:opacity .2s}.btn-remove-taxonomy:hover{opacity:1}.taxonomy-add-row{gap:.5rem;display:flex}.taxonomy-add-row input{width:140px}.btn-add-taxonomy{background:var(--admin-primary);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:0 1rem;font-weight:500;transition:opacity .2s}.btn-add-taxonomy:hover{opacity:.9}.sumibi-modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:1000;background:#0003;place-items:center;padding:20px;animation:.3s adminFadeIn;display:grid;position:fixed;inset:0}.sumibi-modal{color:#1b1c1c;background:#fbf9f9;border:1px solid #7478781a;border-radius:4px;flex-direction:column;width:100%;max-width:768px;max-height:90vh;font-family:Inter,sans-serif;animation:.3s cubic-bezier(.16,1,.3,1) adminScaleIn;display:flex}.sumibi-modal-header{border-bottom:1px solid #7478781a;justify-content:space-between;align-items:center;padding:32px 48px 24px;display:flex}.sumibi-modal-header h2{letter-spacing:.02em;color:#000;margin:0;font-family:Manrope,sans-serif;font-size:32px;font-weight:300}.sumibi-modal-close{color:#444748;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:color .3s;display:flex}.sumibi-modal-close:hover{color:#000}.sumibi-modal-body{flex:1;padding:32px 48px;overflow-y:auto}.sumibi-form-grid{grid-template-columns:1fr;gap:32px;display:grid}@media (width>=768px){.sumibi-form-grid{grid-template-columns:1fr 1fr;gap:24px}}.sumibi-form-field{flex-direction:column;gap:4px;display:flex}.sumibi-form-field.full-width{grid-column:1/-1}.sumibi-label{letter-spacing:.15em;text-transform:uppercase;color:#444748;margin-bottom:4px;font-family:Manrope,sans-serif;font-size:12px;font-weight:600}.sumibi-label .required{color:#ba1a1a}.sumibi-input,.sumibi-select,.sumibi-textarea{color:#1b1c1c;background:0 0;border:0;border-bottom:1px solid #0000001a;outline:none;width:100%;padding:8px 0;font-family:Inter,sans-serif;font-size:16px;transition:border-color .3s}.sumibi-input:focus,.sumibi-select:focus,.sumibi-textarea:focus{border-bottom-color:#735c00}.sumibi-select{appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%231b1c1c' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right 0 center;background-repeat:no-repeat;background-size:1.5em 1.5em}.sumibi-textarea{resize:none;line-height:1.5}.sumibi-image-upload{cursor:pointer;background:#f5f3f34d;border:1px dashed #7478784d;border-radius:4px;justify-content:center;margin-top:8px;padding:64px 24px;transition:all .3s;display:flex}.sumibi-image-upload:hover{background:#f5f3f380;border-color:#735c00}.sumibi-image-upload-content{text-align:center;color:#747878}.sumibi-image-upload:hover .sumibi-image-upload-content{color:#735c00}.sumibi-image-upload-text{color:#000;margin-top:16px;font-size:14px;font-weight:600}.sumibi-checkbox-wrap{align-items:center;margin-top:24px;display:flex}.sumibi-checkbox-wrap input[type=checkbox]{accent-color:#000;cursor:pointer;width:16px;height:16px}.sumibi-checkbox-wrap label{cursor:pointer;margin-left:12px;font-size:16px}.sumibi-modal-actions{border-top:1px solid #7478781a;justify-content:flex-end;gap:16px;margin-top:32px;padding-top:32px;display:flex}.sumibi-btn{letter-spacing:.15em;text-transform:uppercase;cursor:pointer;border:none;border-radius:4px;padding:12px 32px;font-family:Manrope,sans-serif;font-size:12px;font-weight:600;transition:all .3s}.sumibi-btn-outline{color:#000;background:0 0;border:1px solid #0003}.sumibi-btn-outline:hover{color:#fff;background:#000}.sumibi-btn-solid{color:#fff;background:#000;border:1px solid #000}.sumibi-btn-solid:hover{background:#735c00;border-color:#735c00}#exportContainerWrapper{position:absolute;top:0;left:-9999px}.export-container{color:#f1f1f1;box-sizing:border-box;background-color:#111;width:800px;padding:60px 40px;font-family:Manrope,Inter,sans-serif}.export-header{text-align:center;border-bottom:1px solid #ffffff1a;margin-bottom:40px;padding-bottom:30px}.export-title{letter-spacing:4px;color:#fff;margin:0 0 10px;font-size:32px;font-weight:300}.export-date{color:#ffffff80;letter-spacing:1px;font-size:14px;font-weight:200}.export-list{flex-direction:column;gap:24px;display:flex}.export-item{border-bottom:1px solid #ffffff0d;align-items:center;gap:20px;padding-bottom:24px;display:flex}.export-item:last-child{border-bottom:none}.export-item-image{object-fit:contain;background-color:#0000;border-radius:4px;width:80px;height:80px}.export-item-image.empty{color:#555;border:1px dashed #333;justify-content:center;align-items:center;font-size:12px;display:flex}.export-item-details{flex-direction:column;flex:1;gap:6px;display:flex}.export-item-name{color:#fff;letter-spacing:1px;margin:0;font-size:20px;font-weight:500}.export-item-meta{color:#fff9;gap:16px;font-size:13px;display:flex}.export-item-meta span{align-items:center;gap:4px;display:flex}.export-item-price{color:#e5b95e;text-align:right;letter-spacing:1px;font-family:Inter,sans-serif;font-size:22px;font-weight:400}.export-item-price-currency{color:#e5b95eb3;margin-right:4px;font-size:14px}.export-footer{text-align:center;color:#ffffff4d;letter-spacing:2px;margin-top:60px;font-size:12px}.spec-dropdown-wrapper{position:relative}.spec-dropdown-menu{background:var(--admin-bg);border:1px solid var(--admin-border);z-index:100;border-radius:4px;flex-direction:column;margin-top:4px;display:flex;position:absolute;top:100%;left:0;right:0;box-shadow:0 4px 12px #0000001a}.spec-list{max-height:150px;overflow-y:auto}.spec-item{cursor:pointer;border-bottom:1px solid var(--admin-border);color:var(--admin-text);justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;display:flex}.spec-item:hover{background:var(--admin-bg-alt)}.spec-item-remove{color:var(--admin-text-muted);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;padding:4px;font-size:12px;display:flex}.spec-item-remove:hover{color:var(--admin-danger);background:#dc26261a}.spec-add{background:var(--admin-bg-alt);border-bottom-right-radius:4px;border-bottom-left-radius:4px;gap:8px;padding:8px;display:flex}.spec-add input{border:1px solid var(--admin-border);background:var(--admin-bg);color:var(--admin-text);border-radius:4px;outline:none;flex:1;padding:6px 8px;font-size:12px}.spec-add input:focus{border-color:var(--admin-primary)}.spec-add button{background:var(--admin-primary);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:6px 12px;font-size:12px}.spec-add button:hover{opacity:.9}
