:root{--c-brand-50: #fffdf5;--c-brand-100: #fef7dc;--c-brand-150: #fdf2d2;--c-brand-200: #fdedb4;--c-brand-250: #fce7a1;--c-brand-300: #fbdd80;--c-brand-400: #f7c93f;--c-brand-500: #f0b429;--c-brand-600: #d69912;--c-brand-700: #8f6605;--c-brand-800: #6b4c04;--c-brand-900: #4a3403;--c-line-brand: #efc96a;--c-on-brand: #6b4c04;--c-brand: var(--c-brand-500);--c-brand-bright: var(--c-brand-400);--c-brand-dark: var(--c-brand-600);--c-brand-deep: var(--c-brand-700);--c-brand-light: var(--c-brand-100);--c-brand-soft: var(--c-brand-250);--c-brand-inner: var(--c-brand-150);--c-brand-a10: rgba(240, 180, 41, .13);--c-brand-a20: rgba(240, 180, 41, .26);--c-brand-ring: rgba(240, 180, 41, .34);--c-ink: #1c1917;--c-ink-2: #292524;--c-text: #1c1917;--c-text-sub: #57534e;--c-text-mid: #78716c;--c-text-weak: #a8a29e;--c-disabled-text: #b8b2ab;--c-bg: #fbf8ef;--c-bg-deep: #f5f1e4;--c-white: #ffffff;--c-fill: #f6f2e7;--c-fill-2: #faf7ee;--c-fill-3: #f0ece0;--c-line: #ece7db;--c-line-strong: #d9d3c4;--c-line-soft: #f4f0e6;--c-nav-bg: #17140f;--c-nav-bg-2: #221e17;--c-nav-fg: rgba(255, 255, 255, .68);--c-nav-fg-strong: #ffffff;--c-nav-line: rgba(255, 255, 255, .08);--c-nav-hover: rgba(255, 255, 255, .07);--c-nav-active-bg: var(--c-brand-500);--c-nav-active-fg: #1c1917;--c-success: #15803d;--c-success-bg: #e8f5ec;--c-warning: #b45309;--c-warning-bg: #fdf3e3;--c-danger: #dc2626;--c-danger-bg: #fdeceb;--c-info: #2563eb;--c-info-bg: #eaf1fe;--c-danger-a10: rgba(220, 38, 38, .1);--c-warning-a10: rgba(180, 83, 9, .12);--c-blue-a10: rgba(37, 99, 235, .1);--c-blue: #2563eb;--c-gold: var(--c-brand-600);--c-price: #e0341b;--c-price-bg: #fdeceb;--c-stock-ok: #3fbf6a;--c-stock-mid: var(--c-brand-500);--c-stock-low: #f0791f;--c-stock-out: #d94a3a;--c-status-pay: #c2410c;--c-status-send: #15803d;--c-status-done: #78716c;--c-status-refund: #dc2626;--c-mask: rgba(28, 25, 23, .42);--c-type-blue: #eaf1fe;--c-type-green: #e8f5ec;--c-type-pink: #fdeaf0;--c-type-amber: #fef7dc;--g-brand: linear-gradient(135deg, #f9d667 0%, #f0b429 55%, #d69912 100%);--g-nav: linear-gradient(180deg, #1b1711 0%, #131009 100%);--g-nav-platform: linear-gradient(180deg, #4a3403 0%, #2c1e02 100%);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--radius-xs: 4px;--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--radius-pill: 999px;--sidebar-w: 224px;--header-h: 58px;--fs-xs: 11.5px;--fs-sm: 12.5px;--fs-base: 13.5px;--fs-md: 15px;--fs-lg: 17px;--fs-xl: 22px;--fs-2xl: 28px;--shadow-xs: 0 1px 2px rgba(28, 25, 23, .04);--shadow-sm: 0 1px 3px rgba(28, 25, 23, .06), 0 1px 2px rgba(28, 25, 23, .03);--shadow: 0 2px 8px rgba(28, 25, 23, .07);--shadow-lg: 0 16px 40px rgba(28, 25, 23, .16);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;--font-mono: "SFMono-Regular", "JetBrains Mono", Consolas, "Liberation Mono", Menlo, monospace}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:var(--font);font-size:var(--fs-base);line-height:1.55;color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--c-brand-700);text-decoration:none}a:hover{color:var(--c-brand-800)}h1,h2,h3,h4,p{margin:0}button{font-family:inherit;font-size:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}table{border-collapse:collapse;width:100%}:focus-visible{outline:2px solid var(--c-brand-500);outline-offset:1px}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:var(--c-line-strong);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--c-text-weak)}::-webkit-scrollbar-track{background:transparent}.muted{color:var(--c-text-mid)}.weak{color:var(--c-text-weak)}.mono{font-family:var(--font-mono);font-size:var(--fs-sm)}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;letter-spacing:-.01em}.price{color:var(--c-price);font-weight:600;font-variant-numeric:tabular-nums}.text-danger{color:var(--c-danger)}.text-success{color:var(--c-success)}.text-warning{color:var(--c-warning)}.text-brand{color:var(--c-brand-700)}.nowrap{white-space:nowrap}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card{background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--radius);box-shadow:var(--shadow-xs);padding:var(--sp-4) var(--sp-5)}.card+.card{margin-top:var(--sp-3)}.card-title{font-size:var(--fs-md);font-weight:600;letter-spacing:-.01em;margin-bottom:var(--sp-3);display:flex;align-items:center;gap:var(--sp-2)}.card-title:before{content:"";width:3px;height:13px;border-radius:2px;background:var(--c-brand-500);flex:0 0 3px}.card-title.plain:before{display:none}.stat{background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--radius);padding:var(--sp-4);box-shadow:var(--shadow-xs);position:relative;overflow:hidden}.stat-label{font-size:var(--fs-sm);color:var(--c-text-mid);display:flex;align-items:center;gap:6px}.stat-value{font-size:var(--fs-2xl);font-weight:600;letter-spacing:-.03em;line-height:1.15;margin-top:6px;font-variant-numeric:tabular-nums}.stat-sub{font-size:var(--fs-sm);color:var(--c-text-weak);margin-top:4px}.stat.accent{background:var(--c-brand-250);border-color:var(--c-line-brand)}.stat.accent .stat-label{color:var(--c-on-brand);font-weight:500}.stat.accent .stat-sub{color:var(--c-on-brand);opacity:.82}.block-accent{background:var(--c-brand-250);border:1px solid var(--c-line-brand);border-radius:var(--radius);padding:var(--sp-4) var(--sp-5)}.block-accent h4,.block-accent .ba-title{font-size:var(--fs-base);font-weight:600;color:var(--c-ink)}.block-accent p,.block-accent .ba-text{font-size:var(--fs-sm);color:var(--c-on-brand);line-height:1.7}.fill-soft{background:var(--c-brand-150)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:33px;padding:0 14px;border:1px solid var(--c-line-strong);border-radius:var(--radius-sm);background:var(--c-white);color:var(--c-text-sub);font-weight:500;transition:background .14s,border-color .14s,color .14s,box-shadow .14s;white-space:nowrap}.btn:hover:not(:disabled){border-color:var(--c-brand-400);color:var(--c-brand-700);background:var(--c-brand-50)}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:var(--c-brand-500);border-color:var(--c-brand-500);color:var(--c-ink);font-weight:600;box-shadow:0 1px 2px #f0b42966}.btn-primary:hover:not(:disabled){background:var(--c-brand-400);border-color:var(--c-brand-400);color:var(--c-ink)}.btn-primary:active:not(:disabled){background:var(--c-brand-600);border-color:var(--c-brand-600)}.btn-danger{background:var(--c-danger);border-color:var(--c-danger);color:#fff;font-weight:600}.btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c;color:#fff}.btn-ghost{border-color:transparent;background:transparent;color:var(--c-brand-700);padding:0 8px}.btn-ghost:hover:not(:disabled){background:var(--c-brand-a10);border-color:transparent;color:var(--c-brand-800)}.btn-dark{background:var(--c-ink);border-color:var(--c-ink);color:#fff}.btn-dark:hover:not(:disabled){background:var(--c-ink-2);border-color:var(--c-ink-2);color:#fff}.btn-sm{height:27px;padding:0 10px;font-size:var(--fs-sm)}.btn-block{width:100%}.field{margin-bottom:var(--sp-4)}.field-label{display:block;margin-bottom:6px;color:var(--c-text-sub);font-size:var(--fs-sm);font-weight:500}.field-label .req{color:var(--c-danger);margin-left:2px}.field-hint{margin-top:5px;font-size:var(--fs-xs);color:var(--c-text-weak);line-height:1.5}.input,.select,.textarea{width:100%;height:35px;padding:0 11px;border:1px solid var(--c-line-strong);border-radius:var(--radius-sm);background:var(--c-white);outline:none;transition:border-color .14s,box-shadow .14s}.input::placeholder,.textarea::placeholder{color:var(--c-text-weak)}.textarea{height:auto;min-height:78px;padding:8px 11px;resize:vertical;line-height:1.6}.input:focus,.select:focus,.textarea:focus{border-color:var(--c-brand-400);box-shadow:0 0 0 3px var(--c-brand-ring)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--c-fill);color:var(--c-disabled-text)}.input-error{border-color:var(--c-danger)}.input-search{background:var(--c-brand-150);border-color:var(--c-line-brand)}.input-search:focus{background:var(--c-white);border-color:var(--c-brand-400)}.thumb-soft{background:var(--c-brand-150)}.table-wrap{overflow-x:auto}.table{font-size:var(--fs-base)}.table th{text-align:left;font-weight:600;font-size:var(--fs-sm);color:var(--c-on-brand);background:var(--c-brand-150);padding:10px 12px;white-space:nowrap;border-bottom:1px solid var(--c-line);letter-spacing:.02em}.table td{padding:11px 12px;border-bottom:1px solid var(--c-line-soft);vertical-align:middle}.table tbody tr{transition:background .12s}.table tbody tr:hover{background:var(--c-brand-50)}.table tbody tr:last-child td{border-bottom:0}.table-empty{padding:46px 0;text-align:center;color:var(--c-text-weak)}.tag{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:var(--radius-pill);font-size:var(--fs-xs);font-weight:500;line-height:1;white-space:nowrap}.tag-brand{background:var(--c-brand-100);color:var(--c-brand-800)}.tag-warning{background:var(--c-warning-bg);color:var(--c-warning)}.tag-danger{background:var(--c-danger-bg);color:var(--c-danger)}.tag-info{background:var(--c-info-bg);color:var(--c-info)}.tag-success{background:var(--c-success-bg);color:var(--c-success)}.tag-grey{background:var(--c-fill-3);color:var(--c-text-sub)}.dot{width:6px;height:6px;border-radius:50%;flex:0 0 6px;display:inline-block;background:currentColor}.alert{display:flex;gap:10px;padding:11px 13px;border-radius:var(--radius-sm);font-size:var(--fs-base);line-height:1.6;border:1px solid transparent}.alert-error{background:var(--c-danger-bg);border-color:#dc26263d;color:#9f1d1d}.alert-warning{background:var(--c-warning-bg);border-color:#b453093d;color:#8a3f07}.alert-info{background:var(--c-info-bg);border-color:#2563eb38;color:#1d4ed8}.alert-brand{background:var(--c-brand-50);border-color:var(--c-brand-200);color:var(--c-brand-800)}.spinner{width:15px;height:15px;border:2px solid var(--c-line-strong);border-top-color:var(--c-brand-500);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.loading-block{padding:44px 0;text-align:center;color:var(--c-text-mid);font-size:var(--fs-base)}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--c-mask);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal{background:var(--c-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:520px;max-height:88vh;display:flex;flex-direction:column;overflow:hidden}.modal-lg{max-width:780px}.modal-head{padding:15px 20px;border-bottom:1px solid var(--c-line);font-weight:600;font-size:var(--fs-md);display:flex;justify-content:space-between;align-items:center;letter-spacing:-.01em}.modal-close{border:0;background:transparent;font-size:20px;line-height:1;color:var(--c-text-mid);padding:0 4px;border-radius:var(--radius-xs)}.modal-close:hover{background:var(--c-fill);color:var(--c-text)}.modal-body{padding:18px 20px;overflow-y:auto}.modal-foot{padding:12px 20px;border-top:1px solid var(--c-line);background:var(--c-fill-2);display:flex;justify-content:flex-end;gap:10px}.kv{display:grid;grid-template-columns:96px 1fr;gap:9px 12px;font-size:var(--fs-base)}.kv dt{color:var(--c-text-mid)}.kv dd{margin:0;word-break:break-all}.pager{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);padding-top:var(--sp-3);font-size:var(--fs-base);color:var(--c-text-sub);flex-wrap:wrap}.filters{display:flex;align-items:flex-end;gap:var(--sp-3);flex-wrap:wrap}.filters .field{margin-bottom:0}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-3)}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.empty{padding:52px 20px;text-align:center;color:var(--c-text-weak);font-size:var(--fs-base)}.hr{height:1px;background:var(--c-line);border:0;margin:var(--sp-4) 0}
