:root{--bg-primary: #0f1117;--bg-secondary: #1a1d27;--bg-card: #222536;--bg-hover: #2a2e42;--text-primary: #e8eaed;--text-secondary: #9aa0a6;--text-muted: #6b7280;--border: #2d3148;--accent: #4f8ff7;--accent-hover: #3b7de6;--earnings-color: #f59e0b;--conference-color: #8b5cf6;--release-color: #10b981;--sentiment-up: #10b981;--sentiment-flat: #f59e0b;--sentiment-down: #ef4444;--radius: 8px;--shadow: 0 2px 8px rgba(0,0,0,.3);--label-width: 200px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.5}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:16px 24px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}.rec-logo{display:flex;align-items:center;gap:10px}.rec-logo-img{height:36px;width:auto}.rec-subtitle{font-size:13px;font-weight:500;color:var(--text-muted);letter-spacing:.5px}.header-stats{display:flex;gap:20px;font-size:13px;color:var(--text-secondary)}.header-stats strong{color:var(--text-primary)}.main-content{display:flex;flex:1}.sidebar{width:280px;min-width:280px;background:var(--bg-secondary);border-right:1px solid var(--border);padding:16px;overflow-y:auto;height:calc(100vh - 57px);position:sticky;top:57px}.filter-section{margin-bottom:20px}.filter-section h3{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:8px}.subscribe-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-bottom:16px}.subscribe-form{display:flex;gap:6px}.subscribe-form .search-input{flex:1;font-size:12px;padding:6px 10px}.subscribe-btn{padding:6px 12px;border:none;border-radius:var(--radius);background:var(--accent);color:#fff;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}.subscribe-btn:hover{background:var(--accent-hover)}.subscribe-btn:disabled{opacity:.6;cursor:not-allowed}.subscribe-hint{font-size:10px;color:var(--text-muted);margin-top:6px}.subscribe-success{font-size:12px;color:#34d399;padding:6px 0}.subscribe-error{font-size:11px;color:#f87171;margin-top:4px}.search-input{width:100%;padding:8px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:13px;outline:none;transition:border-color .2s}.search-input:focus{border-color:var(--accent)}.filter-chips{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:4px 10px;border-radius:16px;font-size:12px;cursor:pointer;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);transition:all .15s;-webkit-user-select:none;user-select:none}.chip:hover{border-color:var(--accent);color:var(--text-primary)}.chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.chip.earnings{border-left:3px solid var(--earnings-color)}.chip.conference{border-left:3px solid var(--conference-color)}.chip.product_release{border-left:3px solid var(--release-color)}.chip.earnings.active{background:var(--earnings-color);border-color:var(--earnings-color)}.chip.conference.active{background:var(--conference-color);border-color:var(--conference-color)}.chip.product_release.active{background:var(--release-color);border-color:var(--release-color)}.sector-list{display:flex;flex-direction:column;gap:2px;max-height:300px;overflow-y:auto}.sector-item{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:4px;cursor:pointer;font-size:12px;color:var(--text-secondary);transition:background .15s}.sector-item:hover{background:var(--bg-hover)}.sector-item.active{background:var(--bg-hover);color:var(--text-primary)}.sector-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.sector-count{margin-left:auto;font-size:11px;color:var(--text-muted)}.starred-filter-btn{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;font-size:13px;transition:all .15s}.starred-filter-btn:hover{border-color:#f59e0b;color:var(--text-primary)}.starred-filter-btn.active{background:#f59e0b1f;border-color:#f59e0b;color:#fbbf24}.starred-filter-btn .star-icon{font-size:16px;color:#f59e0b}.starred-count{margin-left:auto;font-size:11px;color:var(--text-muted);background:var(--bg-primary);padding:1px 6px;border-radius:8px}.starred-filter-btn.active .starred-count{background:#f59e0b33;color:#fbbf24}.htl-star-btn,.list-star-btn,.detail-star-btn{background:none;border:none;cursor:pointer;font-size:14px;color:var(--text-muted);padding:0;line-height:1;transition:color .15s,transform .15s;flex-shrink:0}.htl-star-btn:hover,.list-star-btn:hover,.detail-star-btn:hover{color:#f59e0b;transform:scale(1.2)}.htl-star-btn.starred,.list-star-btn.starred,.detail-star-btn.starred{color:#f59e0b}.htl-star-btn{font-size:13px;margin-right:2px}.list-star-btn{font-size:15px}.detail-star-btn{font-size:20px;margin-right:6px;vertical-align:middle}.view-toggle{display:flex;gap:4px;background:var(--bg-card);border-radius:var(--radius);padding:3px}.view-btn{padding:6px 14px;border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:500;background:transparent;color:var(--text-secondary);transition:all .15s}.view-btn:hover{color:var(--text-primary)}.view-btn.active{background:var(--accent);color:#fff}.calendar-container{flex:1;padding:20px 24px;overflow-y:auto;height:calc(100vh - 57px)}.htl{position:relative}.htl-legend{display:flex;align-items:center;gap:16px;padding:10px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;flex-wrap:wrap}.htl-legend-item{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-secondary)}.htl-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.htl-legend-sep{width:1px;height:16px;background:var(--border)}.htl-legend-bar{display:inline-block;width:32px;height:6px;border-radius:3px}.htl-legend-bar--high{background:linear-gradient(90deg,transparent,rgba(79,143,247,.5),transparent)}.htl-legend-bar--med{background:linear-gradient(90deg,transparent,rgba(79,143,247,.25),transparent)}.htl-legend-bar--low{background:linear-gradient(90deg,transparent,rgba(79,143,247,.12),transparent)}.htl-header{display:flex;align-items:stretch;position:sticky;top:0;z-index:20;background:var(--bg-primary);border-bottom:2px solid var(--border);margin-bottom:2px}.htl-label-col{width:var(--label-width);min-width:var(--label-width);flex-shrink:0}.htl-ruler{flex:1;position:relative;height:32px}.htl-month-label{position:absolute;transform:translate(-50%);font-size:11px;font-weight:600;color:var(--text-muted);top:8px;text-transform:uppercase;letter-spacing:.5px}.htl-month-label.current{color:var(--accent);font-weight:700;font-size:12px}.htl-quarter-line{position:absolute;top:0;bottom:0;width:1px;background:var(--border);opacity:.6}.htl-today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--accent);opacity:.6;z-index:5;pointer-events:none}.htl-today-line:after{content:"";position:absolute;top:-2px;left:-3px;width:8px;height:8px;border-radius:50%;background:var(--accent)}.htl-rows{display:flex;flex-direction:column}.htl-row{display:flex;align-items:stretch;border-bottom:1px solid var(--border);min-height:36px;transition:background .1s}.htl-row:hover{background:var(--bg-hover)}.htl-row:nth-child(2n){background:#2225364d}.htl-row:nth-child(2n):hover{background:var(--bg-hover)}.htl-company-label{display:flex;align-items:center;gap:6px;padding:4px 12px;cursor:pointer;transition:color .15s;border-right:1px solid var(--border)}.htl-company-label:hover{color:var(--accent)}.htl-company-name{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.htl-company-ticker{font-size:10px;color:var(--text-muted);font-weight:400}.htl-company-sector-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-left:auto}.htl-track{flex:1;position:relative;min-height:36px}.htl-event-group{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none}.htl-event-group.hovered{z-index:15}.htl-prob-bar{position:absolute;top:4px;bottom:4px;border-radius:4px;pointer-events:none;transition:opacity .2s}.htl-event-group.hovered .htl-prob-bar{opacity:1.5}.htl-marker{position:absolute;top:50%;width:10px;height:10px;border-radius:50%;transform:translate(-50%,-50%);cursor:pointer;pointer-events:all;transition:transform .15s,box-shadow .15s;z-index:10}.htl-marker:hover,.htl-event-group.hovered .htl-marker{transform:translate(-50%,-50%) scale(1.5)}.htl-confidence-ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:1.5px dashed;border-radius:50%;pointer-events:none}.htl-inline-label{position:absolute;top:-2px;transform:translate(-50%);font-size:9px;font-weight:700;white-space:nowrap;pointer-events:none;text-shadow:0 1px 3px rgba(0,0,0,.8);letter-spacing:.3px}.htl-tooltip{position:fixed;transform:translate(-50%,-100%);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;min-width:260px;max-width:340px;z-index:1000;box-shadow:0 8px 32px #00000080;pointer-events:none;animation:tooltipIn .12s ease}@keyframes tooltipIn{0%{opacity:0;transform:translate(-50%,-100%) translateY(4px)}to{opacity:1;transform:translate(-50%,-100%) translateY(0)}}.htl-tooltip-header{display:flex;align-items:baseline;gap:6px;margin-bottom:4px}.htl-tooltip-header strong{font-size:14px}.htl-tooltip-ticker{font-size:11px;color:var(--text-muted)}.htl-tooltip-event{font-size:13px;font-weight:600;margin-bottom:2px}.htl-tooltip-desc{font-size:11px;color:var(--text-muted);margin-bottom:8px;line-height:1.4}.htl-tooltip-meta{display:flex;align-items:center;gap:8px;margin-bottom:6px}.htl-tooltip-cat{font-size:10px;padding:2px 8px;border-radius:10px;font-weight:600}.htl-tooltip-cat.earnings{background:#f59e0b33;color:#fbbf24}.htl-tooltip-cat.conference{background:#8b5cf633;color:#a78bfa}.htl-tooltip-cat.product_release{background:#10b98133;color:#34d399}.htl-tooltip-date{font-size:12px;color:var(--text-secondary);font-weight:500}.htl-tooltip-prob{display:flex;align-items:center;gap:8px;padding-top:6px;border-top:1px solid var(--border)}.htl-prob-badge{font-size:10px;padding:2px 8px;border-radius:10px;font-weight:700}.htl-prob-badge--high{background:#10b98126;color:#34d399}.htl-prob-badge--medium{background:#f59e0b26;color:#fbbf24}.htl-prob-badge--low{background:#ef44441f;color:#f87171}.htl-prob-badge--confirmed{background:#10b98140;color:#34d399}.htl-prob-label{font-size:11px;color:var(--text-muted)}.htl-tooltip-consensus{font-size:11px;color:var(--text-secondary);padding-top:4px}.htl-tooltip-consensus strong{color:var(--text-primary)}.htl-confirmed-ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:18px;height:18px;border:2px solid;border-radius:50%;pointer-events:none;animation:confirmedPulse 2s ease-in-out infinite}@keyframes confirmedPulse{0%,to{opacity:.6;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}}.htl-marker.confirmed{width:12px;height:12px}.live-indicator,.live-indicator strong{color:#34d399}.data-status{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:600}.data-status--connected{background:#10b98126;color:#34d399}.data-status--loading{background:#f59e0b26;color:#fbbf24}.data-status--offline{background:#6b728026;color:var(--text-muted)}.htl-footer{display:flex;gap:20px;padding:12px 16px;margin-top:12px;font-size:11px;color:var(--text-muted);border-top:1px solid var(--border)}.list-view{display:flex;flex-direction:column;gap:8px}.list-item{display:grid;grid-template-columns:28px 100px 180px 1fr 120px 100px;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);transition:border-color .15s}.list-item:hover{border-color:var(--accent)}.list-date{font-size:13px;font-weight:600;color:var(--text-secondary)}.list-company{font-size:14px;font-weight:600}.list-company .ticker{color:var(--text-muted);font-weight:400;font-size:12px;margin-left:4px}.list-event-name{font-size:13px}.list-sector-tag{font-size:11px;padding:2px 8px;border-radius:10px;text-align:center;white-space:nowrap}.list-category-badge{font-size:11px;padding:3px 8px;border-radius:10px;text-align:center;font-weight:600}.list-category-badge.earnings{background:#f59e0b33;color:#fbbf24}.list-category-badge.conference{background:#8b5cf633;color:#a78bfa}.list-category-badge.product_release{background:#10b98133;color:#34d399}.detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:200;display:flex;justify-content:flex-end}.detail-panel{width:520px;max-width:90vw;background:var(--bg-secondary);height:100vh;overflow-y:auto;padding:24px;border-left:1px solid var(--border);animation:slideIn .2s ease}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.detail-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}.detail-header h2{font-size:22px;font-weight:700}.detail-ticker{color:var(--text-muted);font-size:14px;font-weight:400}.close-btn{background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);width:32px;height:32px;border-radius:var(--radius);cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center}.close-btn:hover{border-color:var(--accent);color:var(--text-primary)}.ticker-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:16px}.ticker-loading,.ticker-unavailable{font-size:12px;color:var(--text-muted)}.ticker-price-row{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}.ticker-price{font-size:28px;font-weight:700;letter-spacing:-.5px}.ticker-change{font-size:14px;font-weight:600}.ticker-change.up{color:#10b981}.ticker-change.down{color:#ef4444}.ticker-card--link{display:block;text-decoration:none;color:inherit;cursor:pointer;transition:border-color .15s}.ticker-card--link:hover{border-color:var(--accent)}.ticker-yahoo-hint{font-size:10px;color:var(--text-muted);margin-left:auto}.ticker-card--link:hover .ticker-yahoo-hint{color:var(--accent)}.ticker-meta{display:flex;gap:16px;font-size:11px;color:var(--text-muted)}.ticker-fundamentals{display:flex;gap:20px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.ticker-stat{display:flex;flex-direction:column;gap:2px}.ticker-stat-label{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.ticker-stat-value{font-size:13px;font-weight:600;color:var(--text-primary)}.ticker-range-bar{position:relative;height:4px;background:var(--border);border-radius:2px;margin-top:10px}.ticker-range-fill{position:absolute;top:0;height:100%;background:linear-gradient(90deg,#ef4444,#f59e0b,#10b981);border-radius:2px;opacity:.5}.ticker-range-current{position:absolute;top:-3px;width:10px;height:10px;background:var(--accent);border-radius:50%;transform:translate(-50%);border:2px solid var(--bg-card)}.news-section,.reddit-section{margin-bottom:20px}.news-section h3,.reddit-section h3{font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:10px}.section-loading,.section-empty{font-size:12px;color:var(--text-muted);padding:8px 0}.news-list{display:flex;flex-direction:column;gap:6px}.news-item{display:flex;gap:10px;padding:8px 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:var(--text-primary);transition:border-color .15s}.news-item:hover{border-color:var(--accent)}.news-thumb{width:60px;height:40px;object-fit:cover;border-radius:4px;flex-shrink:0}.news-content{flex:1;min-width:0}.news-headline{font-size:12px;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.news-meta{display:flex;gap:8px;margin-top:3px;font-size:10px;color:var(--text-muted)}.news-source{font-weight:600}.reddit-list{display:flex;flex-direction:column;gap:6px}.reddit-item{display:flex;gap:10px;padding:8px 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:var(--text-primary);transition:border-color .15s}.reddit-item:hover{border-color:#ff4500}.reddit-score{display:flex;flex-direction:column;align-items:center;min-width:32px;font-size:11px;font-weight:700;color:#ff4500}.reddit-arrow{font-size:10px;opacity:.6}.reddit-content{flex:1;min-width:0}.reddit-title{font-size:12px;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.reddit-meta{display:flex;gap:8px;margin-top:3px;font-size:10px;color:var(--text-muted)}.reddit-sub{color:#ff4500;font-weight:600}.detail-links{display:flex;gap:8px;margin-bottom:20px}.detail-links a{padding:6px 12px;border-radius:var(--radius);background:var(--bg-card);border:1px solid var(--border);color:var(--accent);text-decoration:none;font-size:12px;transition:border-color .15s}.detail-links a:hover{border-color:var(--accent)}.detail-link--status{border-color:#10b981!important;color:#10b981!important}.sentiment-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:20px}.sentiment-card h3{font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:12px}.sentiment-row{display:flex;align-items:center;gap:12px;margin-bottom:8px}.sentiment-badge{padding:4px 10px;border-radius:4px;font-size:12px;font-weight:700;text-transform:uppercase}.sentiment-badge.up{background:#10b98126;color:var(--sentiment-up)}.sentiment-badge.flat{background:#f59e0b26;color:var(--sentiment-flat)}.sentiment-badge.down{background:#ef444426;color:var(--sentiment-down)}.rating-badge{padding:4px 10px;border-radius:4px;font-size:12px;font-weight:600}.rating-badge.strong_buy{background:#10b98133;color:#34d399}.rating-badge.buy{background:#10b9811a;color:#6ee7b7}.rating-badge.hold{background:#f59e0b26;color:#fbbf24}.rating-badge.sell{background:#ef44441a;color:#fca5a5}.rating-badge.strong_sell{background:#ef444433;color:#f87171}.sentiment-visual-row{display:flex;align-items:center;gap:16px;margin-bottom:12px}.sentiment-gauge{flex:1}.gauge-indicator{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:6px;font-weight:700;font-size:13px}.gauge-indicator.up{background:#10b9811f;color:#34d399}.gauge-indicator.flat{background:#f59e0b1f;color:#fbbf24}.gauge-indicator.down{background:#ef44441f;color:#f87171}.gauge-arrow{font-size:16px}.rating-gauge-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;gap:2px}.rating-gauge-segment{flex:1;border-radius:2px;opacity:.25;transition:opacity .2s}.rating-gauge-segment.strong_sell{background:#ef4444}.rating-gauge-segment.sell{background:#f87171}.rating-gauge-segment.hold{background:#fbbf24}.rating-gauge-segment.buy{background:#6ee7b7}.rating-gauge-segment.strong_buy{background:#10b981}.rating-gauge-segment.active{opacity:1;box-shadow:0 0 6px currentColor}.rating-gauge-label{text-align:center;font-size:11px;font-weight:600;margin-top:4px;color:var(--text-secondary)}.sentiment-sr-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}.sr-column{display:flex;flex-direction:column;gap:3px}.sr-header{font-size:10px;text-transform:uppercase;letter-spacing:.8px;padding-bottom:4px;margin-bottom:2px;border-bottom:1px solid var(--border)}.sr-header--strength{color:#34d399}.sr-header--risk{color:#f87171}.sr-item{display:flex;align-items:baseline;gap:4px;font-size:11px;color:var(--text-secondary);line-height:1.4}.sr-bullet{font-weight:700;flex-shrink:0;width:12px;text-align:center}.sr-item--strength .sr-bullet{color:#34d399}.sr-item--risk .sr-bullet{color:#f87171}.sentiment-narrative{font-size:13px;color:var(--text-secondary);margin-bottom:12px;line-height:1.6}.sentiment-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.strength-tag{font-size:11px;padding:2px 8px;border-radius:10px;background:#10b9811a;color:#34d399}.risk-tag{font-size:11px;padding:2px 8px;border-radius:10px;background:#ef44441a;color:#f87171}.detail-events-section h3{font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:12px}.detail-event-list{display:flex;flex-direction:column;gap:6px}.detail-event-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border)}.detail-event-month{width:40px;text-align:center;font-size:12px;font-weight:700;color:var(--text-muted)}.detail-event-info{flex:1}.detail-event-info .ev-name{font-size:13px;font-weight:600}.detail-event-info .ev-desc{font-size:11px;color:var(--text-muted);margin-top:2px}.detail-event-badge{font-size:10px;padding:2px 8px;border-radius:10px;font-weight:600}.detail-event-badge.earnings{background:#f59e0b33;color:#fbbf24}.detail-event-badge.conference{background:#8b5cf633;color:#a78bfa}.detail-event-badge.product_release{background:#10b98133;color:#34d399}.competitors-section{margin-top:20px}.competitors-section h3{font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:10px}.competitors-list{display:flex;flex-wrap:wrap;gap:6px}.competitor-chip{display:flex;align-items:center;gap:6px;padding:5px 10px;border-radius:6px;background:var(--bg-card);border:1px solid var(--border);cursor:pointer;font-size:12px;color:var(--text-secondary);transition:all .15s}.competitor-chip:hover{background:var(--bg-hover);color:var(--text-primary)}.competitor-chip--unknown{cursor:default;opacity:.5}.competitor-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.competitor-name{font-weight:600}.competitor-ticker{font-size:10px;color:var(--text-muted)}.detail-event-region{font-size:9px;font-weight:600;white-space:nowrap}.region-chip{font-size:11px}.detail-event-link{color:var(--accent);text-decoration:none;font-size:12px}.detail-event-link:hover{text-decoration:underline}.upcoming-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.upcoming-title{font-size:18px;font-weight:700;display:flex;align-items:center;gap:8px}.upcoming-count{font-size:12px;font-weight:600;background:var(--accent);color:#fff;padding:2px 8px;border-radius:10px}.upcoming-range{display:flex;gap:4px;background:var(--bg-card);border-radius:var(--radius);padding:3px}.upcoming-range-btn{padding:4px 12px;border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;background:transparent;color:var(--text-secondary);transition:all .15s}.upcoming-range-btn:hover{color:var(--text-primary)}.upcoming-range-btn.active{background:var(--accent);color:#fff}.upcoming-day-group{margin-bottom:20px}.upcoming-day-header{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);margin-bottom:8px}.upcoming-day-label{font-size:14px;font-weight:700;color:var(--text-primary)}.upcoming-countdown{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;border-radius:4px;background:#f59e0b26;color:#fbbf24}.upcoming-event{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:border-color .15s;margin-bottom:6px}.upcoming-event:hover{border-color:var(--accent)}.upcoming-event--imminent{border-left:3px solid #f59e0b}.upcoming-event-body{flex:1;min-width:0}.upcoming-event-company{font-size:14px;font-weight:600}.upcoming-event-ticker{color:var(--text-muted);font-weight:400;font-size:12px;margin-left:4px}.upcoming-event-name{font-size:12px;color:var(--text-secondary);margin-top:2px}.upcoming-event-sector{font-size:10px;padding:2px 8px;border-radius:10px;white-space:nowrap}.upcoming-event-cat{font-size:10px;padding:2px 8px;border-radius:10px;font-weight:600}.upcoming-event-cat.earnings{background:#f59e0b33;color:#fbbf24}.upcoming-event-cat.conference{background:#8b5cf633;color:#a78bfa}.upcoming-event-cat.product_release{background:#10b98133;color:#34d399}.upcoming-empty{text-align:center;padding:48px 24px;color:var(--text-muted);font-size:14px}.skeleton-group{display:flex;flex-direction:column;gap:8px;padding:4px 0}.skeleton{background:linear-gradient(90deg,var(--bg-hover) 25%,var(--border) 50%,var(--bg-hover) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px}.skeleton--lg{height:28px;width:40%}.skeleton--sm{height:14px;width:60%}.skeleton--bar{height:4px;width:100%;margin-top:4px}.skeleton--row{height:48px;width:100%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.error-boundary-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;color:var(--text-secondary)}.error-boundary-icon{width:48px;height:48px;border-radius:50%;background:#ef444426;color:#f87171;font-size:24px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:16px}.error-boundary-card h3{font-size:16px;color:var(--text-primary);margin-bottom:8px}.error-boundary-card p{font-size:13px;margin-bottom:16px;max-width:400px}.error-boundary-btn{padding:8px 16px;border-radius:var(--radius);border:1px solid var(--accent);background:transparent;color:var(--accent);cursor:pointer;font-size:13px;transition:all .15s}.error-boundary-btn:hover{background:var(--accent);color:#fff}.detail-event-cal-btn{font-size:10px;padding:2px 6px;border-radius:4px;background:#4f8ff71a;color:var(--accent);text-decoration:none;font-weight:600;white-space:nowrap;transition:background .15s}.detail-event-cal-btn:hover{background:#4f8ff740}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@media(max-width:1200px){:root{--label-width: 160px}.sidebar{width:240px;min-width:240px}}@media(max-width:900px){.sidebar{display:none}:root{--label-width: 120px}.htl-company-name{max-width:70px}.list-item{grid-template-columns:28px 80px 140px 1fr 80px}.list-sector-tag{display:none}.header-stats{gap:12px;font-size:12px}}@media(max-width:768px){.app-header{flex-wrap:wrap;gap:8px;padding:12px 16px}.header-stats{order:3;width:100%;justify-content:center}.view-toggle{order:2}.detail-panel{width:100%;max-width:100%}.htl-track{overflow-x:auto}:root{--label-width: 100px}.htl-company-name{max-width:55px;font-size:11px}.htl-company-ticker{font-size:9px}.list-item{grid-template-columns:28px 70px 1fr 80px}.list-company{font-size:12px}.list-event-name{display:none}.competitors-list{gap:4px}.competitor-chip{font-size:11px;padding:3px 6px}.sentiment-sr-grid{grid-template-columns:1fr}}@media(max-width:480px){.app-header{padding:10px 12px}.rec-logo-img{height:28px}.rec-subtitle{font-size:11px}.header-stats{font-size:11px;gap:8px}.calendar-container{padding:12px}:root{--label-width: 80px}.htl-company-name{max-width:40px;font-size:10px}.htl-star-btn{font-size:11px}.htl-row{min-height:30px}.htl-marker{width:8px;height:8px}.detail-panel{padding:16px}.ticker-price{font-size:22px}.ticker-meta{flex-wrap:wrap;gap:8px}.ticker-fundamentals{flex-wrap:wrap;gap:12px}.news-thumb{display:none}.list-item{grid-template-columns:28px 60px 1fr}.list-category-badge{display:none}}
