.app{display:flex;flex-direction:column;min-height:100vh}.app-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-5);background:var(--c-card);border-bottom:1px solid var(--c-border);position:sticky;top:0;z-index:10}.brand{font-weight:700;font-size:18px;color:var(--c-brand);white-space:nowrap}.nav{display:flex;gap:var(--space-5)}.nav-link{color:var(--c-ink-2);font-size:14px;transition:color var(--dur-fast) var(--ease-out)}.nav-link:hover{color:var(--c-brand)}.app-main{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:var(--space-5) var(--space-4)}.app-loading{padding:var(--space-6) 0;text-align:center;color:var(--c-ink-2)}.not-found{padding:var(--space-6) 0;text-align:center}.not-found h1{font-size:24px;margin-bottom:var(--space-3)}.not-found p{color:var(--c-ink-2)}.not-found-link{display:inline-block;margin-top:var(--space-4);color:var(--c-brand);font-weight:600}@media (max-width: 640px){.app-header{padding:var(--space-2) var(--space-3);gap:var(--space-2)}.nav{gap:var(--space-3)}.brand{font-size:16px}.nav-link{font-size:13px}.app-main{padding:var(--space-4) var(--space-3)}}:root{--c-brand: #E53E3E;--c-brand-strong: #C53030;--c-brand-soft: #FDEDED;--c-ink: #1F2937;--c-ink-2: #6B7280;--c-bg: #F6F6F4;--c-card: #FFFFFF;--c-good: #0E9F6E;--c-warn: #D97706;--c-border: #E5E7EB;--font-display: "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif;--font-body: "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-card: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--shadow-pop: 0 10px 25px rgba(0,0,0,.12);--dur-fast: .15s;--dur-normal: .2s;--ease-out: cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion: reduce){:root{--dur-fast: 0s;--dur-normal: 0s}}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-body);background:var(--c-bg);color:var(--c-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;border:none;background:none}input,select{font:inherit}:focus-visible{outline:2px solid var(--c-brand);outline-offset:2px}.num{font-variant-numeric:tabular-nums}
