@charset "UTF-8";:root{--zgj-color-primary-50: #F2F8F5;--zgj-color-primary-100: #DDEDE5;--zgj-color-primary-200: #B3D6C8;--zgj-color-primary-300: #7FB5A0;--zgj-color-primary-400: #4C9078;--zgj-color-primary-500: #2A7057;--zgj-color-primary-600: #1C5B47;--zgj-color-primary-700: #174B3A;--zgj-color-primary-800: #123B2E;--zgj-color-primary-900: #0D2B22;--zgj-color-primary: var(--zgj-color-primary-600);--zgj-color-primary-hover: var(--zgj-color-primary-700);--zgj-color-primary-active: var(--zgj-color-primary-800);--zgj-color-primary-subtle: var(--zgj-color-primary-50);--zgj-color-on-primary: #FFFFFF;--zgj-color-accent-50: #FCF4EE;--zgj-color-accent-100: #F6E7DD;--zgj-color-accent-200: #EBD0BC;--zgj-color-accent-300: #DCAF8F;--zgj-color-accent-400: #D89B78;--zgj-color-accent-500: #C0764F;--zgj-color-accent-600: #A95C3E;--zgj-color-accent-700: #8C4830;--zgj-color-accent: var(--zgj-color-accent-600);--zgj-color-accent-subtle: var(--zgj-color-accent-50);--zgj-color-point-sand: #EBD3AE;--zgj-color-point-sand-dim: #C9AE89;--zgj-color-success-50: #EAF6EF;--zgj-color-success-100: #D3EBDC;--zgj-color-success-600: #127A4B;--zgj-color-success-700: #0E5F3B;--zgj-color-warning-50: #FFF6E5;--zgj-color-warning-100: #FCE9C6;--zgj-color-warning-600: #A86200;--zgj-color-warning-700: #8A5200;--zgj-color-danger-50: #FDECEA;--zgj-color-danger-100: #F9D8D4;--zgj-color-danger-600: #B3261E;--zgj-color-danger-700: #8F1D17;--zgj-color-info-50: #EAF3F9;--zgj-color-info-100: #D5E7F2;--zgj-color-info-600: #1D6FA5;--zgj-color-info-700: #175B87;--zgj-color-success: var(--zgj-color-success-600);--zgj-color-warning: var(--zgj-color-warning-600);--zgj-color-danger: var(--zgj-color-danger-600);--zgj-color-info: var(--zgj-color-info-600);--zgj-color-on-danger: #FFFFFF;--zgj-color-neutral-0: #FFFFFF;--zgj-color-neutral-25: #FBFAF7;--zgj-color-neutral-50: #F6F5F1;--zgj-color-neutral-100: #EDEBE5;--zgj-color-neutral-200: #DFDCD4;--zgj-color-neutral-300: #C9C5BB;--zgj-color-neutral-400: #A8A399;--zgj-color-neutral-500: #8A857B;--zgj-color-neutral-600: #6B6660;--zgj-color-neutral-700: #4A4640;--zgj-color-neutral-800: #2C2A26;--zgj-color-neutral-900: #191814;--zgj-color-text-1: #1E1C19;--zgj-color-text-2: #5A554E;--zgj-color-text-3: #6B6660;--zgj-color-text-4: #A8A399;--zgj-color-text-inverse: #FFFFFF;--zgj-color-text-link: var(--zgj-color-primary-700);--zgj-color-surface: #FFFFFF;--zgj-color-surface-raised: #FFFFFF;--zgj-color-surface-sunken: var(--zgj-color-neutral-50);--zgj-color-surface-muted: var(--zgj-color-neutral-25);--zgj-color-border: #DFDCD4;--zgj-color-border-strong: #C9C5BB;--zgj-color-border-focus: var(--zgj-color-primary-600);--zgj-color-overlay: rgba(25, 24, 20, .48);--zgj-color-scrim: rgba(25, 24, 20, .06);--zgj-color-viz-1: #1C5B47;--zgj-color-viz-2: #C0764F;--zgj-color-viz-3: #2C6E9B;--zgj-color-viz-4: #8C7A3C;--zgj-color-viz-5: #7A5C7E;--zgj-color-viz-6: #6B6660;--zgj-color-viz-grid: #EDEBE5;--zgj-color-viz-axis: #C9C5BB;--zgj-color-viz-seq-1: #DDEDE5;--zgj-color-viz-seq-2: #B3D6C8;--zgj-color-viz-seq-3: #7FB5A0;--zgj-color-viz-seq-4: #4C9078;--zgj-color-viz-seq-5: #1C5B47;--zgj-space-0: 0;--zgj-space-1: 2px;--zgj-space-2: 4px;--zgj-space-3: 6px;--zgj-space-4: 8px;--zgj-space-5: 12px;--zgj-space-6: 16px;--zgj-space-7: 20px;--zgj-space-8: 24px;--zgj-space-9: 32px;--zgj-space-10: 40px;--zgj-space-11: 48px;--zgj-space-12: 64px;--zgj-space-13: 80px;--zgj-space-14: 96px;--zgj-space-inset-card: 20px;--zgj-space-inset-card-mobile: 16px;--zgj-space-gutter: 24px;--zgj-space-gutter-tight: 16px;--zgj-space-gutter-mobile: 12px;--zgj-space-section: 40px;--zgj-space-page: 24px;--zgj-radius-xs: 4px;--zgj-radius-sm: 6px;--zgj-radius-md: 8px;--zgj-radius-lg: 12px;--zgj-radius-xl: 16px;--zgj-radius-2xl: 20px;--zgj-radius-pill: 999px;--zgj-radius-circle: 50%;--zgj-shadow-none: none;--zgj-shadow-card: 0 1px 2px rgba(25, 24, 20, .04), 0 2px 8px rgba(25, 24, 20, .06);--zgj-shadow-card-hover: 0 2px 4px rgba(25, 24, 20, .06), 0 8px 20px rgba(25, 24, 20, .1);--zgj-shadow-popover: 0 4px 12px rgba(25, 24, 20, .08), 0 12px 32px rgba(25, 24, 20, .1);--zgj-shadow-modal: 0 8px 24px rgba(25, 24, 20, .12), 0 24px 64px rgba(25, 24, 20, .16);--zgj-shadow-inset: inset 0 1px 2px rgba(25, 24, 20, .06);--zgj-shadow-focus: 0 0 0 3px rgba(28, 91, 71, .2);--zgj-shadow-focus-danger: 0 0 0 3px rgba(179, 38, 30, .2);--zgj-font-sans: "PingFang SC", "HarmonyOS Sans SC", "HarmonyOS Sans", "Source Han Sans SC", "Noto Sans CJK SC", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Hiragino Sans GB", sans-serif;--zgj-font-mono: ui-monospace, "SFMono-Regular", "Cascadia Mono", "JetBrains Mono", Consolas, "Liberation Mono", Menlo, monospace;--zgj-font-brand: var(--zgj-font-sans);--zgj-font-size-11: 11px;--zgj-font-size-12: 12px;--zgj-font-size-13: 13px;--zgj-font-size-14: 14px;--zgj-font-size-16: 16px;--zgj-font-size-20: 20px;--zgj-font-size-24: 24px;--zgj-font-size-32: 32px;--zgj-font-size-40: 40px;--zgj-font-line-11: 16px;--zgj-font-line-12: 18px;--zgj-font-line-13: 20px;--zgj-font-line-14: 22px;--zgj-font-line-16: 24px;--zgj-font-line-20: 28px;--zgj-font-line-24: 32px;--zgj-font-line-32: 40px;--zgj-font-line-40: 48px;--zgj-font-weight-regular: 400;--zgj-font-weight-medium: 500;--zgj-font-weight-semibold: 600;--zgj-font-tracking-tight: -.01em;--zgj-font-tracking-normal: 0;--zgj-font-tracking-wide: .02em;--zgj-font-tracking-wider: .08em;--zgj-dur-instant: 80ms;--zgj-dur-fast: .12s;--zgj-dur-base: .18s;--zgj-dur-slow: .24s;--zgj-dur-slower: .36s;--zgj-ease-standard: cubic-bezier(.2, 0, 0, 1);--zgj-ease-out: cubic-bezier(.16, 1, .3, 1);--zgj-ease-in-out: cubic-bezier(.4, 0, .2, 1);--zgj-size-container-max: 1440px;--zgj-size-container-content: 1200px;--zgj-size-container-mobile: 100%;--zgj-size-sidebar: 232px;--zgj-size-sidebar-collapsed: 64px;--zgj-size-header: 56px;--zgj-size-header-mobile: 48px;--zgj-size-tabbar: 56px;--zgj-size-control-sm: 32px;--zgj-size-control-md: 36px;--zgj-size-control-lg: 44px;--zgj-size-touch-min: 44px;--zgj-size-icon: 24px;--zgj-size-icon-stroke: 1.5px;--zgj-border-width: 1px;--zgj-border-width-strong: 2px;--zgj-z-base: 0;--zgj-z-sticky: 100;--zgj-z-header: 200;--zgj-z-dropdown: 300;--zgj-z-overlay: 400;--zgj-z-modal: 500;--zgj-z-toast: 600}[data-theme=dark]{--zgj-color-surface: #123B2E;--zgj-color-surface-raised: #174B3A;--zgj-color-surface-sunken: #0D2B22;--zgj-color-surface-muted: #174B3A;--zgj-color-text-1: #F6F5F1;--zgj-color-text-2: #B3D6C8;--zgj-color-text-3: #7FB5A0;--zgj-color-text-4: #5A8A78;--zgj-color-text-link: #B3D6C8;--zgj-color-border: #1E5445;--zgj-color-border-strong: #2A7057;--zgj-color-border-focus: #7FB5A0;--zgj-color-primary-subtle: #174B3A;--zgj-color-primary: #7FB5A0;--zgj-color-primary-hover: #B3D6C8;--zgj-color-on-primary: #0D2B22;--zgj-color-accent: #DCAF8F;--zgj-color-accent-subtle: #1E5445;--zgj-shadow-card: 0 1px 2px rgba(0, 0, 0, .32), 0 2px 8px rgba(0, 0, 0, .24);--zgj-shadow-popover: 0 4px 12px rgba(0, 0, 0, .4), 0 12px 32px rgba(0, 0, 0, .32);--zgj-shadow-focus: 0 0 0 3px rgba(127, 181, 160, .28)}.zgj-root,body.zgj-body{margin:0;font-family:var(--zgj-font-sans);font-size:var(--zgj-font-size-14);line-height:var(--zgj-font-line-14);color:var(--zgj-color-text-1);background:var(--zgj-color-surface-sunken);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}.zgj-num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.zgj-num-mono{font-family:var(--zgj-font-mono);font-variant-numeric:tabular-nums}.zgj-label-caps{letter-spacing:var(--zgj-font-tracking-wider);text-transform:uppercase}@media (prefers-reduced-motion: reduce){:root{--zgj-dur-instant: 0ms;--zgj-dur-fast: 0ms;--zgj-dur-base: 0ms;--zgj-dur-slow: 0ms;--zgj-dur-slower: 0ms}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;font-family:var(--zgj-font-sans);font-size:var(--zgj-font-size-14);line-height:var(--zgj-font-line-14);color:var(--zgj-color-text-1);background:var(--zgj-color-surface-sunken);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}img,svg{display:block}h1,h2,h3,p{margin:0}:focus-visible{outline:2px solid var(--zgj-color-border-focus);outline-offset:2px}.num,.zgj-num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.mono,.zgj-num-mono{font-family:var(--zgj-font-mono);font-variant-numeric:tabular-nums}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--zgj-space-3);height:var(--zgj-size-control-md);padding:0 var(--zgj-space-7);border:1px solid transparent;border-radius:var(--zgj-radius-md);background:transparent;cursor:pointer;font-size:var(--zgj-font-size-13);font-weight:var(--zgj-font-weight-medium);white-space:nowrap;transition:background var(--zgj-dur-fast) var(--zgj-ease-standard),border-color var(--zgj-dur-fast) var(--zgj-ease-standard),color var(--zgj-dur-fast) var(--zgj-ease-standard),transform var(--zgj-dur-instant) var(--zgj-ease-standard)}.btn:active:not(:disabled){transform:scale(.985)}.btn:disabled{cursor:not-allowed}.btn-primary{background:var(--zgj-color-primary);color:var(--zgj-color-on-primary)}.btn-primary:hover:not(:disabled){background:var(--zgj-color-primary-hover)}.btn-primary:active:not(:disabled){background:var(--zgj-color-primary-active)}.btn-primary:disabled{background:var(--zgj-color-neutral-100);color:var(--zgj-color-neutral-400)}.btn-soft{background:var(--zgj-color-primary-50);color:var(--zgj-color-primary-700)}.btn-soft:hover:not(:disabled){background:var(--zgj-color-primary-100)}.btn-ghost{background:var(--zgj-color-surface);color:var(--zgj-color-text-1);border-color:var(--zgj-color-neutral-300)}.btn-ghost:hover:not(:disabled){background:var(--zgj-color-neutral-25);border-color:var(--zgj-color-neutral-400)}.btn-danger{background:var(--zgj-color-danger);color:var(--zgj-color-on-danger)}.btn-danger:hover:not(:disabled){background:var(--zgj-color-danger-700)}.btn-sm{height:var(--zgj-size-control-sm);padding:0 var(--zgj-space-5);font-size:var(--zgj-font-size-12);border-radius:var(--zgj-radius-sm)}.btn-wide{width:100%;height:var(--zgj-size-control-lg)}.badge{display:inline-flex;align-items:center;gap:var(--zgj-space-2);height:20px;padding:0 var(--zgj-space-4);border-radius:var(--zgj-radius-pill);font-size:var(--zgj-font-size-11);font-weight:var(--zgj-font-weight-medium);white-space:nowrap}.badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex:none}.badge-neutral{background:var(--zgj-color-neutral-100);color:var(--zgj-color-text-2)}.badge-blue{background:var(--zgj-color-info-50);color:var(--zgj-color-info-700)}.badge-green{background:var(--zgj-color-success-50);color:var(--zgj-color-success-700)}.badge-amber{background:var(--zgj-color-warning-50);color:var(--zgj-color-warning-700)}.badge-red{background:var(--zgj-color-danger-50);color:var(--zgj-color-danger-700)}.card{background:var(--zgj-color-surface);border:1px solid var(--zgj-color-border);border-radius:var(--zgj-radius-lg);box-shadow:var(--zgj-shadow-card);margin-bottom:var(--zgj-space-8);overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--zgj-space-5);padding:var(--zgj-space-6) var(--zgj-space-7);border-bottom:1px solid var(--zgj-color-border)}.card-title{font-size:var(--zgj-font-size-16);font-weight:var(--zgj-font-weight-medium)}.card-extra{display:flex;gap:var(--zgj-space-4);align-items:center;flex-wrap:wrap}.card-body{padding:var(--zgj-space-inset-card)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--zgj-space-6);margin:var(--zgj-space-4) 0 var(--zgj-space-8)}.page-head h1{font-size:var(--zgj-font-size-24);line-height:var(--zgj-font-line-24);font-weight:var(--zgj-font-weight-semibold);margin-bottom:var(--zgj-space-3)}.page-head p{color:var(--zgj-color-text-3);font-size:var(--zgj-font-size-13);line-height:var(--zgj-font-line-13);max-width:68ch}.section-label{font-size:var(--zgj-font-size-12);font-weight:var(--zgj-font-weight-medium);color:var(--zgj-color-text-2);margin:var(--zgj-space-5) 0 var(--zgj-space-3)}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--zgj-space-6);margin-bottom:var(--zgj-space-8)}.stat{background:var(--zgj-color-surface);border:1px solid var(--zgj-color-border);border-radius:var(--zgj-radius-lg);box-shadow:var(--zgj-shadow-card);padding:var(--zgj-space-7) var(--zgj-space-8) var(--zgj-space-6)}.stat-label{font-size:var(--zgj-font-size-12);color:var(--zgj-color-text-3)}.stat-value{font-size:28px;line-height:36px;font-weight:var(--zgj-font-weight-semibold);letter-spacing:-.02em;margin:var(--zgj-space-4) 0 var(--zgj-space-1);font-variant-numeric:tabular-nums}.stat-hint{font-size:var(--zgj-font-size-11);line-height:var(--zgj-font-line-11);color:var(--zgj-color-text-3)}.stat-blue .stat-value{color:var(--zgj-color-primary-700)}.stat-green .stat-value{color:var(--zgj-color-success-700)}.stat-amber .stat-value{color:var(--zgj-color-warning-700)}.stat-dark{background:var(--zgj-color-primary-800);border-color:var(--zgj-color-primary-800)}.stat-dark .stat-label{color:var(--zgj-color-primary-300)}.stat-dark .stat-value{color:var(--zgj-color-point-sand)}.stat-dark .stat-hint{color:var(--zgj-color-primary-200)}.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--zgj-space-6)}.product{background:var(--zgj-color-surface);border:1px solid var(--zgj-color-border);border-radius:var(--zgj-radius-lg);box-shadow:var(--zgj-shadow-card);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow var(--zgj-dur-base) var(--zgj-ease-standard),transform var(--zgj-dur-base) var(--zgj-ease-out)}.product:hover{box-shadow:var(--zgj-shadow-card-hover);transform:translateY(-2px)}.product-cover{position:relative;aspect-ratio:4 / 3;display:grid;place-items:center;background:var(--zgj-color-primary-50);color:var(--zgj-color-primary-600);font-size:var(--zgj-font-size-13);letter-spacing:var(--zgj-font-tracking-wide)}.product-cover svg{width:44px;height:44px;stroke-width:1.25;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.product-cover--service{background:var(--zgj-color-accent-50);color:var(--zgj-color-accent-600)}.cover-cup,.cover-bag,.cover-audio,.cover-mouse,.cover-coffee,.cover-note{background:var(--zgj-color-primary-50);color:var(--zgj-color-primary-600)}.cover-tag{position:absolute;left:var(--zgj-space-5);top:var(--zgj-space-5);height:20px;padding:0 var(--zgj-space-3);border-radius:var(--zgj-radius-xs);background:var(--zgj-color-surface);color:var(--zgj-color-text-2);font-size:var(--zgj-font-size-11);font-weight:var(--zgj-font-weight-medium);display:inline-flex;align-items:center}.cover-stock{position:absolute;right:var(--zgj-space-5);bottom:var(--zgj-space-5);font-size:var(--zgj-font-size-11);color:var(--zgj-color-text-2);background:var(--zgj-color-surface);padding:2px var(--zgj-space-3);border-radius:var(--zgj-radius-xs)}.product-body{padding:var(--zgj-space-5) var(--zgj-space-6) var(--zgj-space-6);display:flex;flex-direction:column;gap:var(--zgj-space-3);flex:1}.product-name{font-size:var(--zgj-font-size-14);font-weight:var(--zgj-font-weight-medium);line-height:var(--zgj-font-line-14)}.product-desc{font-size:var(--zgj-font-size-12);color:var(--zgj-color-text-3);line-height:var(--zgj-font-line-12);min-height:36px}.product-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--zgj-space-4);margin-top:auto;padding-top:var(--zgj-space-3)}.product-points{color:var(--zgj-color-primary-700);font-size:var(--zgj-font-size-20);line-height:var(--zgj-font-line-20);font-weight:var(--zgj-font-weight-semibold);font-variant-numeric:tabular-nums}.product-points small{font-size:var(--zgj-font-size-12);font-weight:var(--zgj-font-weight-regular);color:var(--zgj-color-text-3);margin-left:var(--zgj-space-2)}.product-cover{border:none;padding:0;cursor:pointer;font:inherit;width:100%}.product-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.product-name-link{padding:0;border:none;background:none;text-align:left;cursor:pointer;color:inherit}.product-name-link:hover{color:var(--zgj-color-primary-700)}.product-detail-hero{aspect-ratio:4 / 3;border-radius:var(--zgj-radius-md);overflow:hidden;display:grid;place-items:center;margin-bottom:var(--zgj-space-5);background:var(--zgj-color-primary-50);color:var(--zgj-color-primary-600)}.product-detail-hero--service{background:var(--zgj-color-accent-50);color:var(--zgj-color-accent-600)}.product-detail-hero img{width:100%;height:100%;object-fit:contain;background:var(--zgj-color-surface)}.product-detail-hero svg{width:56px;height:56px;stroke-width:1.25;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.product-detail-lead{font-size:var(--zgj-font-size-13);color:var(--zgj-color-text-2);line-height:var(--zgj-font-line-13)}.product-detail-text{border-top:1px solid var(--zgj-color-border);padding-top:var(--zgj-space-5);display:flex;flex-direction:column;gap:var(--zgj-space-4)}.product-detail-text p{font-size:var(--zgj-font-size-13);color:var(--zgj-color-text-2);line-height:var(--zgj-font-line-13)}.redeem-product{display:flex;gap:var(--zgj-space-5);align-items:center;margin-bottom:var(--zgj-space-4)}.redeem-product-img{width:72px;height:54px;border-radius:var(--zgj-radius-sm);object-fit:cover;flex-shrink:0;background:var(--zgj-color-primary-50);color:var(--zgj-color-primary-600);display:grid;place-items:center}.redeem-product-img--icon{aspect-ratio:auto}.redeem-product-img svg{width:28px;height:28px;stroke-width:1.25;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.cell-product{display:flex;gap:var(--zgj-space-4);align-items:center}.cell-product-img{width:52px;height:40px;border-radius:var(--zgj-radius-sm);object-fit:cover;flex-shrink:0;background:var(--zgj-color-primary-50);color:var(--zgj-color-primary-600);display:grid;place-items:center}.cell-product-img svg{width:22px;height:22px;stroke-width:1.25;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.image-picker{display:flex;flex-direction:column;gap:var(--zgj-space-4);width:100%}.image-picker-preview{width:100%;aspect-ratio:4 / 3;max-width:320px;object-fit:contain;border-radius:var(--zgj-radius-md);border:1px solid var(--zgj-color-border);background:var(--zgj-color-primary-50)}.image-picker-empty{width:100%;max-width:320px;aspect-ratio:4 / 3;display:grid;place-items:center;border-radius:var(--zgj-radius-md);border:1px dashed var(--zgj-color-border);color:var(--zgj-color-text-3);font-size:var(--zgj-font-size-12)}.row-muted{opacity:.58}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:var(--zgj-font-size-13)}th{text-align:left;color:var(--zgj-color-text-3);font-weight:var(--zgj-font-weight-medium);padding:var(--zgj-space-5) var(--zgj-space-5);border-bottom:1px solid var(--zgj-color-border);white-space:nowrap}td{padding:var(--zgj-space-5);border-bottom:1px solid var(--zgj-color-neutral-100);color:var(--zgj-color-text-1);vertical-align:middle;line-height:var(--zgj-font-line-13)}tr:last-child td{border-bottom:0}.amount-plus{color:var(--zgj-color-success-700);font-weight:var(--zgj-font-weight-medium);font-variant-numeric:tabular-nums}.amount-minus{color:var(--zgj-color-danger-700);font-weight:var(--zgj-font-weight-medium);font-variant-numeric:tabular-nums}.state-box{display:flex;align-items:center;justify-content:center;gap:var(--zgj-space-5);padding:var(--zgj-space-11) var(--zgj-space-6);color:var(--zgj-color-text-3);font-size:var(--zgj-font-size-13)}.state-error{color:var(--zgj-color-danger-700)}.state-empty{color:var(--zgj-color-text-3)}.spinner{width:15px;height:15px;border:2px solid var(--zgj-color-primary-100);border-top-color:var(--zgj-color-primary);border-radius:50%;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{display:flex;flex-direction:column;gap:var(--zgj-space-5);padding:var(--zgj-space-2) 0;width:100%}.skeleton span{display:block;height:14px;border-radius:var(--zgj-radius-xs);background:var(--zgj-color-neutral-100);animation:breathe 1.6s var(--zgj-ease-in-out) infinite}.skeleton span:nth-child(2){width:78%}.skeleton span:nth-child(3){width:56%}@keyframes breathe{0%,to{opacity:.6}50%{opacity:1}}.notice{background:var(--zgj-color-info-50);border:1px solid var(--zgj-color-info-100);color:var(--zgj-color-info-700);padding:var(--zgj-space-5) var(--zgj-space-6);border-radius:var(--zgj-radius-md);font-size:var(--zgj-font-size-13);line-height:var(--zgj-font-line-13);margin-bottom:var(--zgj-space-6)}.notice-error{background:var(--zgj-color-danger-50);border-color:var(--zgj-color-danger-100);color:var(--zgj-color-danger-700)}.toast{position:sticky;top:var(--zgj-space-5);z-index:var(--zgj-z-toast);margin-bottom:var(--zgj-space-6);padding:var(--zgj-space-5) var(--zgj-space-6);border-radius:var(--zgj-radius-md);font-size:var(--zgj-font-size-13);background:var(--zgj-color-surface);border:1px solid var(--zgj-color-border);border-left:3px solid var(--zgj-color-success);box-shadow:var(--zgj-shadow-popover)}.toast-ok{color:var(--zgj-color-success-700)}.toast-err{border-left-color:var(--zgj-color-danger);color:var(--zgj-color-danger-700)}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--zgj-color-overlay);display:grid;place-items:center;padding:var(--zgj-space-7);z-index:var(--zgj-z-modal)}.modal{background:var(--zgj-color-surface);border-radius:var(--zgj-radius-xl);width:min(480px,100%);max-height:86vh;overflow:auto;box-shadow:var(--zgj-shadow-modal)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:var(--zgj-space-6) var(--zgj-space-7);border-bottom:1px solid var(--zgj-color-border)}.modal-head h3{font-size:var(--zgj-font-size-16);font-weight:var(--zgj-font-weight-medium)}.modal-close{border:0;background:transparent;font-size:22px;line-height:1;color:var(--zgj-color-text-3);cursor:pointer;width:44px;height:44px;display:grid;place-items:center}.modal-body{padding:var(--zgj-space-7);display:flex;flex-direction:column;gap:var(--zgj-space-6)}.modal-foot{padding:var(--zgj-space-5) var(--zgj-space-7);border-top:1px solid var(--zgj-color-border);display:flex;justify-content:flex-end;gap:var(--zgj-space-4)}.field{display:flex;flex-direction:column;gap:var(--zgj-space-3);font-size:var(--zgj-font-size-13)}.field-label{color:var(--zgj-color-text-2);font-weight:var(--zgj-font-weight-medium)}.field-hint{color:var(--zgj-color-text-3);font-size:var(--zgj-font-size-11);line-height:var(--zgj-font-line-11)}.field input,.field textarea,.field select,.input{height:var(--zgj-size-control-md);border:1px solid var(--zgj-color-border-strong);border-radius:var(--zgj-radius-sm);padding:0 var(--zgj-space-5);font-size:var(--zgj-font-size-13);color:var(--zgj-color-text-1);background:var(--zgj-color-surface);width:100%;transition:border-color var(--zgj-dur-fast),box-shadow var(--zgj-dur-fast)}.field textarea{height:auto;min-height:76px;padding:var(--zgj-space-4) var(--zgj-space-5);line-height:var(--zgj-font-line-13);resize:vertical}.field input:focus,.field textarea:focus,.field select:focus,.input:focus{outline:none;border-color:var(--zgj-color-border-focus);box-shadow:var(--zgj-shadow-focus)}.field input::placeholder,.field textarea::placeholder{color:var(--zgj-color-text-3)}.field input:disabled,.input:disabled{background:var(--zgj-color-neutral-50);color:var(--zgj-color-text-4)}.toolbar{display:flex;gap:var(--zgj-space-5);align-items:center;flex-wrap:wrap;margin-bottom:var(--zgj-space-6)}.toolbar .input{width:220px}.pager{display:flex;align-items:center;justify-content:space-between;gap:var(--zgj-space-5);padding-top:var(--zgj-space-6);font-size:var(--zgj-font-size-12);color:var(--zgj-color-text-3)}.checkbox-row{display:flex;align-items:center;gap:var(--zgj-space-5);padding:var(--zgj-space-4) var(--zgj-space-5);border:1px solid var(--zgj-color-border);border-radius:var(--zgj-radius-md);margin-bottom:var(--zgj-space-4);cursor:pointer}.checkbox-row:hover{background:var(--zgj-color-neutral-25)}.checkbox-row input,.dept-chip input{width:15px;height:15px;accent-color:var(--zgj-color-primary)}.cart-summary{display:flex;align-items:center;justify-content:space-between;gap:var(--zgj-space-6)}.cart-total{font-size:var(--zgj-font-size-32);line-height:var(--zgj-font-line-32);font-weight:var(--zgj-font-weight-semibold);color:var(--zgj-color-primary-700);font-variant-numeric:tabular-nums}.cart-total small{font-size:var(--zgj-font-size-13);font-weight:var(--zgj-font-weight-regular);color:var(--zgj-color-text-3)}.pickup-code{font-size:var(--zgj-font-size-24);font-weight:var(--zgj-font-weight-semibold);letter-spacing:var(--zgj-font-tracking-wider);color:var(--zgj-color-primary-700);background:var(--zgj-color-primary-50);border:1px dashed var(--zgj-color-primary-200);border-radius:var(--zgj-radius-md);padding:var(--zgj-space-5) var(--zgj-space-6);margin-top:var(--zgj-space-4);text-align:center;font-family:var(--zgj-font-mono)}.ship-card{border:1px solid var(--zgj-color-border);border-radius:var(--zgj-radius-lg);padding:var(--zgj-space-6) var(--zgj-space-7);margin-bottom:var(--zgj-space-5);background:var(--zgj-color-surface);box-shadow:var(--zgj-shadow-card)}.chip-row{display:flex;flex-wrap:wrap;gap:var(--zgj-space-4);margin-top:var(--zgj-space-5)}.chip{display:flex;align-items:center;gap:var(--zgj-space-3);padding:var(--zgj-space-3) var(--zgj-space-5);border:1px solid var(--zgj-color-border);border-radius:var(--zgj-radius-md);font-size:var(--zgj-font-size-12);background:var(--zgj-color-neutral-25)}.tab-switch{display:flex;gap:var(--zgj-space-2);background:var(--zgj-color-neutral-100);border-radius:var(--zgj-radius-md);padding:var(--zgj-space-2)}.tab-switch button{border:0;background:transparent;padding:var(--zgj-space-3) var(--zgj-space-6);border-radius:var(--zgj-radius-sm);font-size:var(--zgj-font-size-13);color:var(--zgj-color-text-2);cursor:pointer}.tab-switch button.active{background:var(--zgj-color-surface);color:var(--zgj-color-primary-700);font-weight:var(--zgj-font-weight-medium);box-shadow:var(--zgj-shadow-card)}.dept-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:var(--zgj-space-4)}.dept-chip{display:flex;align-items:center;gap:var(--zgj-space-3);padding:var(--zgj-space-3) var(--zgj-space-4);border:1px solid var(--zgj-color-border);border-radius:var(--zgj-radius-sm);font-size:var(--zgj-font-size-12);cursor:pointer}.dept-chip:hover{background:var(--zgj-color-primary-50)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:var(--zgj-space-8);background:var(--zgj-color-surface-sunken)}.login-card{width:min(440px,100%);background:var(--zgj-color-surface);border:1px solid var(--zgj-color-border);border-radius:var(--zgj-radius-xl);padding:var(--zgj-space-11) var(--zgj-space-10);box-shadow:var(--zgj-shadow-modal)}.login-brand{display:flex;align-items:center;justify-content:center;gap:var(--zgj-space-5);font-size:var(--zgj-font-size-20);font-weight:var(--zgj-font-weight-semibold);color:var(--zgj-color-primary-800)}.login-brand svg{width:34px;height:34px;color:var(--zgj-color-primary)}.login-sub{text-align:center;color:var(--zgj-color-text-3);font-size:var(--zgj-font-size-12);margin:var(--zgj-space-4) 0 var(--zgj-space-9);letter-spacing:var(--zgj-font-tracking-wide)}.login-section{display:flex;flex-direction:column;gap:var(--zgj-space-5)}.login-label{font-size:var(--zgj-font-size-13);color:var(--zgj-color-text-2);font-weight:var(--zgj-font-weight-medium)}.login-users{display:flex;flex-direction:column;gap:var(--zgj-space-4)}.login-user{display:flex;align-items:center;gap:var(--zgj-space-5);padding:var(--zgj-space-5) var(--zgj-space-6);border:1px solid var(--zgj-color-border);border-radius:var(--zgj-radius-md);background:var(--zgj-color-surface);cursor:pointer;text-align:left;transition:border-color var(--zgj-dur-fast),background var(--zgj-dur-fast)}.login-user:hover:not(:disabled){border-color:var(--zgj-color-primary-300);background:var(--zgj-color-primary-50)}.login-user:disabled{opacity:.6}.avatar{width:36px;height:36px;border-radius:50%;background:var(--zgj-color-primary-50);color:var(--zgj-color-primary-700);display:grid;place-items:center;font-weight:var(--zgj-font-weight-medium);flex:none}.login-user-main{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.login-user-main strong{font-size:var(--zgj-font-size-13);font-weight:var(--zgj-font-weight-medium)}.login-user-main small{font-size:var(--zgj-font-size-11);color:var(--zgj-color-text-3)}.zgj-admin{display:flex;min-height:100vh}.zgj-sidebar{width:var(--zgj-size-sidebar);flex:none;background:var(--zgj-color-primary-800);color:var(--zgj-color-primary-200);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.zgj-sidebar-brand{display:flex;align-items:center;gap:var(--zgj-space-4);padding:var(--zgj-space-7) var(--zgj-space-8) var(--zgj-space-6);border-bottom:1px solid rgba(255,255,255,.08)}.zgj-sidebar-brand svg{width:30px;height:30px;flex:none;color:var(--zgj-color-text-inverse)}.zgj-brand-text{display:flex;flex-direction:column}.zgj-brand-name{font-size:var(--zgj-font-size-14);font-weight:var(--zgj-font-weight-semibold);color:var(--zgj-color-text-inverse);letter-spacing:.04em;line-height:20px}.zgj-brand-sub{font-size:10px;letter-spacing:.22em;color:var(--zgj-color-primary-300);line-height:14px}.zgj-sidebar-nav{flex:1;padding:var(--zgj-space-5) var(--zgj-space-5);overflow-y:auto}.zgj-nav-group{font-size:10px;letter-spacing:.14em;color:var(--zgj-color-primary-400);padding:var(--zgj-space-5) var(--zgj-space-4) var(--zgj-space-2)}.zgj-nav-item{display:flex;align-items:center;gap:var(--zgj-space-4);height:38px;padding:0 var(--zgj-space-4);margin-bottom:2px;border-radius:var(--zgj-radius-sm);color:var(--zgj-color-primary-200);font-size:var(--zgj-font-size-13);cursor:pointer;border:0;background:transparent;width:100%;text-align:left;transition:background var(--zgj-dur-fast),color var(--zgj-dur-fast)}.zgj-nav-item:hover{background:#ffffff12;color:var(--zgj-color-text-inverse)}.zgj-nav-item.active{background:var(--zgj-color-primary-700);color:var(--zgj-color-text-inverse);font-weight:var(--zgj-font-weight-medium);box-shadow:inset 3px 0 0 var(--zgj-color-accent-300)}.zgj-nav-item .icon{color:var(--zgj-color-primary-300)}.zgj-nav-item.active .icon{color:var(--zgj-color-text-inverse)}.zgj-nav-count{margin-left:auto;font-size:10px;font-weight:var(--zgj-font-weight-semibold);background:var(--zgj-color-accent);color:var(--zgj-color-text-inverse);border-radius:var(--zgj-radius-pill);padding:1px 6px;min-width:18px;text-align:center}.zgj-sidebar-foot{padding:var(--zgj-space-5);border-top:1px solid rgba(255,255,255,.08)}.zgj-side-user{display:flex;align-items:center;gap:var(--zgj-space-4)}.zgj-side-user .avatar{background:var(--zgj-color-primary-700);color:var(--zgj-color-text-inverse);border:1.5px solid rgba(255,255,255,.18)}.zgj-side-user-meta{display:flex;flex-direction:column;min-width:0}.zgj-side-user-name{font-size:var(--zgj-font-size-12);color:var(--zgj-color-text-inverse);font-weight:var(--zgj-font-weight-medium)}.zgj-side-user-role{font-size:10px;color:var(--zgj-color-primary-300)}.zgj-admin-main{flex:1;min-width:0;display:flex;flex-direction:column}.zgj-topbar{height:var(--zgj-size-header);flex:none;background:var(--zgj-color-surface);border-bottom:1px solid var(--zgj-color-border);display:flex;align-items:center;gap:var(--zgj-space-6);padding:0 var(--zgj-space-8);position:sticky;top:0;z-index:var(--zgj-z-header)}.zgj-crumb{display:flex;align-items:center;gap:var(--zgj-space-3);font-size:var(--zgj-font-size-12);color:var(--zgj-color-text-3)}.zgj-crumb b{color:var(--zgj-color-text-1);font-weight:var(--zgj-font-weight-medium)}.zgj-topbar-right{margin-left:auto;display:flex;align-items:center;gap:var(--zgj-space-5)}.zgj-admin-body{padding:var(--zgj-space-8);max-width:var(--zgj-size-container-max);width:100%}.zgj-wecom{min-height:100vh;display:flex;flex-direction:column;background:var(--zgj-color-surface-sunken)}.zgj-wecom-top{height:var(--zgj-size-header);flex:none;background:var(--zgj-color-surface);border-bottom:1px solid var(--zgj-color-border);position:sticky;top:0;z-index:var(--zgj-z-header)}.zgj-wecom-inner{max-width:var(--zgj-size-container-content);height:100%;margin:0 auto;padding:0 var(--zgj-space-8);display:flex;align-items:center;gap:var(--zgj-space-8)}.zgj-brand{display:flex;align-items:center;gap:var(--zgj-space-4);flex:none}.zgj-brand svg{width:26px;height:26px;color:var(--zgj-color-primary)}.zgj-brand-name{font-size:var(--zgj-font-size-14);font-weight:var(--zgj-font-weight-semibold);color:var(--zgj-color-primary-800)}.zgj-brand-sub{font-size:10px;letter-spacing:.18em;color:var(--zgj-color-text-3);margin-left:var(--zgj-space-2)}.zgj-wecom-nav{display:flex;gap:var(--zgj-space-2);overflow-x:auto;flex:1}.zgj-wecom-nav button{border:0;background:transparent;color:var(--zgj-color-text-2);padding:var(--zgj-space-3) var(--zgj-space-5);border-radius:var(--zgj-radius-md);cursor:pointer;font-size:var(--zgj-font-size-13);white-space:nowrap}.zgj-wecom-nav button:hover{background:var(--zgj-color-neutral-50)}.zgj-wecom-nav button.active{background:var(--zgj-color-primary-50);color:var(--zgj-color-primary-700);font-weight:var(--zgj-font-weight-medium)}.zgj-top-user{display:flex;align-items:center;gap:var(--zgj-space-4);flex:none;font-size:var(--zgj-font-size-12);color:var(--zgj-color-text-2)}.zgj-point-pill{background:var(--zgj-color-primary-50);color:var(--zgj-color-primary-700);padding:var(--zgj-space-2) var(--zgj-space-5);border-radius:var(--zgj-radius-pill);font-weight:var(--zgj-font-weight-medium);font-variant-numeric:tabular-nums}.zgj-wecom-body{flex:1;width:100%;max-width:var(--zgj-size-container-content);margin:0 auto;padding:var(--zgj-space-8) var(--zgj-space-8) var(--zgj-space-12)}.zgj-hero{border-radius:var(--zgj-radius-xl);background:var(--zgj-color-primary-800);color:var(--zgj-color-text-inverse);padding:var(--zgj-space-8);margin-bottom:var(--zgj-space-8);position:relative;overflow:hidden}.zgj-hero:after{content:"";position:absolute;right:-30px;top:-50px;width:180px;height:180px;border-radius:50%;border:1px solid rgba(255,255,255,.08);pointer-events:none}.zgj-hero-label{font-size:var(--zgj-font-size-12);color:var(--zgj-color-primary-300);display:flex;justify-content:space-between;align-items:center;gap:var(--zgj-space-5)}.zgj-hero-num{font-size:var(--zgj-font-size-40);line-height:var(--zgj-font-line-40);font-weight:var(--zgj-font-weight-semibold);color:var(--zgj-color-point-sand);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.zgj-hero-num span{font-size:var(--zgj-font-size-14);font-weight:var(--zgj-font-weight-regular);color:var(--zgj-color-primary-300);margin-left:var(--zgj-space-2)}.zgj-hero-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--zgj-space-5);margin-top:var(--zgj-space-5);padding-top:var(--zgj-space-5);border-top:1px solid rgba(255,255,255,.12);font-size:var(--zgj-font-size-12);color:var(--zgj-color-primary-200)}.zgj-hero-foot>span{flex:1;min-width:0}.zgj-hero-link{display:inline-flex;align-items:center;gap:var(--zgj-space-2);color:var(--zgj-color-point-sand);background:none;border:0;padding:0;cursor:pointer;font-size:var(--zgj-font-size-12);white-space:nowrap;flex:none}.zgj-hero-actions{display:flex;gap:var(--zgj-space-4)}.zgj-filters{display:flex;gap:var(--zgj-space-4);overflow-x:auto;margin-bottom:var(--zgj-space-6);scrollbar-width:none}.zgj-filters::-webkit-scrollbar{display:none}.zgj-chip{flex:none;height:32px;padding:0 var(--zgj-space-6);border-radius:var(--zgj-radius-pill);border:1px solid var(--zgj-color-neutral-200);background:var(--zgj-color-surface);color:var(--zgj-color-text-2);font-size:var(--zgj-font-size-12);cursor:pointer}.zgj-chip.active{background:var(--zgj-color-primary-700);border-color:var(--zgj-color-primary-700);color:var(--zgj-color-text-inverse);font-weight:var(--zgj-font-weight-medium)}.zgj-mobile-nav{display:none}@media (max-width: 767px){.zgj-mobile-nav{display:flex;gap:var(--zgj-space-4);overflow-x:auto;padding:var(--zgj-space-4) var(--zgj-space-6);background:var(--zgj-color-surface);border-bottom:1px solid var(--zgj-color-border);scrollbar-width:none}.zgj-mobile-nav::-webkit-scrollbar{display:none}.zgj-mobile-nav button{flex:none;display:inline-flex;align-items:center;gap:var(--zgj-space-2);border:1px solid var(--zgj-color-border);background:var(--zgj-color-surface);color:var(--zgj-color-text-2);padding:var(--zgj-space-2) var(--zgj-space-5);border-radius:var(--zgj-radius-pill);font-size:var(--zgj-font-size-12);cursor:pointer;min-height:32px}.zgj-mobile-nav button.active{background:var(--zgj-color-primary-700);border-color:var(--zgj-color-primary-700);color:var(--zgj-color-text-inverse)}}.zgj-tabbar{position:fixed;left:0;right:0;bottom:0;height:calc(var(--zgj-size-tabbar) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--zgj-color-surface);border-top:1px solid var(--zgj-color-border);display:flex;z-index:var(--zgj-z-sticky);box-shadow:var(--zgj-shadow-card)}.zgj-tab{position:relative;flex:1;border:0;background:transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--zgj-color-text-3);font-size:11px}.zgj-tab .icon{width:22px;height:22px}.zgj-tab.active{color:var(--zgj-color-primary-700);font-weight:var(--zgj-font-weight-medium)}.zgj-tab-dot{position:absolute;top:8px;right:calc(50% - 18px);width:6px;height:6px;border-radius:50%;background:var(--zgj-color-danger)}.icon{width:18px;height:18px;stroke-width:1.5;stroke:currentColor;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none}.icon-lg{width:24px;height:24px}.app-shell{max-width:var(--zgj-size-container-content);margin:0 auto;padding:var(--zgj-space-8)}@media (max-width: 1279px){.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 1023px){.zgj-sidebar{display:none}.zgj-admin-main{width:100%}}@media (max-width: 767px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.zgj-wecom-inner{padding:0 var(--zgj-space-6);gap:var(--zgj-space-5)}.zgj-wecom-nav,.zgj-brand-sub{display:none}.zgj-wecom-body{padding:var(--zgj-space-6) var(--zgj-space-6) calc(var(--zgj-size-tabbar) + var(--zgj-space-11))}.zgj-topbar{padding:0 var(--zgj-space-6)}.zgj-admin-body,.card-body{padding:var(--zgj-space-6)}.page-head{flex-direction:column;align-items:flex-start}.page-head h1{font-size:var(--zgj-font-size-20)}.cart-summary{flex-direction:column;align-items:flex-start}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--zgj-space-5)}.zgj-hero{padding:var(--zgj-space-6)}.zgj-hero-num{font-size:var(--zgj-font-size-32)}.btn{height:var(--zgj-size-control-lg)}.btn-sm{height:36px}.field input,.field select,.input{height:var(--zgj-size-control-lg)}.modal{width:calc(100% - var(--zgj-space-8))}}@media (min-width: 768px){.zgj-tabbar{display:none}}@media (max-width: 479px){.product-grid{gap:var(--zgj-space-5)}.zgj-top-user .zgj-user-name{display:none}}
