:root{--color-primary:#644cf0;--color-primary-dark:#4f3ec9;--color-primary-light:#7b68f5;--color-accent:#f4da4c;--color-accent-hover:#e8cf40;--color-bg:#f4f5f9;--color-bg-alt:#ededf3;--color-bg-card:#fff;--color-text:#09061b;--color-text-secondary:#5a5a68;--color-text-muted:#a0a0a8;--color-border:#e8e8ef;--color-border-light:#f1f2f6;--color-success:#22c55e;--color-danger:#dc2626;--color-warning:#ed9a51;--color-info:#8b7af5;--color-bg-deep:#09061b;--color-primary-hover:#7b68f5;--color-primary-pressed:#4f3ec9;--color-success-hover:#16a34a;--color-success-pressed:#15803d;--color-warning-hover:#d4842e;--color-warning-pressed:#b86e1a;--color-info-hover:#a196f8;--color-info-pressed:#6c5ce0;--surface-success:#dcfce7;--surface-success-light:#f0fdf4;--surface-accent:#fef5d0;--surface-accent-light:#fffbeb;--surface-danger:#fee2e2;--surface-danger-light:#fef2f2;--surface-primary:#ede9fe;--surface-primary-light:#f5f3ff;--surface-info:#e8e4fd;--surface-info-light:#f5f3ff;--surface-stat-yellow:#faf2d0;--surface-stat-purple:#ebe7fd;--surface-stat-orange:#fde9d6;--surface-stat-ink:#e8e8f0;--surface-ink-soft:#12102a;--surface-page-gradient:radial-gradient(ellipse 900px 600px at 12% 18%, #644cf014, transparent), radial-gradient(ellipse 700px 500px at 88% 80%, #f4da4c0f, transparent), linear-gradient(155deg, #eceaf2 0%, #f4f5f9 40%, #f4f5f9 60%, #f0eee8 100%);--surface-header-gradient:linear-gradient(180deg, #09061b 0%, #12102a 100%);--macaron-mint:var(--color-accent);--macaron-mint-light:var(--surface-stat-yellow);--macaron-yellow:var(--color-accent);--macaron-yellow-light:var(--surface-stat-yellow);--macaron-coral:var(--color-warning);--macaron-coral-light:var(--surface-stat-orange);--macaron-purple:var(--color-primary);--macaron-purple-light:var(--surface-stat-purple);--macaron-blue:var(--color-info);--macaron-blue-light:var(--surface-stat-ink);--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--radius-pill:999px;--shadow-sm:0 2px 8px #09061b0a;--shadow-md:0 4px 16px #09061b0f;--shadow-lg:0 18px 46px #09061b17;--shadow-xl:0 32px 64px #09061b1f;--shadow-stage:0 30px 80px #09061b1a, 0 10px 30px #09061b0d, 0 0 0 1px #00000008;--shadow-card:0 2px 8px #09061b08;--shadow-card-hover:0 4px 16px #09061b0d;--shadow-stat-yellow:0 6px 20px #f4da4c2e;--shadow-stat-yellow-hover:0 12px 32px #f4da4c47;--shadow-stat-purple:0 6px 20px #644cf026;--shadow-stat-purple-hover:0 12px 32px #644cf038;--shadow-stat-orange:0 6px 20px #ed9a5126;--shadow-stat-orange-hover:0 12px 32px #ed9a5138;--shadow-stat-ink:0 6px 20px #09061b1a;--shadow-stat-ink-hover:0 12px 32px #09061b29;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", sans-serif;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--transition:transform .2s cubic-bezier(.4, 0, .2, 1), box-shadow .2s cubic-bezier(.4, 0, .2, 1), background-color .15s ease, border-color .15s ease, color .15s ease;--z-sidebar:90;--z-header:100;--z-overlay:200;--z-modal:300;--fs-2xs:11px;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-base:16px;--fs-lg:18px;--fs-xl:20px;--fs-2xl:24px;--fs-3xl:32px;--fs-display:48px;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-heavy:800;--lh-tight:1.05;--lh-snug:1.3;--lh-normal:1.5;--lh-relaxed:1.6;--r-xs:4px;--r-sm:8px;--r-md:12px;--r-lg:18px;--r-full:999px;--text-primary:#09061b;--text-secondary:#5a5a68;--text-tertiary:#a0a0a8;--text-disabled:#c0c0c8;--text-placeholder:#c0c0c8;--text-inverse:#fff;--color-success-bg-subtle:#f0fdf4;--color-success-bg:#dcfce7;--color-success-border:#4ade80;--color-success-text:#166534;--color-danger-bg-subtle:#fef2f2;--color-danger-bg:#fee2e2;--color-danger-border:#fca5a5;--color-danger-text:#b91c1c;--color-warning-bg-subtle:#fffbeb;--color-warning-bg:#fef5d0;--color-warning-border:#f4da4c;--color-warning-text:#9a5e20;--color-info-bg-subtle:#f5f3ff;--color-info-bg:#ede9fe;--color-info-border:#8b7af5;--color-info-text:#4f3ec9;--color-table-header:#fff;--color-table-hover:#fafafa;--color-sidebar-bg:#09061b;--color-sidebar-active:#f4da4c;--primary-color:var(--color-primary);--primary-color-hover:var(--color-primary-hover);--border-color:var(--color-border);--body-color:var(--color-bg);--card-color:var(--color-bg-card);--text-color-1:var(--color-text);--text-color-2:var(--color-text-secondary);--text-color-3:var(--color-text-muted);--success-color:var(--color-success);--warning-color:var(--color-warning);--font-serif-display:"Playfair Display", "Noto Serif SC", "Songti SC", Georgia, serif}[data-theme=dark]{--p-bg-base:#09061b;--p-surface-1:#121026;--p-surface-2:#181433;--p-surface-3:#211b42;--p-surface-raised:#272050;--p-border:#ffffff14;--p-text-1:#f6f3ff;--p-text-2:#c9c2dd;--p-text-3:#9b93b5;--p-text-disabled:#6f6887;--p-color-accent:#f4da4c;--p-color-accent-hover:#e8cf40;--p-color-accent-pressed:#d4b830;--p-color-accent-surface:#f4da4c1f;--p-color-primary:#644cf0;--p-color-primary-surface:#644cf026;--p-color-success:#22c55e;--p-color-success-surface:#22c55e1f;--p-color-warning:#ed9a51;--p-color-warning-surface:#ed9a511f;--p-color-error:#dc2626;--p-color-error-surface:#dc26261f;--p-card-bg:var(--p-surface-2);--p-card-radius:12px;--p-card-padding:16px;--p-card-border:1px solid var(--p-border);--p-card-shadow:none;--p-naive-body:#09061b;--p-naive-card:#181433;--p-naive-modal:#211b42}[data-theme=light]{--p-bg-base:#f7f7fb;--p-surface-1:#fff;--p-surface-2:#fff;--p-surface-3:#f0eefa;--p-surface-raised:#fff;--p-border:#e5e1f2;--p-text-1:#17142a;--p-text-2:#5f587a;--p-text-3:#8e87a5;--p-text-disabled:#b5b0c7;--p-color-accent:#644cf0;--p-color-accent-hover:#5340d4;--p-color-accent-pressed:#4535b8;--p-color-accent-surface:#644cf014;--p-color-primary:#644cf0;--p-color-primary-surface:#644cf014;--p-color-success:#16a34a;--p-color-success-surface:#16a34a14;--p-color-warning:#d97706;--p-color-warning-surface:#d9770614;--p-color-error:#dc2626;--p-color-error-surface:#dc262614;--p-card-bg:var(--p-surface-2);--p-card-radius:12px;--p-card-padding:16px;--p-card-border:1px solid var(--p-border);--p-card-shadow:0 2px 8px #09061b0a;--p-naive-body:#f7f7fb;--p-naive-card:#fff;--p-naive-modal:#fff}[data-theme]{--p-font:-apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;--p-fs-hero:32px;--p-lh-hero:1.1;--p-fs-page-title:22px;--p-lh-page-title:30px;--p-fs-section:18px;--p-lh-section:26px;--p-fs-card-title:16px;--p-lh-card-title:24px;--p-fs-body:15px;--p-lh-body:24px;--p-fs-label:13px;--p-lh-label:18px;--p-fs-tab:11px;--p-lh-tab:14px;--p-space-1:4px;--p-space-2:8px;--p-space-3:12px;--p-space-4:16px;--p-space-5:20px;--p-space-6:24px;--p-ease:cubic-bezier(.2, 0, 0, 1);--p-duration-fast:.15s;--p-duration-normal:.22s;--p-duration-slow:.4s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);color:var(--color-text);background:var(--surface-page-gradient);font-size:16px;line-height:var(--lh-relaxed);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-feature-settings:"tnum" 1, "cv02" 1, "cv03" 1, "cv04" 1}a{color:var(--color-primary);text-decoration:none}.page-container{max-width:1280px;padding:var(--space-8) var(--space-8);margin:0 auto}.page-header{margin-bottom:var(--space-8)}.page-title{font-size:var(--fs-3xl);font-weight:var(--fw-heavy);color:var(--color-text);line-height:var(--lh-tight);letter-spacing:-.02em;text-wrap:balance;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.page-subtitle{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.08em;font-weight:var(--fw-bold);color:var(--color-text-muted);margin-top:var(--space-2);text-wrap:pretty}.btn-pill{border-radius:var(--radius-pill)!important}.stat-card{border-radius:var(--radius-lg);background:var(--surface-stat-yellow);box-shadow:var(--shadow-stat-yellow);transition:var(--transition);border:none;padding:26px 28px}.stat-card:hover{box-shadow:var(--shadow-stat-yellow-hover)}.stat-card:nth-child(4n+2){background:var(--surface-stat-purple);box-shadow:var(--shadow-stat-purple)}.stat-card:nth-child(4n+2):hover{box-shadow:var(--shadow-stat-purple-hover)}.stat-card:nth-child(4n+3){background:var(--surface-stat-orange);box-shadow:var(--shadow-stat-orange)}.stat-card:nth-child(4n+3):hover{box-shadow:var(--shadow-stat-orange-hover)}.stat-card:nth-child(4n+4){background:var(--surface-stat-ink);box-shadow:var(--shadow-stat-ink)}.stat-card:nth-child(4n+4):hover{box-shadow:var(--shadow-stat-ink-hover)}.stat-card .stat-icon{width:46px;height:46px;margin-bottom:var(--space-4);border-radius:14px;justify-content:center;align-items:center;display:flex;box-shadow:inset 0 0 0 1px #ffffff59}.stat-card .stat-value{font-size:34px;font-weight:var(--fw-bold);color:var(--color-text);letter-spacing:0;font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;line-height:1;overflow:hidden}.stat-suffix{margin-left:var(--space-1);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--color-text-muted)}.stat-card .stat-label{font-size:var(--fs-sm);font-weight:var(--fw-medium);text-transform:none;letter-spacing:0;color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;margin-bottom:6px;overflow:hidden}.tag-mint{background:var(--surface-success);color:#166534}.tag-yellow{background:var(--surface-accent);color:#9a5e20}.tag-coral{background:var(--surface-danger);color:var(--color-danger-text)}.tag-purple{background:var(--surface-primary);color:#4f3ec9}.tag-blue{background:var(--surface-info);color:#4f3ec9}.tabular-nums{font-variant-numeric:tabular-nums}.chart-height-sm{height:260px}.chart-height-md{height:300px}.chart-height-lg{height:380px}.chart-height-xl{height:440px}@media (width<=768px){.chart-height-sm{height:220px}.chart-height-md{height:240px}.chart-height-lg{height:300px}.chart-height-xl{height:340px}}@keyframes floatSlow{0%,to{transform:translate(0)}33%{transform:translate(15px,-20px)}66%{transform:translate(-10px,15px)}}.text-uppercase{text-transform:uppercase;letter-spacing:.08em}.text-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);font-size:13px;font-weight:700}.text-kpi{letter-spacing:0;color:var(--color-text);font-size:34px;font-weight:700;line-height:1}.text-kpi-label{text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);font-size:12px;font-weight:700}.empty-state{text-align:center;color:var(--color-text-muted);padding:48px 24px}.empty-state__icon{opacity:.4;margin-bottom:16px;font-size:48px}.empty-state__title{color:var(--color-text);margin-bottom:8px;font-size:18px;font-weight:700}.empty-state__text{color:var(--color-text-muted);max-width:360px;margin:0 auto;font-size:15px}.n-card{box-shadow:var(--shadow-card);transition:box-shadow .2s,transform .2s,border-color .2s;border-radius:var(--radius-lg)!important;border:1px solid var(--color-border-light)!important}.n-card:hover{box-shadow:var(--shadow-card-hover)}.n-card>.n-card-header{padding-bottom:10px}.n-card .n-card-header__main{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--color-text);letter-spacing:-.02em}.n-button{letter-spacing:0;font-weight:var(--fw-bold)!important;transition:var(--transition)!important;border-radius:14px!important}.n-button:not(.n-button--text-type):not(.n-button--disabled){box-shadow:0 2px 8px #09061b0f}.n-button:not(.n-button--text-type):not(.n-button--disabled):hover{transform:translateY(-1px)}.n-button--primary-type:not(.n-button--disabled){box-shadow:0 4px 14px #644cf033}.n-button--primary-type:not(.n-button--disabled):hover{box-shadow:0 6px 18px #644cf04d}.n-button--warning-type:not(.n-button--disabled){box-shadow:0 4px 14px #ed9a5133}.n-button--warning-type:not(.n-button--disabled):hover{box-shadow:0 6px 18px #ed9a514d}.n-tag{font-weight:var(--fw-semibold);border-radius:var(--radius-pill)!important}.n-data-table{overflow:hidden;border-radius:var(--radius-lg)!important}.n-data-table-th{text-transform:uppercase;letter-spacing:.04em;font-size:13px!important;font-weight:var(--fw-semibold)!important;color:var(--color-text-muted)!important;background:var(--color-bg-card)!important;border-bottom:2px solid var(--color-border-light)!important}.n-data-table-td{color:var(--color-text-secondary)!important;border-bottom:1px solid var(--color-bg)!important;padding:14px 12px!important}.n-data-table-tr:hover .n-data-table-td{background:#fafafa!important}table{border-collapse:collapse;width:100%;font-size:15px}thead th{text-align:left;font-size:13px;font-weight:var(--fw-semibold);color:var(--color-text-muted);border-bottom:2px solid var(--color-border-light);text-transform:uppercase;letter-spacing:.04em;padding:12px 14px}tbody td{border-bottom:1px solid var(--color-bg);color:var(--color-text-secondary);padding:14px}tbody tr:hover{background:#fafafa}.app-main .stat-delta{color:var(--color-primary);margin-top:8px;font-size:13px;font-weight:600}.app-main .stat-delta.warn{color:var(--color-warning)}.app-main .toggle{border-radius:var(--radius-pill);background:var(--color-bg);gap:2px;padding:3px;display:inline-flex}.app-main .toggle__item{border-radius:var(--radius-pill);color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;padding:7px 18px;font-family:inherit;font-size:14px;font-weight:600;transition:color .15s,background-color .15s,box-shadow .15s}.app-main .toggle__item.active{background:var(--color-bg-deep);color:var(--color-accent);box-shadow:0 2px 6px #09061b26}.app-main .prog-track{background:var(--color-bg);border-radius:var(--radius-pill);height:7px;overflow:hidden}.app-main .prog-fill{border-radius:inherit;height:100%}.app-main .n-progress .n-progress-graph-line-rail{border-radius:var(--radius-pill);background:var(--color-bg);height:7px}.app-main .n-progress .n-progress-graph-line-fill{border-radius:var(--radius-pill)}.app-main .prog-fill--yellow{background:linear-gradient(90deg,#f8d850,#f4da4c)}.app-main .prog-fill--purple{background:linear-gradient(90deg,#6850f8,#644cf0)}.app-main .prog-fill--orange{background:linear-gradient(90deg,#f09c50,#ed9a51)}.app-main .entry{border-radius:var(--radius-lg);cursor:pointer;border:none;padding:24px;text-decoration:none;transition:box-shadow .3s;display:block;position:relative;overflow:hidden}.app-main .entry:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.app-main .entry:after{content:"";opacity:.1;border-radius:50%;width:100px;height:100px;position:absolute;bottom:-30px;right:-30px}.app-main .entry--dark{color:#fff;background:linear-gradient(145deg,#12102a,#09061b);box-shadow:0 6px 20px #09061b26}.app-main .entry--dark:hover{box-shadow:0 12px 30px #09061b40}.app-main .entry--dark:after{background:#f4da4c}.app-main .entry--yellow{color:#09061b;background:linear-gradient(145deg,#f8d850,#f4da4c);box-shadow:0 6px 20px #f4da4c33}.app-main .entry--yellow:hover{box-shadow:0 12px 30px #f4da4c4d}.app-main .entry--yellow:after{background:#fff}.app-main .entry--purple{color:#fff;background:linear-gradient(145deg,#7058f8,#644cf0);box-shadow:0 6px 20px #644cf033}.app-main .entry--purple:hover{box-shadow:0 12px 30px #644cf04d}.app-main .entry--purple:after{background:#f4da4c}.app-main .entry__icon{border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;margin-bottom:14px;display:flex}.app-main .entry__title{margin-bottom:4px;font-size:19px;font-weight:700;line-height:1.3}.app-main .entry__sub{opacity:.55;margin-bottom:16px;font-size:14px}.app-main .entry__bottom{justify-content:space-between;align-items:center;display:flex}.app-main .entry__date{opacity:.45;align-items:center;gap:4px;font-size:13px;display:flex}.app-main .entry__btn{border-radius:var(--radius-pill);cursor:inherit;border:none;justify-content:center;align-items:center;padding:8px 20px;font-family:inherit;font-size:14px;font-weight:700;transition:box-shadow .2s;display:inline-flex}.app-main .entry__btn--dark{color:#f4da4c;background:#09061b;box-shadow:0 2px 8px #09061b33}.app-main .entry__btn--dark:hover{box-shadow:0 4px 14px #09061b4d}.app-main .entry__btn--light{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fff3}.app-main .entry__btn--light:hover{background:#ffffff4d}.app-main .entry__btn--yellow{color:#09061b;background:#f4da4c;box-shadow:0 2px 8px #f4da4c4d}.app-main .entry__btn--yellow:hover{box-shadow:0 4px 14px #f4da4c66}.app-main .friend{align-items:center;gap:12px;padding:11px 0;display:flex}.app-main .friend+.friend{border-top:1px solid var(--color-border-light)}.app-main .friend__avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:14px;font-weight:700;display:flex}.app-main .friend__avatar--yellow{color:#09061b;background:#f4da4c}.app-main .friend__avatar--purple{background:#644cf0}.app-main .friend__avatar--orange{background:#ed9a51}.app-main .friend__name{color:var(--color-text-secondary);flex:1;font-size:15px;font-weight:500}.app-main .friend__score{color:var(--color-text);font-variant-numeric:tabular-nums;font-size:26px;font-weight:800}.app-main .friend__unit{color:var(--color-text-muted);font-size:15px;font-weight:500}.app-main .tag-x{background:var(--color-bg);color:var(--color-text-muted)}.app-main .divider{background:var(--color-border-light);height:1px;margin:28px 0}.app-main .page-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.app-main .filter-bar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.app-main .filter-bar .n-input,.app-main .filter-bar .n-select{min-height:40px}.app-main .stats-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:24px;display:grid}.app-main .stats-row .stat-card{min-height:auto;padding:20px 22px}.app-main .card-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.app-main .action-buttons{flex-wrap:wrap;gap:10px;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
