@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--bg-primary:#060610;--bg-secondary:#0c0c1d;--bg-panel:#0c0c1ed9;--bg-card:#121228e6;--bg-hover:#1e1e3ccc;--border-primary:#6478ff1f;--border-accent:#00d4ff40;--border-glow:#00d4ff66;--text-primary:#e8eaed;--text-secondary:#9aa0a6;--text-muted:#5f6368;--accent-blue:#00d4ff;--accent-cyan:#00e5ff;--accent-green:#00e676;--accent-yellow:#ffd32a;--accent-orange:#ff9100;--accent-red:#ff4757;--accent-purple:#7c4dff;--shadow-panel:0 4px 24px #00000080, 0 0 40px #0064c80d;--shadow-card:0 2px 12px #0000004d;--shadow-glow:0 0 20px #00d4ff26;--map-fill:#142350;--map-fill-hover:#1a3570;--map-stroke:#3cb8ff;--map-stroke-active:#5ed8ff;--header-height:56px;--sidebar-width:220px;--detail-width:380px;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s cubic-bezier(.4, 0, .2, 1)}:root[data-theme=light]{--bg-primary:#f0f4f8;--bg-secondary:#e2e8f0;--bg-panel:#ffffffd9;--bg-card:#fffffff2;--bg-hover:#0000000d;--border-primary:#0000001a;--border-accent:#0070f340;--border-glow:#0070f366;--text-primary:#1e293b;--text-secondary:#475569;--text-muted:#64748b;--accent-blue:#0ea5e9;--accent-cyan:#06b6d4;--accent-green:#10b981;--accent-yellow:#f59e0b;--accent-orange:#f97316;--accent-red:#ef4444;--accent-purple:#8b5cf6;--shadow-panel:0 4px 24px #0000000f, 0 0 40px #0070f308;--shadow-card:0 2px 12px #0000000d;--shadow-glow:0 0 20px #0070f326;--map-fill:#e2e8f0;--map-fill-hover:#cbd5e1;--map-stroke:#94a3b8;--map-stroke-active:#0ea5e9}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-primary);width:100%;height:100%;color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,sans-serif;overflow:hidden}body{background:radial-gradient(ellipse at 20% 50%, #0032781f 0%, transparent 60%), radial-gradient(ellipse at 80% 20%, #0064b414 0%, transparent 50%), radial-gradient(ellipse at 50% 80%, #5000780f 0%, transparent 50%), var(--bg-primary)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#00d4ff33;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#00d4ff66}#app{grid-template-rows:var(--header-height) 1fr;grid-template-columns:1fr;width:100%;height:100%;display:grid}.header{background:var(--bg-panel);border-bottom:1px solid var(--border-primary);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);z-index:100;justify-content:space-between;align-items:center;padding:0 20px;display:flex}.header-left{align-items:center;gap:16px;display:flex}.header-logo{align-items:center;gap:10px;display:flex}.header-logo .logo-icon{background:linear-gradient(135deg, var(--accent-blue), var(--accent-purple));border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex;box-shadow:0 0 12px #00d4ff4d}.header-logo .logo-text{letter-spacing:2px;background:linear-gradient(90deg, var(--accent-blue), #fff);-webkit-text-fill-color:transparent;color:#0000;text-transform:uppercase;-webkit-background-clip:text;background-clip:text;font-size:16px;font-weight:700}.header-logo .version{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:11px}.header-status{color:var(--accent-green);background:#00e6761a;border:1px solid #00e67640;border-radius:20px;align-items:center;gap:6px;padding:4px 12px;font-size:12px;font-weight:500;display:flex}.header-status .status-dot{background:var(--accent-green);border-radius:50%;width:7px;height:7px;animation:2s infinite pulse-dot}.header-center{align-items:center;gap:20px;display:flex}.header-clock{color:var(--text-secondary);letter-spacing:1px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:500}.header-right{align-items:center;gap:12px;display:flex}.stat-badge{background:var(--bg-card);border:1px solid var(--border-primary);cursor:default;transition:var(--transition-fast);border-radius:8px;align-items:center;gap:8px;padding:6px 14px;font-size:12px;font-weight:500;display:flex}.stat-badge:hover{border-color:var(--border-accent);background:var(--bg-hover)}.header-action-btn{cursor:pointer;color:var(--text-secondary);transition:var(--transition-fast);background:0 0;border:none;padding:4px 8px;font-size:16px;line-height:1}.header-action-btn:hover{color:var(--text-primary)}.header-action-icon{font-size:16px}.stat-badge .stat-value{font-family:JetBrains Mono,monospace;font-size:14px;font-weight:700}.stat-badge .stat-label{color:var(--text-secondary)}.stat-badge.active-alert .stat-value{color:var(--accent-orange)}.stat-badge.cities .stat-value{color:var(--accent-blue)}.stat-badge.policies .stat-value{color:var(--accent-green)}.policy-level{letter-spacing:1px;border-radius:6px;align-items:center;gap:8px;padding:5px 14px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700;display:flex}.policy-level.level-normal{color:var(--accent-green);background:#00e6761f;border:1px solid #00e6764d}.policy-level.level-watch{color:var(--accent-yellow);background:#ffd32a1f;border:1px solid #ffd32a4d}.policy-level.level-alert{color:var(--accent-red);background:#ff47571f;border:1px solid #ff47574d;animation:2s infinite pulse-border}.flip-container{perspective:2000px;flex:1;min-height:0;overflow:hidden}.flip-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.4,0,.2,1);position:relative}.flip-container.flipped .flip-inner{transform:rotateY(180deg)}.flip-face{backface-visibility:hidden;position:absolute;inset:0;overflow:hidden}.flip-front{z-index:2}.flip-back{transform:rotateY(180deg)}.content-row{width:100%;height:100%;display:flex;overflow:hidden}.content-row .sidebar-filters{width:var(--sidebar-width);flex-shrink:0}.center-column{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.center-column .news-area{flex:1;min-height:0;overflow:hidden}.content-row .city-detail{width:0;transition:width var(--transition-slow);overflow:hidden}.content-row.detail-open .city-detail{width:var(--detail-width);border-left:1px solid var(--border-accent)}.map-radar-view{width:100%;height:100%;position:relative}.map-radar-view .map-container{width:100%;height:100%}.map-back-btn{z-index:20;color:var(--text-primary);background:var(--bg-panel);border:1px solid var(--border-accent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;transition:var(--transition-fast);box-shadow:var(--shadow-glow);border-radius:8px;padding:10px 20px;font-family:Inter,sans-serif;font-size:14px;font-weight:600;position:absolute;top:20px;left:20px}.map-back-btn:hover{background:var(--bg-hover);border-color:var(--accent-blue);color:var(--accent-blue)}#toggle-radar-btn.active{border-radius:6px;background:#00d4ff26!important}.sidebar-filters{background:var(--bg-panel);border-right:1px solid var(--border-primary);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);flex-direction:column;gap:16px;padding:16px;display:flex;overflow-y:auto}.filter-section-title{text-transform:uppercase;letter-spacing:2px;color:var(--text-muted);border-bottom:1px solid var(--border-primary);align-items:center;gap:8px;padding-bottom:8px;font-size:11px;font-weight:600;display:flex}.filter-count{color:var(--text-muted);background:#ffffff0d;border-radius:4px;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:11px}.province-group{margin-top:4px}.province-title{color:var(--text-muted);letter-spacing:1px;padding:4px 10px;font-size:11px;font-weight:600}.city-item{cursor:pointer;transition:var(--transition-fast);color:var(--text-secondary);border-radius:4px;align-items:center;gap:8px;padding:5px 10px 5px 20px;font-size:12px;display:flex}.city-item:hover{background:var(--bg-hover);color:var(--text-primary)}.city-item.active{color:var(--accent-blue);background:#00d4ff14}.city-item-all{border-bottom:1px solid var(--border-primary);margin-bottom:4px;padding-bottom:8px;font-weight:600}.city-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.city-count{color:var(--text-muted);background:#ffffff0d;border-radius:4px;margin-left:auto;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:10px}.map-container{background:var(--bg-primary);position:relative;overflow:hidden}.map-svg{width:100%;height:100%}.map-svg .province-fill{fill:var(--map-fill);stroke:none;transition:fill var(--transition-fast);cursor:pointer}.map-svg .province-fill:hover,.map-svg .province-fill.highlighted{fill:var(--map-fill-hover)}.map-svg .province-stroke{fill:none;stroke:var(--map-stroke);stroke-width:1.2px;stroke-linejoin:round;transition:stroke var(--transition-fast)}.map-svg .province-stroke.highlighted{stroke:var(--map-stroke-active);stroke-width:2px}.city-marker{cursor:pointer;transition:var(--transition-fast)}.city-marker circle.marker-bg{fill:#00d4ff26;stroke:#00d4ff80;stroke-width:1px;transition:var(--transition-fast)}.city-marker:hover circle.marker-bg{fill:#00d4ff4d;stroke:var(--accent-blue);stroke-width:1.5px}.city-marker circle.marker-core{fill:var(--accent-blue);transition:var(--transition-fast)}.city-marker.severity-critical circle.marker-core{fill:var(--accent-red)}.city-marker.severity-critical circle.marker-bg{fill:#ff475726;stroke:#ff475780}.city-marker.severity-high circle.marker-core{fill:var(--accent-orange)}.city-marker.severity-high circle.marker-bg{fill:#ff910026;stroke:#ff910080}.city-marker.severity-medium circle.marker-core{fill:var(--accent-yellow)}.city-marker.severity-medium circle.marker-bg{fill:#ffd32a1f;stroke:#ffd32a66}.city-marker.has-new .pulse-ring{animation:2s infinite pulse-ring}.city-marker text{fill:var(--text-secondary);transition:fill var(--transition-fast);pointer-events:none;font-family:Inter,sans-serif;font-size:10px}.city-marker:hover text{fill:var(--text-primary)}.map-tooltip{border:1px solid var(--border-accent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-glow);pointer-events:none;opacity:0;z-index:200;background:#0a0a14f2;border-radius:8px;max-width:280px;padding:10px 14px;font-size:12px;transition:opacity .15s;position:fixed}.map-tooltip.visible{opacity:1}.map-tooltip .tooltip-city{color:var(--accent-blue);margin-bottom:4px;font-size:14px;font-weight:700}.map-tooltip .tooltip-province{color:var(--text-muted);margin-bottom:8px;font-size:11px}.map-tooltip .tooltip-stats{gap:12px;display:flex}.map-tooltip .tooltip-stat{color:var(--text-secondary);align-items:center;gap:4px;font-size:11px;display:flex}.map-legend{border:1px solid var(--border-primary);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a0a14d9;border-radius:20px;gap:16px;padding:8px 20px;font-size:11px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.legend-item{color:var(--text-secondary);align-items:center;gap:6px;display:flex}.legend-dot{border-radius:50%;width:8px;height:8px}.news-feed-container{background:var(--bg-panel);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);flex-direction:column;height:100%;min-height:0;display:flex}.news-feed-header{border-bottom:1px solid var(--border-primary);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 20px;display:flex}.news-feed-title{align-items:center;gap:10px;font-size:13px;font-weight:600;display:flex}.news-feed-title .feed-icon{color:var(--accent-blue)}.news-feed-title .feed-count{color:var(--accent-green);background:#00e6761a;border-radius:10px;padding:2px 8px;font-family:JetBrains Mono,monospace;font-size:12px}.news-category-bar{border-bottom:1px solid var(--border-primary);flex-wrap:wrap;flex-shrink:0;gap:6px;padding:8px 20px;display:flex}.category-chip{color:var(--text-secondary);border:1px solid var(--border-primary);cursor:pointer;transition:var(--transition-fast);white-space:nowrap;background:0 0;border-radius:20px;align-items:center;gap:5px;padding:5px 14px;font-family:Inter,sans-serif;font-size:12px;font-weight:500;display:inline-flex}.category-chip:hover{background:var(--bg-hover);border-color:var(--border-accent);color:var(--text-primary)}.category-chip.active{border-color:var(--accent-blue);color:var(--accent-blue);background:#00d4ff1f}.category-chip .chip-count{opacity:.7;font-family:JetBrains Mono,monospace;font-size:10px}.news-feed-list{flex:1;padding:8px 12px;overflow-y:auto}.news-card{cursor:pointer;transition:var(--transition-fast);border:1px solid #0000;border-radius:8px;grid-template-columns:30px 60px 1fr auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.news-card:hover{background:var(--bg-hover);border-color:var(--border-primary)}.news-card.is-new{border-left:3px solid var(--accent-blue)}.news-severity-dot{border-radius:50%;justify-self:center;width:10px;height:10px}.news-severity-dot.critical{background:var(--accent-red);animation:1.5s infinite pulse-dot;box-shadow:0 0 8px #ff475780}.news-severity-dot.high{background:var(--accent-orange);box-shadow:0 0 6px #ff910066}.news-severity-dot.medium{background:var(--accent-yellow)}.news-severity-dot.low{background:var(--accent-green)}.news-city{color:var(--accent-blue);font-size:12px;font-weight:600}.news-content{min-width:0}.news-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.news-summary{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;overflow:hidden}.news-meta{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.news-time{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:11px}.news-category-tag{white-space:nowrap;border-radius:4px;padding:2px 8px;font-size:10px;font-weight:600}.news-category-tag.policy{color:var(--accent-blue);background:#00d4ff1f}.news-category-tag.compliance{color:var(--accent-green);background:#00e6761f}.news-category-tag.penalty{color:var(--accent-orange);background:#ff91001f}.news-category-tag.safety{color:var(--accent-red);background:#ff47571f}.news-card.has-link{cursor:pointer}.news-card.has-link:hover{background:var(--bg-hover);border-color:var(--border-accent)}.news-card.has-link:hover .news-title{color:var(--accent-blue)}.news-link-icon{opacity:.4;cursor:pointer;font-size:14px;transition:opacity .15s}.news-card:hover .news-link-icon{opacity:1}.impact-note{border-left:3px solid var(--accent-yellow);color:var(--text-secondary);white-space:normal;word-break:break-word;background:#ffd32a1a;border-radius:2px;margin:6px 0 0;padding:6px 10px;font-size:12px;line-height:1.55}:root[data-theme=light] .impact-note{color:var(--text-secondary);background:#f59e0b1a}.impact-label{color:var(--accent-yellow);letter-spacing:.3px;margin-right:6px;font-size:11px;font-weight:700;display:inline-block}:root[data-theme=light] .impact-label{color:#b45309}.heat-score{letter-spacing:.2px;border-radius:6px;justify-content:center;align-items:center;min-width:28px;height:22px;padding:0 6px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700;line-height:1;display:inline-flex}.heat-score.heat-hot{color:var(--accent-red);background:#ff475729;box-shadow:0 0 8px #ff475740}.heat-score.heat-warm{color:var(--accent-orange);background:#ff910029}.heat-score.heat-mild{color:var(--accent-blue);background:#00d4ff1f}.heat-score.heat-cool{background:var(--bg-hover);color:var(--text-muted)}:root[data-theme=light] .heat-score.heat-hot{background:#ef44441f}:root[data-theme=light] .heat-score.heat-warm{background:#f973161f}:root[data-theme=light] .heat-score.heat-mild{background:#0ea5e91f}.feed-sort{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:6px;display:inline-flex;overflow:hidden}.feed-sort-btn{border:none;border-right:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);background:0 0;padding:4px 10px;font-family:inherit;font-size:12px}.feed-sort-btn:last-child{border-right:none}.feed-sort-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.feed-sort-btn.active{background:var(--accent-blue);color:#fff;font-weight:600}.chip-row{flex-wrap:wrap;gap:4px 6px;margin-top:6px;display:flex}.platform-chip,.action-chip,.amount-badge,.effective-badge,.scope-tag{white-space:nowrap;border:1px solid #0000;border-radius:10px;align-items:center;padding:1px 7px;font-size:10px;font-weight:500;line-height:1.55;display:inline-flex}.platform-chip{color:var(--accent-blue);background:#00d4ff1a;border-color:#00d4ff38}.action-chip{color:var(--accent-red);background:#ff47571f;border-color:#ff475747;font-weight:600}.amount-badge{color:var(--accent-yellow);background:#ffd32a24;border-color:#ffd32a4d;font-family:JetBrains Mono,monospace;font-weight:600}:root[data-theme=light] .amount-badge{color:#b45309;background:#f59e0b26;border-color:#f59e0b59}.effective-badge{color:var(--accent-purple);background:#7c4dff1f;border-color:#7c4dff47}.scope-tag{color:var(--text-secondary);background:#9aa0a624;border-color:#9aa0a640;padding:1px 6px;font-size:9px}.scope-province{color:var(--accent-green);background:#00e6761f;border-color:#00e67647}.scope-national{color:var(--accent-orange);background:#ff910024;border-color:#ff910052;font-weight:600}.city-detail{background:var(--bg-panel);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);padding:0;overflow-y:auto}.detail-header{border-bottom:1px solid var(--border-primary);justify-content:space-between;align-items:flex-start;padding:20px;display:flex}.detail-city-name{color:var(--accent-blue);font-size:22px;font-weight:800;line-height:1.2}.detail-province{color:var(--text-muted);margin-top:4px;font-size:12px}.detail-close{border:1px solid var(--border-primary);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);background:#ffffff0d;border-radius:6px;justify-content:center;align-items:center;font-size:14px;display:flex}.detail-close:hover{color:var(--accent-red);background:#ff475726;border-color:#ff47574d}.detail-section{border-bottom:1px solid var(--border-primary);padding:16px 20px}.detail-section-title{text-transform:uppercase;letter-spacing:2px;color:var(--text-muted);margin-bottom:12px;font-size:11px;font-weight:600}.detail-link{color:var(--text-secondary);transition:var(--transition-fast);border:1px solid #0000;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;font-size:12px;text-decoration:none;display:flex}.detail-link:hover{background:var(--bg-hover);color:var(--accent-blue);border-color:var(--border-accent)}.detail-link .link-icon{flex-shrink:0;font-size:14px}.detail-link .link-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.detail-link .link-arrow{color:var(--text-muted);transition:transform var(--transition-fast);flex-shrink:0}.detail-link:hover .link-arrow{color:var(--accent-blue);transform:translate(3px)}.detail-news-item{transition:var(--transition-fast);cursor:pointer;border-radius:6px;margin-bottom:4px;padding:8px 10px}.detail-news-item:hover{background:var(--bg-hover)}.detail-news-title{color:var(--text-primary);font-size:12px;font-weight:500}.detail-news-time{color:var(--text-muted);margin-top:2px;font-family:JetBrains Mono,monospace;font-size:10px}.detail-media-tag{border:1px solid var(--border-accent);color:var(--text-secondary);background:#00d4ff14;border-radius:4px;align-items:center;gap:4px;margin:2px;padding:4px 10px;font-size:11px;display:inline-flex}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}@keyframes pulse-ring{0%{r:6;opacity:.6}to{r:20;opacity:0}}@keyframes pulse-border{0%,to{border-color:#ff47574d}50%{border-color:#ff4757b3}}@keyframes slide-in-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes scan-line{0%{top:-2px}to{top:100%}}.shimmer{background:linear-gradient(90deg,#fff0 0%,#ffffff0d 50%,#fff0 100%) 0 0/200% 100%;animation:2s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.new-badge{border:1px solid var(--accent-blue);color:var(--accent-blue);text-transform:uppercase;background:#00d4ff26;border-radius:3px;align-items:center;gap:3px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:700;animation:2s infinite pulse-border;display:inline-flex}.resize-handle{cursor:row-resize;z-index:10;width:4px;height:100%;position:absolute;top:0;left:0}.no-select{-webkit-user-select:none;user-select:none}.wechat-panel{background:var(--bg-panel);border-top:1px solid var(--border-primary);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);flex-direction:column;max-height:400px;display:flex}.wechat-panel-header{border-bottom:1px solid var(--border-primary);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 20px;display:flex}.wechat-panel-title{align-items:center;gap:10px;font-size:13px;font-weight:600;display:flex}.wechat-icon{font-size:16px}.wechat-status-dot{width:8px;height:8px;transition:var(--transition-fast);border-radius:50%}.wechat-status-dot.online{background:var(--accent-green);animation:2s infinite pulse-dot;box-shadow:0 0 8px #00e67680}.wechat-status-dot.offline{background:var(--accent-red);box-shadow:0 0 8px #ff47574d}.wechat-panel-actions{gap:6px;display:flex}.wechat-panel-body{flex:1;padding:12px 16px;overflow-y:auto}.wechat-section{margin-bottom:16px}.wechat-section-title{text-transform:uppercase;letter-spacing:2px;color:var(--text-muted);justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;font-size:11px;font-weight:600;display:flex}.wechat-btn{border:1px solid var(--border-primary);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);white-space:nowrap;border-radius:6px;padding:6px 14px;font-family:Inter,sans-serif;font-size:12px;font-weight:500}.wechat-btn:hover{background:var(--bg-hover);border-color:var(--border-accent);color:var(--text-primary)}.wechat-btn:disabled{opacity:.5;cursor:not-allowed}.wechat-btn-sm{padding:4px 8px;font-size:11px}.wechat-btn-primary{border-color:var(--border-accent);color:var(--accent-blue);background:#00d4ff1f}.wechat-btn-primary:hover{border-color:var(--accent-blue);background:#00d4ff40}.wechat-btn-toggle{text-align:center;min-width:28px;font-size:10px}.wechat-btn-sub.subscribed{color:var(--accent-green);background:#00e67614;border-color:#00e6764d}.wechat-status-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:8px;padding:12px 14px}.wechat-status-row{justify-content:space-between;align-items:center;padding:4px 0;display:flex}.wechat-status-row+.wechat-status-row{border-top:1px solid #ffffff0a;margin-top:4px;padding-top:8px}.wechat-label{color:var(--text-muted);font-size:12px}.wechat-value{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:500}.wechat-value.online{color:var(--accent-green)}.wechat-value.offline{color:var(--accent-red)}.wechat-search-box{gap:8px;margin-bottom:10px;display:flex}.wechat-input{background:var(--bg-card);border:1px solid var(--border-primary);color:var(--text-primary);transition:var(--transition-fast);border-radius:6px;outline:none;flex:1;padding:8px 12px;font-family:Inter,sans-serif;font-size:13px}.wechat-input:focus{border-color:var(--border-accent);box-shadow:0 0 0 2px #00d4ff1a}.wechat-input::placeholder{color:var(--text-muted)}.wechat-account-card{background:var(--bg-card);border:1px solid var(--border-primary);transition:var(--transition-fast);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:10px 12px;display:flex}.wechat-account-card:hover{border-color:var(--border-accent)}.wechat-account-info{align-items:center;gap:10px;min-width:0;display:flex}.wechat-account-avatar{border:1px solid var(--border-primary);border-radius:50%;flex-shrink:0;width:32px;height:32px}.wechat-account-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.wechat-account-id{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:11px}.wechat-account-actions{flex-shrink:0;gap:4px;display:flex}.wechat-sub-item{cursor:default;transition:var(--transition-fast);border-radius:6px;justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.wechat-sub-item:hover{background:var(--bg-hover)}.wechat-sub-info{align-items:center;gap:8px;min-width:0;display:flex}.wechat-sub-name{color:var(--text-primary);font-size:12px;font-weight:500}.wechat-sub-actions{gap:4px;display:flex}.wechat-btn-unsub{color:var(--text-muted)}.wechat-btn-unsub:hover{color:var(--accent-red);border-color:#ff47574d}.wechat-article-item{cursor:pointer;transition:var(--transition-fast);border:1px solid #0000;border-radius:6px;margin-bottom:4px;padding:10px 12px}.wechat-article-item:hover{background:var(--bg-hover);border-color:var(--border-accent)}.wechat-article-title{color:var(--text-primary);margin-bottom:4px;font-size:13px;font-weight:500}.wechat-article-meta{color:var(--text-muted);gap:12px;font-size:11px;display:flex}.wechat-loading,.wechat-empty{color:var(--text-muted);text-align:center;padding:16px;font-size:12px}.event-sources-wrap{margin-top:6px}.event-sources-toggle{color:var(--accent-cyan);cursor:pointer;transition:var(--transition-fast);background:#00e5ff14;border:1px solid #00e5ff38;border-radius:10px;align-items:center;gap:4px;padding:2px 9px;font-family:Inter,sans-serif;font-size:11px;font-weight:500;display:inline-flex}.event-sources-toggle:hover{color:var(--accent-blue);background:#00e5ff26;border-color:#00e5ff66}.event-sources-toggle.expanded{border-color:var(--accent-cyan);color:var(--accent-blue);background:#00e5ff2e}.event-sources-list{background:#00d4ff0a;border-left:2px solid #00e5ff59;border-radius:0 4px 4px 0;margin:6px 0 0;padding:6px 10px;list-style:none}.event-source-item{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;line-height:1.7;overflow:hidden}.event-source-item+.event-source-item{border-top:1px dashed #9aa0a61f}.event-source-date{color:var(--text-muted);font-family:JetBrains Mono,monospace}.event-source-name{color:var(--text-secondary);font-weight:500}.event-source-link{color:var(--text-secondary);transition:color var(--transition-fast);text-decoration:none}.event-source-link:hover{color:var(--accent-blue);text-decoration:underline}.event-source-title{color:var(--text-secondary)}.pulse-holder{border-bottom:1px solid var(--border-primary);background:linear-gradient(#fff6 0%,#0000 100%);flex-shrink:0;padding:8px 14px 0}:root[data-theme=light] .pulse-holder{background:linear-gradient(#fff9 0%,#0000 100%)}.pulse-wrap{flex-direction:column;gap:10px;display:flex}.pulse-row{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}@media (width<=1100px){.pulse-row{grid-template-columns:repeat(2,1fr)}}.pulse-card{background:var(--bg-card);border:1px solid var(--border-primary);box-shadow:var(--shadow-card);transition:var(--transition-fast);cursor:default;border-radius:8px;align-items:center;gap:10px;min-height:44px;padding:6px 12px;display:flex}.pulse-card[title]:hover{border-color:var(--border-accent);cursor:pointer;transform:translateY(-1px)}.pulse-icon{flex-shrink:0;font-size:18px;line-height:1}.pulse-body{flex:1;min-width:0}.pulse-label{color:var(--text-secondary);letter-spacing:.3px;margin-bottom:2px;font-size:11px;font-weight:500}.pulse-value{color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:18px;font-weight:700;line-height:1.1}.pulse-critical .pulse-value{color:var(--accent-red)}.pulse-high .pulse-value{color:var(--accent-orange)}.pulse-upcoming .pulse-value{color:var(--accent-blue)}.pulse-upcoming-hint{color:var(--text-muted);margin-top:1px;font-size:11px}.pulse-platforms-list{flex-wrap:wrap;gap:4px 6px;margin-top:2px;display:flex}.pulse-platform-tag{border:1px solid var(--border-accent);color:var(--text-primary);background:#00d4ff14;border-radius:12px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;display:inline-flex}:root[data-theme=light] .pulse-platform-tag{background:#0ea5e91a}.pulse-platform-tag em{color:var(--accent-blue);font-size:10px;font-style:normal;font-weight:600}.pulse-empty{color:var(--text-muted);font-size:11px;font-style:italic}.pulse-toolbar{align-items:center;gap:10px;padding:0 2px 10px;font-size:12px;display:flex}.pulse-toolbar-label{color:var(--text-secondary);font-weight:500}.pulse-time-switch{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:6px;display:inline-flex;overflow:hidden}.pulse-time-switch button{color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);border:none;border-right:1px solid var(--border-primary);background:0 0;padding:4px 10px;font-size:12px}.pulse-time-switch button:last-child{border-right:none}.pulse-time-switch button:hover{color:var(--text-primary);background:var(--bg-hover)}.pulse-time-switch button.active{background:var(--accent-blue);color:#fff;font-weight:600}.pulse-result-count{color:var(--text-muted);margin-left:auto;font-size:11px}.pulse-result-count strong{color:var(--accent-blue);font-weight:600}.source-tier-badge{letter-spacing:.5px;vertical-align:middle;border-radius:3px;margin-left:4px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:700;line-height:1.4;display:inline-block}.source-tier-badge.tier-s{color:#fff;background:linear-gradient(135deg,#ef4444,#f97316)}.source-tier-badge.tier-a1{color:#fff;background:linear-gradient(135deg,#f97316,#f59e0b)}.source-tier-badge.tier-a{background:var(--accent-blue);color:#fff}:root[data-theme=light] .source-tier-badge.tier-a{background:#0ea5e9}.header-review-link{align-items:center;gap:5px;text-decoration:none;border:1px solid var(--border-accent)!important;width:auto!important;padding:4px 10px!important;display:inline-flex!important}.header-review-link:hover{background:var(--bg-hover);border-color:var(--accent-blue)!important}.header-review-label{color:var(--text-primary);font-size:12px;font-weight:500}.pulseplus-holder{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}:root.focus-mode .pulse-holder,:root.focus-mode .pp-mustread-section,:root.focus-mode .pp-timeline-section{display:none}:root.focus-mode .header-action-btn#focus-mode-btn.active,.header-action-btn#focus-mode-btn.active{background:var(--accent-blue);color:#fff}.header-action-btn#focus-mode-btn.active .header-action-icon{filter:brightness(2)}.pulseplus-wrap{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.pp-section-title{color:var(--text-secondary);letter-spacing:.3px;align-items:center;gap:6px;padding:6px 16px;font-size:12px;font-weight:600;display:flex}.pp-section-icon{font-size:13px}.pp-section-hint{color:var(--text-muted);font-size:11px;font-weight:400}.pp-section-toggle{cursor:pointer;text-align:left;width:100%;transition:var(--transition-fast);background:0 0;border:none;font-family:inherit}.pp-section-toggle:hover{background:var(--bg-hover)}.pp-collapsible.is-collapsed .pp-section-toggle{padding:5px 16px;font-size:11px}.pp-toggle-caret{width:10px;color:var(--text-muted);transition:var(--transition-fast);font-size:9px;display:inline-block}.pp-section-badge{background:var(--accent-blue);color:#fff;border-radius:8px;height:16px;margin-left:2px;padding:0 6px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;line-height:16px;display:inline-block}.pp-collapsible.is-collapsed{border-bottom:1px dashed var(--border-primary)}.pp-mustread-section{border-bottom:1px solid var(--border-primary);flex-shrink:0}.pp-mustread-strip{scrollbar-width:thin;gap:10px;padding:4px 16px 12px;display:flex;overflow-x:auto}.pp-mustread-card{background:var(--bg-card);border:1px solid var(--border-primary);border-left:3px solid var(--accent-orange);cursor:pointer;transition:var(--transition-fast);border-radius:8px;flex:0 0 280px;padding:10px 12px}.pp-mustread-card.sev-critical{border-left-color:var(--accent-red)}.pp-mustread-card:hover{box-shadow:var(--shadow-card);border-color:var(--border-accent);transform:translateY(-2px)}.pp-mustread-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.pp-sev-pill{color:#fff;border-radius:3px;padding:1px 6px;font-size:10px;font-weight:700}.pp-sev-pill.sev-critical{background:var(--accent-red)}.pp-sev-pill.sev-high{background:var(--accent-orange)}.pp-mustread-city{color:var(--text-secondary);font-size:11px;font-weight:500}.pp-mustread-title{color:var(--text-primary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:4px;font-size:13px;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.pp-mustread-note{color:var(--accent-blue);-webkit-line-clamp:2;background:#00d4ff0f;border-radius:4px;-webkit-box-orient:vertical;margin-bottom:4px;padding:4px 6px;font-size:11px;display:-webkit-box;overflow:hidden}:root[data-theme=light] .pp-mustread-note{background:#0ea5e914}.pp-mustread-foot{color:var(--text-muted);justify-content:space-between;font-size:10px;display:flex}.pp-timeline-section{border-bottom:1px solid var(--border-primary);flex-shrink:0;padding-bottom:6px}.pp-timeline{align-items:flex-end;gap:8px;height:80px;padding:4px 16px;display:flex}.pp-timeline-day{cursor:default;flex-direction:column;flex:1;align-items:center;gap:4px;display:flex}.pp-timeline-empty{color:var(--text-muted);background:var(--bg-card);border:1px dashed var(--border-primary);border-radius:8px;margin:4px 16px;padding:12px 16px;font-size:12px;line-height:1.6}.pp-timeline-bar-wrap{align-items:flex-end;width:100%;height:52px;display:flex}.pp-timeline-bar{background:var(--bg-hover);border-radius:3px;flex-direction:column-reverse;width:100%;display:flex;overflow:hidden}.pp-tl-seg{width:100%}.pp-tl-seg.sev-critical{background:var(--accent-red)}.pp-tl-seg.sev-high{background:var(--accent-orange)}.pp-tl-seg.sev-medium{background:var(--accent-yellow)}.pp-tl-seg.sev-low{background:var(--accent-green)}.pp-heatcells{grid-template-columns:repeat(7,1fr);gap:6px;padding:4px 16px;display:grid}.pp-heatcell{background:rgba(14, 165, 233, calc(.05 + var(--intensity,0) * .45));border:1px solid var(--border-primary);text-align:center;transition:var(--transition-fast);cursor:default;border-radius:8px;flex-direction:column;justify-content:space-between;min-height:78px;padding:8px 6px 6px;display:flex;position:relative}:root[data-theme=light] .pp-heatcell{background:rgba(14, 165, 233, calc(.04 + var(--intensity,0) * .35))}.pp-heatcell:hover{border-color:var(--border-accent);transform:translateY(-1px)}.pp-heatcell.is-empty{opacity:.5;background:var(--bg-card)}.pp-heatcell.has-alert{border-color:var(--accent-red);border-width:1.5px}.pp-hc-date{color:var(--text-secondary);font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600}.pp-hc-day{color:var(--text-muted);margin-top:-1px;font-size:10px}.pp-hc-total{color:var(--text-primary);margin:2px 0;font-family:JetBrains Mono,monospace;font-size:22px;font-weight:700;line-height:1.1}.pp-heatcell.is-empty .pp-hc-total{color:var(--text-muted);font-size:14px;font-weight:400}.pp-hc-alert{min-height:16px}.pp-hc-alert-pill{background:var(--accent-red);color:#fff;border-radius:8px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;line-height:14px;display:inline-block}.pp-hc-noalert{color:var(--text-muted);font-size:11px}.pp-heatcells-legend{color:var(--text-muted);justify-content:space-between;padding:4px 16px 6px;font-size:11px;display:flex}.pp-timeline-label{text-align:center;line-height:1.1}.pp-tl-day{color:var(--text-muted);font-size:10px}.pp-tl-date{color:var(--text-secondary);font-family:JetBrains Mono,monospace;font-size:10px}.pp-tabs{border-bottom:1px solid var(--border-primary);background:var(--bg-primary);z-index:5;flex-shrink:0;gap:2px;padding:6px 16px 0;display:flex;position:sticky;top:0}.pp-tab{color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:5px;padding:7px 14px;font-family:Inter,sans-serif;font-size:13px;display:inline-flex}.pp-tab:hover{color:var(--text-primary)}.pp-tab.active{color:var(--accent-blue);border-bottom-color:var(--accent-blue);font-weight:600}.pp-tab-icon{font-size:14px}.pp-tab-content{flex:1;min-height:0;position:relative;overflow:hidden}.pp-panel{height:100%;display:none;overflow:auto}.pp-panel.active{display:block}.pp-panel-feed{overflow:hidden}.pp-panel-feed>.news-feed-container,.pp-panel-feed>.news-area{height:100%}.pp-grid-2{grid-template-columns:1fr 1fr;gap:12px;padding:12px 16px;display:grid}@media (width<=1100px){.pp-grid-2{grid-template-columns:1fr}}.pp-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:8px;padding:12px 14px}.pp-card-title{color:var(--text-primary);margin-bottom:4px;font-size:13px;font-weight:600}.pp-card-hint{color:var(--text-muted);margin-bottom:10px;font-size:11px}.pp-bars{flex-direction:column;gap:6px;display:flex}.pp-bar-row{grid-template-columns:110px 1fr 30px;align-items:center;gap:8px;font-size:12px;display:grid}.pp-bar-label{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pp-bar-track{background:var(--bg-hover);border-radius:3px;height:16px;overflow:hidden}.pp-bar-fill{border-radius:3px;height:100%;transition:width .3s}.pp-bar-fill.fill-blue{background:var(--accent-blue)}.pp-bar-fill.fill-orange{background:var(--accent-orange)}.pp-bar-value{text-align:right;color:var(--text-secondary);font-family:JetBrains Mono,monospace;font-weight:600}.pp-cd-wrap{flex-direction:column;gap:14px;padding:12px 16px;display:flex}.pp-cd-group{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:8px;padding:10px 12px}.pp-cd-group.urgent{border-color:var(--accent-orange);background:#ff91000a}:root[data-theme=light] .pp-cd-group.urgent{background:#f973160f}.pp-cd-group-title{color:var(--text-primary);margin-bottom:8px;font-size:13px;font-weight:600}.pp-cd-count{color:var(--text-muted);font-size:11px;font-weight:400}.pp-cd-item{border-top:1px solid var(--border-primary);cursor:pointer;transition:var(--transition-fast);grid-template-columns:60px 1fr 60px;gap:10px;padding:8px 4px;display:grid}.pp-cd-item:first-of-type{border-top:none}.pp-cd-item:hover{background:var(--bg-hover)}.pp-cd-days{text-align:center;color:var(--accent-blue);padding-top:2px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700}.pp-cd-body{min-width:0}.pp-cd-title{color:var(--text-primary);margin-bottom:3px;font-size:13px;font-weight:500;line-height:1.4}.pp-cd-meta{color:var(--text-muted);flex-wrap:wrap;gap:8px;font-size:11px;display:flex}.pp-cd-scope,.pp-cd-amount{background:var(--bg-hover);color:var(--text-secondary);border-radius:3px;padding:1px 5px}.pp-cd-impact{color:var(--accent-blue);margin-top:4px;font-size:11px}.pp-cd-date{text-align:right;color:var(--text-muted);padding-top:4px;font-family:JetBrains Mono,monospace;font-size:11px}.pp-src-wrap{padding:12px 16px}.pp-src-hint{color:var(--text-muted);background:var(--bg-card);border-radius:6px;margin-bottom:12px;padding:8px 10px;font-size:11px;line-height:1.5}.pp-src-table{border-collapse:collapse;width:100%;font-size:12px}.pp-src-table th{text-align:left;color:var(--text-secondary);border-bottom:1px solid var(--border-primary);background:var(--bg-secondary);padding:6px 8px;font-size:11px;font-weight:600}.pp-src-table th.tcenter,.pp-src-table td.tcenter{text-align:center}.pp-src-table th.tright,.pp-src-table td.tright{text-align:right}.pp-src-table td{border-bottom:1px solid var(--border-primary);color:var(--text-primary);padding:6px 8px}.pp-src-table tbody tr:hover{background:var(--bg-hover)}.pp-src-name{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.sev-critical-cell{color:var(--accent-red);font-weight:600}.sev-high-cell{color:var(--accent-orange);font-weight:600}.pp-tier{border-radius:3px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;display:inline-block}.pp-tier.tier-s{color:#fff;background:linear-gradient(135deg,#ef4444,#f97316)}.pp-tier.tier-a1{color:#fff;background:linear-gradient(135deg,#f97316,#f59e0b)}.pp-tier.tier-a{background:var(--accent-blue);color:#fff}.pp-tier.tier-b{background:var(--text-muted);color:#fff}.pp-tier.tier-c{background:var(--bg-hover);color:var(--text-muted)}.pp-vtag{border-radius:3px;margin-left:5px;padding:1px 5px;font-size:10px;font-weight:600;display:inline-block}.pp-vtag.vtag-good{color:var(--accent-green);background:#00e67626}.pp-vtag.vtag-noise{color:var(--text-muted);background:#959faf26}.pp-src-stack{background:var(--bg-hover);border-radius:3px;width:120px;height:14px;display:flex;overflow:hidden}.pp-src-seg{height:100%}.pp-src-seg.sev-critical{background:var(--accent-red)}.pp-src-seg.sev-high{background:var(--accent-orange)}.pp-src-seg.sev-other{background:var(--bg-hover)}.pp-src-more{color:var(--text-muted);text-align:center;padding:10px;font-size:11px}.pp-empty{text-align:center;color:var(--text-muted);padding:30px 20px;font-size:13px;line-height:1.6}
