.route-fade-enter-active{transition:opacity .2s var(--ease-out)}.route-fade-leave-active{transition:opacity .12s ease-in}.route-fade-enter-from,.route-fade-leave-to{opacity:0}@media (prefers-reduced-motion: reduce){.route-fade-enter-active,.route-fade-leave-active{transition:none}}:root{--color-ink: #1a1a2e;--color-ink-light: #2d2d44;--color-ink-lighter: #3d3d5c;--color-paper: #faf8f2;--color-paper-dark: #f0ece0;--color-paper-darker: #e8e4d4;--color-amber: #c8963e;--color-amber-light: #d4a84e;--color-vermillion: #c04040;--color-vermillion-light: #d46060;--color-jade: #4a8c6f;--color-jade-light: #5ea080;--color-text-primary: #1a1a2e;--color-text-secondary: #5a5a6e;--color-text-tertiary: #8a8a9e;--color-text-inverse: #faf8f2;--color-border: #e0dcd0;--color-border-light: #eee9dd;--shadow-sm: 0 1px 2px rgba(26, 26, 46, .05), 0 1px 3px rgba(26, 26, 46, .06);--shadow-md: 0 2px 6px rgba(26, 26, 46, .08), 0 8px 24px rgba(26, 26, 46, .1);--shadow-lg: 0 4px 12px rgba(26, 26, 46, .1), 0 16px 40px rgba(26, 26, 46, .14);--shadow-amber: 0 4px 16px rgba(200, 150, 62, .28);--gradient-page: linear-gradient(180deg, #fdfbf5 0%, #faf8f2 40%, #f4efe3 100%);--gradient-card: linear-gradient(160deg, rgba(255, 255, 255, .9) 0%, rgba(250, 248, 242, .55) 100%);--font-display: "Noto Serif SC", "Source Han Serif SC", "SimSun", serif;--font-body: "Noto Sans SC", "Source Han Sans SC", "Microsoft YaHei", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 80px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 18px;--radius-xl: 24px;--radius-pill: 999px;--ease-out: cubic-bezier(.22, .61, .36, 1);--duration-fast: .18s;--duration-base: .28s}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--color-text-primary);background-color:var(--color-paper);background-image:var(--gradient-page);background-attachment:fixed;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--color-ink);line-height:1.3;font-weight:700;letter-spacing:.01em}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}p{line-height:1.8}a{color:var(--color-ink);text-decoration:none;transition:color .2s}a:hover{color:var(--color-amber)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-paper-dark)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}::selection{background:#c8963e40;color:var(--color-text-primary)}.page-enter-active,.page-leave-active{transition:opacity .24s ease,transform .24s ease}.page-enter-from{opacity:0;transform:translateY(8px)}.page-leave-to{opacity:0;transform:translateY(-4px)}:root{--td-brand-color: var(--color-ink);--td-brand-color-hover: var(--color-ink-light);--td-brand-color-active: var(--color-ink-lighter);--td-warning-color: var(--color-amber);--td-error-color: var(--color-vermillion);--td-success-color: var(--color-jade);--td-bg-color-page: var(--color-paper);--td-bg-color-container: #ffffff;--td-font-family: var(--font-body)}.t-button--variant-base.t-button--theme-primary{background-color:var(--color-ink)!important;border-color:var(--color-ink)!important;background-image:linear-gradient(180deg,#ffffff14,#fff0)!important;box-shadow:0 1px 2px #1a1a2e33,0 2px 6px #1a1a2e1f;transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out),background-color .2s,filter .2s}.t-button--variant-base.t-button--theme-primary:hover{background-color:var(--color-ink-light)!important;transform:translateY(-1px);box-shadow:0 2px 4px #1a1a2e33,0 8px 20px #1a1a2e29}.t-button--variant-base.t-button--theme-primary:active{transform:translateY(0);box-shadow:0 1px 2px #1a1a2e2e}.t-button .t-button__text{display:inline-flex!important;align-items:center!important;gap:6px}.t-button .t-icon{vertical-align:middle;flex-shrink:0}.t-button--variant-outline{border-color:var(--color-border)!important;color:var(--color-text-secondary)!important}.t-button--variant-outline:hover{border-color:var(--color-ink)!important;color:var(--color-ink)!important;background:var(--color-paper)!important}.t-card{border-radius:var(--radius-md)!important;box-shadow:var(--shadow-sm)!important;border:1px solid var(--color-border-light)!important;background-image:var(--gradient-card)!important;transition:box-shadow .28s var(--ease-out),transform .28s var(--ease-out),border-color .28s}.t-card:hover{box-shadow:var(--shadow-md)!important;border-color:var(--color-border)!important;transform:translateY(-2px)}.t-form__item{margin-bottom:20px}.t-input,.t-textarea__inner{border-radius:var(--radius-sm)!important}.t-input:focus-within,.t-textarea:focus-within .t-textarea__inner{border-color:var(--color-ink)!important;box-shadow:0 0 0 2px #1a1a2e14!important}.t-tag{font-weight:500;border-radius:var(--radius-pill);padding-left:10px;padding-right:10px}.t-dialog{border-radius:var(--radius-lg)!important}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg,var(--color-paper-dark) 0%,var(--color-paper-darker) 50%,var(--color-paper-dark) 100%);background-size:800px 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}.back-to-top{position:fixed;bottom:32px;right:32px;width:44px;height:44px;border-radius:50%;background:var(--color-ink);color:var(--color-paper);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);opacity:0;transform:translateY(20px);transition:all .3s ease;z-index:999;pointer-events:none}.back-to-top.visible{opacity:1;transform:translateY(0);pointer-events:auto}.back-to-top:hover{background:var(--color-amber);transform:translateY(-2px);box-shadow:var(--shadow-lg)}:focus-visible{outline:2px solid var(--color-amber);outline-offset:2px}a{transition:color .18s ease}.t-table__body tr:hover{background:#c8963e0f}@media (max-width: 640px){.t-button{min-height:40px}}.nov-card{background:linear-gradient(180deg,#ffffff 0%,var(--color-paper) 100%);border:1px solid var(--color-border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out)}.nov-card--interactive{cursor:pointer}.nov-card--interactive:hover,.nov-card--interactive:focus-within{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--color-border)}.nov-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.nov-section-head h2{font-family:var(--font-display);font-size:1.5rem;color:var(--color-ink);position:relative;padding-bottom:8px}.nov-section-head h2:after{content:"";position:absolute;left:0;bottom:0;width:32px;height:3px;border-radius:2px;background:var(--color-amber)}.nov-pill{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:8px 16px;border-radius:var(--radius-pill);border:1px solid var(--color-border-light);background:#fff;color:var(--color-text-secondary);font-size:14px;cursor:pointer;transition:color var(--duration-fast),border-color var(--duration-fast),background var(--duration-fast)}.nov-pill:hover,.nov-pill:focus-visible{border-color:var(--color-amber);color:var(--color-ink);background:#fff;outline:none}.nov-pill.active{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper)}.nov-kpi{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5)}.nov-kpi__head{display:flex;align-items:center;justify-content:space-between;color:var(--color-text-tertiary);font-size:13px}.nov-kpi__value{font-family:var(--font-display);font-size:2rem;line-height:1.1;font-weight:700;color:var(--color-ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.nov-kpi__meta{font-size:13px;color:var(--color-text-tertiary);display:flex;align-items:center;gap:6px}.nov-progress{height:6px;border-radius:var(--radius-pill);background:var(--color-paper-dark);overflow:hidden}.nov-progress__bar{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--color-amber),var(--color-amber-light));transition:width var(--duration-base) var(--ease-out)}.nov-lift{transition:transform var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out)}.nov-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.nov-sticky-shadow{transition:box-shadow var(--duration-base) var(--ease-out)}.nov-sticky-shadow.is-scrolled{box-shadow:var(--shadow-sm)}.nov-cover-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-ink-light),var(--color-ink-lighter));color:var(--color-amber);font-family:var(--font-display)}.nov-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-8) var(--space-5);text-align:center;color:var(--color-text-tertiary)}.nov-empty__icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:var(--color-paper-dark);border:1px dashed var(--color-border);color:var(--color-amber);font-family:var(--font-display);font-size:26px;margin-bottom:var(--space-2)}.nov-empty__title{font-family:var(--font-display);font-size:16px;color:var(--color-text-secondary)}.nov-empty__desc{font-size:13px;line-height:1.7;max-width:320px}.nov-skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--color-paper-dark) 25%,rgba(255,255,255,.65) 37%,var(--color-paper-dark) 63%);background-size:200% 100%;animation:nov-shimmer 1.4s ease-in-out infinite}.nov-skeleton--text{height:14px}.nov-skeleton--block{width:100%}@keyframes nov-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}:where(a,button,[tabindex],input,textarea,select,.nov-pill,.nov-card--interactive):focus-visible{outline:2px solid var(--color-amber);outline-offset:2px;border-radius:var(--radius-sm)}@media (prefers-reduced-motion: reduce){.nov-skeleton{animation:none}}
