:root{--color-primary: #1677FF;--color-primary-dark: #3C89FF;--color-primary-bg: rgba(22, 119, 255, .08);--color-rise: #E33229;--color-fall: #00A753;--color-flat: #8E8E93;--color-error: #FF3B30;--color-warning: #FF9500;--color-success: #00A753;--color-bg: #F2F2F7;--color-bg-card: #FFFFFF;--color-bg-elevated: #FFFFFF;--color-text-primary: #1C1C1E;--color-text-secondary: #3C3C43;--color-text-tertiary: #8E8E93;--color-text-quaternary: #C7C7CC;--color-border: #E5E5EA;--color-divider: #F0F0F0;--chart-grid: #F0F0F0;--chart-text: #8E8E93;--chart-line: #1677FF;--chart-rise: #E33229;--chart-fall: #00A753;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .12);--radius-sm: 6px;--radius-md: 12px;--radius-lg: 16px;--radius-full: 9999px;--font-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", sans-serif;--font-mono: "SF Mono", "Menlo", "Consolas", monospace;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--z-tabbar: 100;--z-overlay: 400;--z-modal: 500;--tabbar-height: 49px;--safe-area-bottom: env(safe-area-inset-bottom, 0px)}[data-theme=dark]{--color-bg: #1C1C1E;--color-bg-card: #2C2C2E;--color-bg-elevated: #3A3A3C;--color-text-primary: #FFFFFF;--color-text-secondary: #E5E5EA;--color-text-tertiary: #8E8E93;--color-text-quaternary: #5A5A5E;--color-border: #38383A;--color-divider: #38383A;--chart-grid: #38383A;--chart-text: #8E8E93;--shadow-sm: none;--shadow-md: none;--color-primary-bg: rgba(60, 137, 255, .12)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--color-bg: #1C1C1E;--color-bg-card: #2C2C2E;--color-bg-elevated: #3A3A3C;--color-text-primary: #FFFFFF;--color-text-secondary: #E5E5EA;--color-text-tertiary: #8E8E93;--color-text-quaternary: #5A5A5E;--color-border: #38383A;--color-divider: #38383A;--chart-grid: #38383A;--chart-text: #8E8E93;--shadow-sm: none;--shadow-md: none;--color-primary-bg: rgba(60, 137, 255, .12)}}*{margin:0;padding:0;box-sizing:border-box}html,body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:contain}body{max-width:430px;margin:0 auto;min-height:100vh;position:relative}#app{min-height:100vh;padding-bottom:calc(var(--tabbar-height) + var(--safe-area-bottom) + 16px)}a{color:var(--color-primary);text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}.tabular-nums{font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.page{padding:var(--space-4);animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.page{animation:none}}.page-title{font-size:28px;font-weight:700;margin-bottom:var(--space-4);letter-spacing:-.5px}.section-title{font-size:18px;font-weight:600;margin:var(--space-4) 0 var(--space-2)}.card{background:var(--color-bg-card);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-3);box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}.row{display:flex;align-items:center;justify-content:space-between}.row-left{display:flex;align-items:center;gap:var(--space-2)}.col{display:flex;flex-direction:column;gap:var(--space-1)}.text-rise{color:var(--color-rise)}.text-fall{color:var(--color-fall)}.text-flat{color:var(--color-flat)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.font-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.font-sm{font-size:13px}.font-xs{font-size:11px}.font-lg{font-size:20px}.font-xl{font-size:24px;font-weight:600}.font-bold{font-weight:600}.badge{display:inline-flex;align-items:center;gap:2px;padding:2px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:500}.badge-rise{background:#e332291a;color:var(--color-rise)}.badge-fall{background:#00a7531a;color:var(--color-fall)}.badge-flat{background:#8e8e931a;color:var(--color-flat)}.badge-primary{background:var(--color-primary-bg);color:var(--color-primary)}.risk-banner{background:#ff95001a;color:var(--color-warning);padding:8px var(--space-4);font-size:12px;text-align:center;border-bottom:1px solid rgba(255,149,0,.2)}.skeleton{background:linear-gradient(90deg,var(--color-divider) 25%,var(--color-bg-card) 50%,var(--color-divider) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-line{height:16px;margin-bottom:8px}.skeleton-card{height:80px;border-radius:var(--radius-md);margin-bottom:var(--space-3)}.empty-state,.error-state{text-align:center;padding:var(--space-8) var(--space-4);color:var(--color-text-tertiary)}.empty-state-icon,.error-state-icon{font-size:40px;margin-bottom:var(--space-3)}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:430px;height:calc(var(--tabbar-height) + var(--safe-area-bottom));background:var(--color-bg-card);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--color-border);display:flex;z-index:var(--z-tabbar);padding-bottom:var(--safe-area-bottom)}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--color-text-tertiary);font-size:10px;transition:color .15s}.tab-item.active{color:var(--color-primary)}.tab-icon{width:24px;height:24px}.index-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.index-card{background:var(--color-bg-card);border-radius:var(--radius-md);padding:var(--space-3);border:1px solid var(--color-border)}.index-name{font-size:12px;color:var(--color-text-tertiary)}.index-value{font-size:18px;font-weight:600;font-family:var(--font-mono);margin:2px 0}.index-change{font-size:12px;font-family:var(--font-mono)}.list-item{background:var(--color-bg-card);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-2);border:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.list-item:active{background:var(--color-bg-elevated)}.list-item-left{display:flex;flex-direction:column;gap:2px}.list-item-name{font-size:15px;font-weight:600}.list-item-code{font-size:11px;color:var(--color-text-tertiary);font-family:var(--font-mono)}.list-item-right{text-align:right}.list-item-price{font-size:16px;font-weight:600;font-family:var(--font-mono)}.list-item-change{font-size:12px;font-family:var(--font-mono)}.segmented{display:flex;background:var(--color-divider);border-radius:var(--radius-sm);padding:2px;margin-bottom:var(--space-3)}.segmented-item{flex:1;text-align:center;padding:6px 0;font-size:13px;font-weight:500;color:var(--color-text-secondary);border-radius:5px;transition:all .15s}.segmented-item.active{background:var(--color-bg-card);color:var(--color-primary);box-shadow:var(--shadow-sm)}.news-item{padding:var(--space-3) 0;border-bottom:1px solid var(--color-divider)}.news-title{font-size:15px;font-weight:500;line-height:1.4;margin-bottom:4px}.news-meta{font-size:11px;color:var(--color-text-tertiary);display:flex;gap:var(--space-2)}.market-status{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:13px;background:var(--color-bg-card);border-bottom:1px solid var(--color-border)}.market-dot{width:8px;height:8px;border-radius:50%}.market-dot.open{background:var(--color-rise)}.market-dot.closed{background:var(--color-text-tertiary)}.market-dot.pre{background:var(--color-warning)}.settings-group{background:var(--color-bg-card);border-radius:var(--radius-md);overflow:hidden;margin-bottom:var(--space-3);border:1px solid var(--color-border)}.settings-item{padding:var(--space-4);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--color-divider)}.settings-item:last-child{border-bottom:none}.settings-label{font-size:15px}.settings-value{font-size:14px;color:var(--color-text-tertiary)}.toggle{width:51px;height:31px;border-radius:var(--radius-full);background:var(--color-text-quaternary);position:relative;transition:background .15s}.toggle.on{background:var(--color-primary)}.toggle-knob{position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;transition:transform .15s}.toggle.on .toggle-knob{transform:translate(20px)}.update-btn{border:1px solid var(--color-primary);color:var(--color-primary);border-radius:var(--radius-sm);padding:6px 16px;font-size:13px;font-weight:500;min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center;transition:opacity .15s}.update-btn:active{opacity:.7}.update-btn.solid{background:var(--color-primary);color:#fff}.update-btn.disabled{opacity:.5;pointer-events:none}.changelog-item{border-bottom:1px solid var(--color-divider)}.changelog-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) 0;cursor:pointer}.changelog-arrow{color:var(--color-primary);font-size:12px;transition:transform .15s}.changelog-arrow.open{transform:rotate(90deg)}.changelog-version{font-size:14px;font-weight:600;font-family:var(--font-mono)}.changelog-date{font-size:12px;color:var(--color-text-tertiary)}.changelog-summary{font-size:13px;color:var(--color-text-secondary);flex:1}.changelog-content{max-height:0;overflow:hidden;transition:max-height .2s ease}.changelog-content.open{max-height:300px;overflow-y:auto}.changelog-change{font-size:13px;color:var(--color-text-secondary);padding:4px 0 4px var(--space-4);position:relative}.changelog-change:before{content:"";position:absolute;left:var(--space-2);top:12px;width:4px;height:4px;border-radius:50%;background:var(--color-text-tertiary)}.loading-spinner{width:20px;height:20px;border:2px solid var(--color-divider);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.tier-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:600}.tier-dot{width:6px;height:6px;border-radius:50%}.tier-A .tier-dot{background:var(--color-success)}.tier-B .tier-dot{background:var(--color-primary)}.tier-C .tier-dot{background:var(--color-text-tertiary)}
