.build-hash[data-v-a1b28c46]{position:fixed;right:10px;bottom:8px;font-size:11px;opacity:.55;color:#666;z-index:9999;-webkit-user-select:none;user-select:none;pointer-events:none}:root{--ink-black: #1a1a1a;--ink-gray: #666666;--ink-light: #999999;--paper-white: #f8f6f0;--paper-gray: #edeae2;--seal-red: #c8102e;--seal-red-light: rgba(200, 16, 46, .06);--bamboo: #7c9d96;--gold: #d4af37;--font-title: "Noto Serif SC", "Source Han Serif SC", serif;--font-body: "PingFang SC", -apple-system, "Microsoft YaHei", sans-serif;--font-mono: "SF Mono", "Menlo", "Consolas", monospace;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-xxl: 48px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--shadow-sm: 0 1px 4px rgba(0,0,0,.04);--shadow-md: 0 4px 16px rgba(0,0,0,.06);--shadow-lg: 0 12px 40px rgba(0,0,0,.08);--duration-fast: .14s;--duration-base: .28s;--duration-slow: .5s;--ease: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(0, 0, .2, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-body);background:var(--paper-gray);color:var(--ink-black);line-height:1.65;font-size:14px}#app{min-height:100vh}button{font-family:var(--font-body);cursor:pointer;border:none;outline:none;transition:all var(--duration-base) var(--ease)}button:active{transform:scale(.97)}input,select,textarea{font-family:var(--font-body);outline:none}::selection{background:#c8102e1a;color:var(--ink-black)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000014;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#00000026}.page-title{font-family:var(--font-title);font-size:32px;color:var(--ink-black);letter-spacing:6px;font-weight:300;line-height:1.2}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.page-card{background:var(--paper-white);border-radius:var(--radius-md);padding:28px;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.03)}.btn-primary{display:inline-flex;align-items:center;gap:6px;padding:10px 24px;background:transparent;border:1px solid var(--ink-black);color:var(--ink-black);font-family:var(--font-body);font-size:13px;letter-spacing:2px;cursor:pointer;position:relative;overflow:hidden;transition:color var(--duration-base) var(--ease)}.btn-primary:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--ink-black);transform:scaleX(0);transform-origin:left;transition:transform var(--duration-base) var(--ease-out);z-index:0}.btn-primary:hover:before{transform:scaleX(1)}.btn-primary:hover{color:var(--paper-white)}.btn-primary>*{position:relative;z-index:1}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-primary:disabled:before{display:none}.btn-danger{padding:6px 14px;background:transparent;border:1px solid rgba(200,16,46,.3);color:var(--seal-red);font-size:12px;cursor:pointer;position:relative;overflow:hidden;transition:color var(--duration-base) var(--ease)}.btn-danger:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--seal-red);transform:scaleX(0);transform-origin:left;transition:transform var(--duration-base) var(--ease-out)}.btn-danger:hover:before{transform:scaleX(1)}.btn-danger:hover{color:#fff;border-color:var(--seal-red)}.btn-danger span,.btn-danger:not(:has(span)){position:relative;z-index:1}.btn-secondary{padding:8px 16px;background:#fff;border:1px solid rgba(0,0,0,.1);color:var(--ink-black);font-size:13px;cursor:pointer;border-radius:var(--radius-sm);transition:all var(--duration-fast) var(--ease)}.btn-secondary:hover{border-color:#00000040;box-shadow:var(--shadow-sm)}.input-line{display:block;width:100%;padding:10px 0;background:transparent;border:none;border-bottom:1px solid rgba(0,0,0,.1);font-family:var(--font-body);font-size:14px;color:var(--ink-black);transition:border-color var(--duration-base) var(--ease)}.input-line:focus{outline:none;border-bottom-color:var(--ink-black)}.input-box{display:block;width:100%;padding:10px 14px;background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:14px;color:var(--ink-black);transition:border-color var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease)}.input-box:focus{outline:none;border-color:var(--ink-black);box-shadow:0 0 0 3px #1a1a1a0d}.data-table{width:100%;border-collapse:collapse}.data-table th{padding:10px 14px;text-align:left;font-size:10px;letter-spacing:2px;color:var(--ink-light);font-weight:400;border-bottom:1px solid rgba(0,0,0,.06);text-transform:uppercase}.data-table td{padding:13px 14px;border-bottom:1px solid rgba(0,0,0,.03);font-size:13px;color:var(--ink-black)}.data-table tbody tr{transition:background var(--duration-fast) var(--ease)}.data-table tbody tr:hover{background:#00000004}.state-empty,.state-loading{padding:48px;text-align:center;color:#0003;font-size:13px;letter-spacing:2px}.state-error{padding:24px;color:var(--seal-red);font-size:13px;text-align:center}.tag{display:inline-block;padding:2px 8px;font-size:10px;letter-spacing:1px;border-radius:2px;font-weight:400}.tag-success{background:#2d7a2d14;color:#2d7a2d}.tag-danger{background:#c8102e14;color:var(--seal-red)}.tag-muted{background:#0000000a;color:var(--ink-light)}.tag-gold{background:#d4af371a;color:#a8861c}.pagination{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:28px;padding-top:20px;border-top:1px solid rgba(0,0,0,.04)}.pagination button{padding:6px 16px;border:1px solid rgba(0,0,0,.1);background:#fff;color:var(--ink-black);font-size:12px;cursor:pointer;letter-spacing:1px;transition:all var(--duration-fast) var(--ease)}.pagination button:hover:not(:disabled){border-color:var(--ink-black)}.pagination button:disabled{opacity:.3;cursor:not-allowed}.pagination span{font-family:var(--font-mono);font-size:12px;color:var(--ink-light)}.section-title{font-family:var(--font-title);font-size:14px;color:var(--ink-black);letter-spacing:3px;font-weight:400;margin-bottom:16px}.page-enter-active,.page-leave-active{transition:opacity .18s var(--ease-out),transform .18s var(--ease-out)}.page-enter-from{opacity:0;transform:translateY(10px)}.page-leave-to{opacity:0;transform:translateY(-4px)}
