:root{--brand: #C2410C;--brand-hover: #9A3412;--brand-soft: #FFF1E8;--info: #1D4ED8;--success: #15803D;--warning: #B45309;--danger: #B91C1C;--ai: #6D28D9;--bg: #FAF8F5;--surface: #FFFFFF;--surface-2: #F3EFE9;--border: #E7E2DA;--ink: #292524;--ink-2: #57534E;--ink-3: #A8A29E;--font-body: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji";--font-editor: "Source Han Serif SC", "Noto Serif SC", "Songti SC", "SimSun", serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji";--font-mono: "SF Mono", "JetBrains Mono", Consolas, monospace;--text-display: 28px;--text-h1: 22px;--text-h2: 18px;--text-h3: 16px;--text-body: 15px;--text-body-s: 14px;--text-caption: 13px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-8: 48px;--radius-s: 4px;--radius-m: 8px;--radius-l: 12px;--radius-full: 999px;--shadow-card: 0 1px 2px rgba(41,37,36,.04), 0 2px 8px rgba(41,37,36,.04);--shadow-pop: 0 4px 16px rgba(41,37,36,.1), 0 2px 4px rgba(41,37,36,.06);--ease: cubic-bezier(.4, 0, .2, 1);--duration: .18s;--leaf-1: #DCE9D0;--leaf-2: #A9CC94;--leaf-3: #6FA45F;--leaf-4: #4E8A4C;--leaf-wash: #EDF3E7;--gold: #E9A23B;--gold-soft: #FDF3E0;--trunk: #8A6D4F;--season-spring: rgba(140,180,120,.1);--season-summer: rgba(111,164,95,.14);--season-autumn: rgba(194,65,12,.09);--season-winter: rgba(120,113,108,.1)}[data-theme=dark]{--brand: #EA580C;--bg: #1C1917;--surface: #292524;--surface-2: #44403C;--border: #44403C;--ink: #F5F4F2;--ink-2: #D6D3D1;--ink-3: #78716C}body{font-family:var(--font-body);font-size:var(--text-body);line-height:1.7;color:var(--ink);background:var(--bg);background-image:radial-gradient(1200px 600px at 80% -10%,rgba(194,65,12,.035),transparent 60%),radial-gradient(800px 500px at -10% 110%,rgba(29,78,216,.025),transparent 55%);-webkit-font-smoothing:antialiased}h1,h2,h3{line-height:1.35;margin:0;font-weight:600}h1{font-size:var(--text-h1)}h2{font-size:var(--text-h2)}h3{font-size:var(--text-h3)}a{color:var(--info);text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 16px;font:inherit;font-size:var(--text-body-s);font-weight:500;border-radius:var(--radius-m);border:1px solid transparent;cursor:pointer;transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease);-webkit-user-select:none;user-select:none}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-hover)}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--surface-2)}.btn-ghost{background:transparent;color:var(--ink-2)}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-danger{background:transparent;color:var(--danger)}.btn-danger:hover:not(:disabled){background:#fef2f2}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:var(--text-body-s);color:var(--ink-2);font-weight:500}.input{height:36px;padding:0 12px;font:inherit;font-size:var(--text-body);color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);outline:none;transition:border-color var(--duration) var(--ease),box-shadow var(--duration) var(--ease)}.input::placeholder{color:var(--ink-3)}.input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}textarea.input{height:auto;min-height:72px;padding:8px 12px;resize:vertical}select.input{appearance:auto}.card{background:var(--surface);border-radius:var(--radius-l);box-shadow:var(--shadow-card);padding:20px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot-success{background:var(--success)}.dot-info{background:var(--info);animation:pulse 1.2s var(--ease) infinite}.dot-warn{background:var(--warning)}.dot-muted{background:var(--ink-3)}.dot-danger{background:var(--danger)}@keyframes pulse{50%{opacity:.35}}.num{font-variant-numeric:tabular-nums;font-family:var(--font-body)}.skeleton{border-radius:var(--radius-s);background:linear-gradient(90deg,var(--surface-2) 25%,#EDE9E2 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite}@keyframes shimmer{to{background-position:-200% 0}}.page-enter{animation:pageIn .22s var(--ease) backwards}@keyframes pageIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-body);font-size:var(--text-body);color:var(--ink);background:var(--bg)}.shell{display:flex;height:100vh;overflow:hidden}.sidenav{width:200px;flex-shrink:0;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border)}.sidenav-brand{padding:20px 20px 16px;display:flex;align-items:baseline;gap:8px}.sidenav-logo{font-size:20px;font-weight:700;font-family:var(--font-editor)}.sidenav-logo em{color:var(--brand);font-style:normal}.sidenav-slogan{font-size:11px;color:var(--ink-3)}.sidenav nav{flex:1;padding:8px 12px}.nav-item{position:relative;display:flex;align-items:center;height:38px;padding:0 12px;margin-bottom:2px;border-radius:var(--radius-m);color:var(--ink-2);cursor:pointer}.nav-item:hover{background:var(--surface-2)}.nav-item.active{background:var(--surface-2);color:var(--ink);font-weight:500}.nav-item.active:before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;border-radius:0 2px 2px 0;background:var(--brand)}.sidenav-footer{padding:14px 16px;border-top:1px solid var(--border);font-size:var(--text-caption);color:var(--ink-3)}.main{flex:1;overflow-y:auto;padding:28px 32px}.page{max-width:1100px;margin:0 auto;animation:pageIn .22s var(--ease) both}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{width:380px;padding:40px 36px;background:var(--surface);border-radius:16px;box-shadow:var(--shadow-pop)}.login-brand{text-align:center;margin-bottom:24px}.login-brand .logo{font-size:28px;font-weight:700;font-family:var(--font-editor)}.login-brand .logo em{color:var(--brand);font-style:normal}.login-brand .slogan{margin-top:6px;color:var(--ink-3);font-size:var(--text-body-s)}.login-form{display:flex;flex-direction:column;gap:14px}.form-error{color:var(--danger);font-size:var(--text-body-s)}.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat-value{font-size:26px;font-weight:600}.stat-label{font-size:var(--text-caption);color:var(--ink-3)}.stat-row{display:flex;gap:24px}.stat{flex:1}.num{font-variant-numeric:tabular-nums}.table{width:100%;border-collapse:collapse;font-size:var(--text-body-s)}.table th{text-align:left;padding:12px 14px;background:var(--surface-2);color:var(--ink-2);font-weight:500}.table td{padding:11px 14px;border-top:1px solid var(--border)}.mini-item{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid var(--border)}.mini-item:last-child{border-bottom:none}.mini-title{flex:1}.mini-meta{font-size:var(--text-caption);color:var(--ink-3)}.empty-hint{padding:18px 4px;color:var(--ink-3);font-size:var(--text-body-s);text-align:center}.plan-badge{padding:1px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:600;background:var(--brand-soft);color:var(--brand)}.plan-badge.free{background:var(--surface-2);color:var(--ink-3)}.pager{display:flex;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid var(--border)}
