.market-page{max-width:var(--main-width);margin:0 auto;padding:var(--gap) 0}.market-page h1{font-size:1.5rem;font-weight:700;color:var(--primary);margin:0}.market-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.market-header-left{flex:1}.market-subtitle{color:var(--secondary);font-size:.85rem;margin:6px 0 0}.market-header-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}.market-refresh-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--entry);color:var(--primary);font-size:.85rem;cursor:pointer;transition:all .2s ease;user-select:none}.market-refresh-btn:hover{border-color:var(--link-color);color:var(--link-color)}.market-refresh-btn:active{transform:scale(.97)}.market-refresh-btn.loading{pointer-events:none;opacity:.6}.market-refresh-btn .refresh-icon{display:inline-flex;transition:transform .3s ease}.market-refresh-btn.loading .refresh-icon{animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.market-fetch-time{color:var(--secondary);font-size:.75rem;margin:0}.market-refresh-btn .auto-refresh-cb{appearance:none;-webkit-appearance:none;width:13px;height:13px;border:1.5px solid var(--border);border-radius:3px;background:var(--entry);cursor:pointer;position:relative;transition:all .2s;flex-shrink:0;margin:0}.market-refresh-btn:hover .auto-refresh-cb{border-color:var(--link-color)}.market-refresh-btn .auto-refresh-cb:checked{background:var(--link-color);border-color:var(--link-color)}.market-refresh-btn .auto-refresh-cb:checked:after{content:"";position:absolute;left:3px;top:.5px;width:4px;height:7px;border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}.temperature-card{background:linear-gradient(135deg,#ff6b35,#f7931a,#e8530e);border-radius:var(--radius);padding:20px 24px;margin-bottom:20px;color:#fff}.temperature-main{display:flex;align-items:center;gap:20px}.temperature-gauge{flex:1;display:flex;align-items:center;gap:16px}.temperature-value{font-size:2.5rem;font-weight:700;line-height:1;font-family:Fira Code,JetBrains Mono,Consolas,monospace}.temperature-bar{flex:1;max-width:280px}.temperature-bar-track{position:relative;height:8px;background:#ffffff40;border-radius:4px;overflow:visible}.temperature-bar-fill{height:100%;border-radius:4px;background:#fff9;transition:width .6s ease}.temperature-bar-indicator{position:absolute;top:50%;width:14px;height:14px;background:#fff;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 1px 4px #0003;transition:left .6s ease}.temperature-bar-labels{position:relative;margin-top:6px;font-size:.65rem;opacity:.7;height:1em}.temperature-bar-labels span{position:absolute;transform:translate(-50%);white-space:nowrap}.temperature-bar-labels span:first-child{transform:translate(0)}.temperature-bar-labels span:last-child{transform:translate(-100%)}.temperature-info{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.temperature-level{font-size:.85rem;font-weight:600;padding:3px 12px;border-radius:20px;background:#fff3}.temperature-level.level-low{background:#4caf7d4d}.temperature-level.level-high{background:#ffffff40}.temperature-level.level-mid{background:#fff3}.temperature-trend{font-size:.75rem;opacity:.85}.temperature-trend.trend-up{color:#fff}.temperature-trend.trend-down{color:#ffffffd9}.temperature-label{margin-top:12px;font-size:.7rem;opacity:.65}.temperature-label a{color:#fff;text-decoration:underline;text-underline-offset:2px}.temperature-label a:hover{opacity:.8}.temperature-card:has(.level-low){background:linear-gradient(135deg,#2d8f5e,#38a169,#48bb78)}.temperature-card:has(.level-mid){background:linear-gradient(135deg,#3182ce,#4299e1,#63b3ed)}.index-observe{margin-bottom:20px}.index-observe-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.index-observe-title{font-size:.85rem;font-weight:600;color:var(--primary)}.index-observe-source{font-size:.65rem;color:var(--secondary);text-decoration:none;opacity:.6}.index-observe-source:hover{opacity:1}.index-observe-grid{display:grid;grid-template-columns:repeat(4,auto);justify-content:center;gap:8px}.index-chip{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:.75rem;background:var(--card-bg);border:1px solid var(--border);transition:transform .15s ease,box-shadow .15s ease}.index-chip:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0000000f}.index-chip-name{color:var(--primary);font-weight:500;white-space:nowrap}.index-chip-temp{font-family:Fira Code,JetBrains Mono,Consolas,monospace;font-weight:600;white-space:nowrap}.index-chip.cold{background:#48bb7814;border-color:#48bb7840}.index-chip.cold .index-chip-temp{color:#2f855a}.index-chip.warm .index-chip-temp{color:#3182ce}.index-chip.hot{background:#f5653914;border-color:#f5653940}.index-chip.hot .index-chip-temp{color:#c53030}.chip-trend{font-size:.7rem;margin-left:1px}.chip-trend.trend-up{color:#e53e3e}.chip-trend.trend-down{color:#38a169}.chip-trend.trend-eq{color:var(--secondary);opacity:.5;font-size:.6rem}.cboe-volatility{margin-bottom:20px}.cboe-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.cboe-title{font-size:.85rem;font-weight:600;color:var(--primary)}.cboe-source{font-size:.65rem;color:var(--secondary);text-decoration:none;opacity:.6}.cboe-source:hover{opacity:1}.cboe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.cboe-card{background:var(--entry);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px 10px;display:flex;flex-direction:column;gap:4px;transition:box-shadow .2s ease}.cboe-card:hover{box-shadow:0 2px 12px #0000000f}[data-theme=dark] .cboe-card:hover{box-shadow:0 2px 12px #0003}.cboe-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.cboe-name{font-size:.9rem;font-weight:700;color:var(--primary);font-family:Fira Code,JetBrains Mono,Consolas,monospace;cursor:help;position:relative;border-bottom:1px dashed var(--secondary);padding-bottom:1px}.cboe-name:after{content:attr(title);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#1e1e1eeb;color:#f0f0f0;padding:10px 14px;border-radius:6px;font-size:.68rem;font-weight:400;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.7;white-space:pre-line;width:max-content;max-width:280px;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;transform:translate(-50%) translateY(4px);z-index:100;box-shadow:0 4px 12px #00000026}.cboe-name:before{content:"";position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1e1e1eeb;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:100}.cboe-name:hover:after{opacity:1;transform:translate(-50%) translateY(0)}.cboe-name:hover:before{opacity:1}[data-theme=dark] .cboe-name:after{background:#37373cf2;color:#e0e0e0}[data-theme=dark] .cboe-name:before{border-top-color:#37373cf2}.cboe-current{font-size:1.05rem;font-weight:700;font-family:Fira Code,JetBrains Mono,Consolas,monospace}.cboe-current.rise{color:#cf2222}.cboe-current.fall{color:#1b8c3d}.cboe-current.flat{color:var(--primary)}[data-theme=dark] .cboe-current.rise{color:#e85b5b}[data-theme=dark] .cboe-current.fall{color:#4caf7d}.cboe-error-badge{font-size:.65rem;color:var(--secondary);background:#9999991a;padding:2px 8px;border-radius:10px}.cboe-change-row{display:flex;align-items:center}.cboe-change{font-size:.72rem;font-family:Fira Code,JetBrains Mono,Consolas,monospace;font-weight:500}.cboe-change.rise{color:#cf2222}.cboe-change.fall{color:#1b8c3d}.cboe-change.flat{color:var(--secondary)}[data-theme=dark] .cboe-change.rise{color:#e85b5b}[data-theme=dark] .cboe-change.fall{color:#4caf7d}.cboe-chart{margin-top:4px;position:relative}.cboe-sparkline{width:100%;height:32px;display:block}.cboe-hover-zones{position:absolute;inset:0;display:flex;z-index:2}.cboe-hover-zone{flex:1;position:relative;cursor:crosshair}.cboe-hover-tip{position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%) translateY(2px);background:#1e1e1ee0;color:#f0f0f0;padding:2px 6px;border-radius:4px;font-size:.65rem;font-weight:600;font-family:Fira Code,JetBrains Mono,Consolas,monospace;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease;z-index:10;box-shadow:0 2px 6px #00000026}.cboe-hover-tip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:3px solid transparent;border-top-color:#1e1e1ee0}.cboe-hover-zone:hover .cboe-hover-tip{opacity:1;transform:translate(-50%) translateY(0)}.cboe-hover-zone:hover~.cboe-hover-zone{opacity:1}[data-theme=dark] .cboe-hover-tip{background:#3c3c41f2;color:#e8e8e8}[data-theme=dark] .cboe-hover-tip:after{border-top-color:#3c3c41f2}.cboe-bar{transition:opacity .15s ease}.cboe-bar.bar-normal{fill:var(--border);opacity:.5}.cboe-bar.bar-rise{fill:#cf222240}.cboe-bar.bar-fall{fill:#1b8c3d40}[data-theme=dark] .cboe-bar.bar-normal{fill:#ffffff1a;opacity:.6}[data-theme=dark] .cboe-bar.bar-rise{fill:#e85b5b33}[data-theme=dark] .cboe-bar.bar-fall{fill:#4caf7d33}.cboe-line.line-rise{stroke:#cf2222}.cboe-line.line-fall{stroke:#1b8c3d}[data-theme=dark] .cboe-line.line-rise{stroke:#e85b5b}[data-theme=dark] .cboe-line.line-fall{stroke:#4caf7d}.cboe-card:hover .cboe-bar.bar-normal{opacity:.7}.cboe-days-row{display:flex;justify-content:space-between;margin-top:2px}.cboe-day-label{font-size:.58rem;color:var(--secondary);opacity:.5;font-family:Fira Code,JetBrains Mono,Consolas,monospace}.cboe-day-label.latest{opacity:.8;font-weight:500}.market-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);align-items:start}.market-card{background:var(--entry);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.market-card-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}.market-card-title{display:flex;align-items:center;gap:8px;font-size:.95rem;font-weight:600;color:var(--primary);line-height:1}.market-card-icon{font-size:1.1rem;display:inline-flex;align-items:center;vertical-align:middle;line-height:1}.trade-status{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;padding:3px 10px;border-radius:20px;font-weight:500}.trade-status.trading{background:#1b8c3d1a;color:#1b8c3d}.trade-status.closed{background:#9999991f;color:var(--secondary)}[data-theme=dark] .trade-status.trading{background:#4caf7d26;color:#4caf7d}[data-theme=dark] .trade-status.closed{background:#99999926}.status-dot{width:6px;height:6px;border-radius:50%;display:inline-block}.trade-status.trading .status-dot{background:#1b8c3d;box-shadow:0 0 4px #1b8c3d80}[data-theme=dark] .trade-status.trading .status-dot{background:#4caf7d;box-shadow:0 0 4px #4caf7d80}.trade-status.closed .status-dot{background:#999}.market-card-body{padding:0}.quote-row{display:grid;grid-template-columns:1fr 56px 54px 58px;align-items:center;gap:6px;padding:10px 16px;border-bottom:1px solid var(--border);transition:background .15s ease;overflow:hidden}.quote-row:last-child{border-bottom:none}.quote-row:hover{background:#00000005}[data-theme=dark] .quote-row:hover{background:#ffffff08}.quote-info{display:flex;flex-direction:column;gap:2px;min-width:0;overflow:hidden}.quote-name{font-size:.85rem;font-weight:600;color:var(--primary);display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quote-tag{display:inline-block;font-size:.6rem;font-weight:500;padding:1px 5px;border-radius:3px;line-height:1.4;white-space:nowrap;flex-shrink:0}.tag-index{background:#3b82f61a;color:#3b82f6}.tag-etf{background:#a855f71a;color:#a855f7}.tag-stock{background:#f59e0b1a;color:#f59e0b}[data-theme=dark] .tag-index{background:#60a5fa26;color:#60a5fa}[data-theme=dark] .tag-etf{background:#c084fc26;color:#c084fc}[data-theme=dark] .tag-stock{background:#fbbf2426;color:#fbbf24}.quote-code{font-size:.72rem;color:var(--secondary);font-family:Fira Code,JetBrains Mono,Consolas,monospace}.quote-pe{margin-left:6px;font-size:.65rem;color:var(--secondary);opacity:.7;font-family:inherit}.quote-sparkline{width:56px;height:22px;display:block;flex-shrink:0;color:var(--secondary);opacity:.6;transition:opacity .2s ease}.quote-row:hover .quote-sparkline{opacity:1}.rise .quote-sparkline{color:#cf2222}.fall .quote-sparkline{color:#1b8c3d}.flat .quote-sparkline{color:var(--secondary)}[data-theme=dark] .rise .quote-sparkline{color:#e85b5b}[data-theme=dark] .fall .quote-sparkline{color:#4caf7d}.quote-sparkline-empty{display:block;width:56px;height:22px}.sparkline-baseline{stroke:#888;stroke-width:.5;stroke-dasharray:2 2;opacity:.5}[data-theme=dark] .sparkline-baseline{stroke:#666;opacity:.4}.quote-price{font-size:.8rem;font-weight:600;color:var(--primary);font-family:Fira Code,JetBrains Mono,Consolas,monospace;text-align:right;white-space:nowrap;overflow:hidden}.quote-change{font-size:.75rem;font-weight:600;font-family:Fira Code,JetBrains Mono,Consolas,monospace;text-align:right;white-space:nowrap;overflow:hidden;padding:3px 5px;border-radius:4px}.quote-price.num-sm{font-size:.7rem}.quote-change.num-sm{font-size:.66rem}.rise{color:#cf2222}.rise .quote-change{background:#cf222214;color:#cf2222}.fall{color:#1b8c3d}.fall .quote-change{background:#1b8c3d14;color:#1b8c3d}.flat{color:var(--secondary)}.flat .quote-change{background:#99999914;color:var(--secondary)}[data-theme=dark] .rise{color:#e85b5b}[data-theme=dark] .rise .quote-change{background:#e85b5b1f;color:#e85b5b}[data-theme=dark] .fall{color:#4caf7d}[data-theme=dark] .fall .quote-change{background:#4caf7d1f;color:#4caf7d}.quote-error{padding:10px 18px;color:var(--secondary);font-size:.82rem;text-align:center}.market-card-error{padding:24px 18px;text-align:center;color:var(--secondary);font-size:.85rem}.market-trade-date{font-size:.7rem;color:var(--secondary);margin-top:2px;display:block;text-align:right;padding:6px 18px}.market-toast{position:fixed;bottom:40px;left:50%;transform:translate(-50%) translateY(20px);background:#333333e0;color:#fff;padding:10px 24px;border-radius:24px;font-size:.82rem;z-index:9999;opacity:0;pointer-events:none;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap;backdrop-filter:blur(8px)}[data-theme=dark] .market-toast{background:#c8c8c833;backdrop-filter:blur(12px)}.market-toast.show{opacity:1;transform:translate(-50%) translateY(0);pointer-events:auto}.market-error{text-align:center;padding:60px 20px;color:var(--secondary)}.market-error p{margin:8px 0;font-size:.9rem}@media(max-width:768px){.market-page{padding:var(--gap) 16px}.market-grid{grid-template-columns:1fr}.market-header{flex-direction:column;gap:12px}.market-header-right{align-items:flex-start;flex-direction:row;gap:12px;align-items:center}.temperature-card{padding:16px 18px}.temperature-value{font-size:2rem}.temperature-bar{max-width:200px}.index-chip{padding:5px 10px;font-size:.7rem}.cboe-grid{grid-template-columns:1fr 1fr 1fr;gap:8px}.cboe-card{padding:10px 12px 8px}.cboe-name{font-size:.8rem}.cboe-current{font-size:.9rem}}@media(max-width:600px){.index-observe-grid{grid-template-columns:repeat(3,auto)}}@media(max-width:480px){.index-observe-grid{grid-template-columns:repeat(2,auto)}.quote-row{grid-template-columns:1fr 48px auto;gap:8px;padding:10px 14px}.quote-price{display:none}.quote-sparkline,.quote-sparkline-empty{width:48px;height:20px}.quote-change{min-width:70px;font-size:.78rem}.market-refresh-btn{padding:6px 12px;font-size:.8rem}.cboe-grid{grid-template-columns:1fr}.cboe-name:after{left:0;transform:translate(0);max-width:260px}.cboe-name:before{left:16px;transform:none}.cboe-name:hover:after{transform:translate(0) translateY(0)}}
