00e1845f2c
- 消除 !important 滥用:134 → 49(仅保留 Leaflet/图表所必需项),浅色主题使用 html.light 选择器获得更高优先级 - 修复 font-weight:13 个文件中所有 760/850/860/880/950 等非标准值已映射为 Inter 支持的 300–800 - 移除未加载的 Geist 字体声明,替换为 Inter - 添加全局 :focus-visible 轮廓环、跳过链接、Tab ARIA 属性(role/aria-selected) - 统一断点体系:18 → 10(480/640/768/960/1024/1200/1280/1360/1440/1680) - 创建 scan-root-styles.ts 桶文件,将 22 个 CSS Module 导入合并为 1 个 - Token 迁移:10 个文件中数百处硬编码颜色(#4DA3FF/#E6EDF3/#9FB2C7/#6B7A90)已替换为 CSS 变量 - 去重 @keyframes:spin 4→1、loading-spin 2→0、pulse-pending 已移至 globals.css - 添加统一的 empty/error/retry 状态组件 - 添加全局 prefers-reduced-motion 支持 - 修复 accent-primary 与 accent-secondary 相同值的问题 - 修复 accent-green 类错误渲染为蓝色 - 添加 CSS 渐变品牌 Logo - 移除死代码(1,697 行):public/static/style.css + public/legacy/index.html - Dashboard.module.css 本地变量已桥接至全局 token - 提升文字对比度:#6B7A90 → #7D8FA3 Fixed: !important-134-to-49, font-weight-13-files, Geist-removal, focus-visible, breakpoints-18-to-10, CSS-module-barrel, token-migration-10-files, keyframe-dedup, dead-code-removal, accent-color-fix, contrast-improvement Scope: frontend CSS architecture, design tokens, accessibility, responsive breakpoints Tested: npx tsc --noEmit
2249 lines
50 KiB
CSS
2249 lines
50 KiB
CSS
/* ── Homepage Intelligence Layer ── */
|
|
.root :global(.home-intelligence-panel) {
|
|
position: fixed;
|
|
top: calc(var(--header-height) + 16px);
|
|
right: 18px;
|
|
bottom: 20px;
|
|
width: min(360px, calc(100vw - var(--sidebar-width) - 56px));
|
|
z-index: 890;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 16px;
|
|
padding: 18px;
|
|
overflow: hidden;
|
|
border: 1px solid rgba(34, 211, 238, 0.18);
|
|
border-radius: 24px;
|
|
background:
|
|
radial-gradient(
|
|
circle at 18% 0%,
|
|
rgba(34, 211, 238, 0.16),
|
|
transparent 32%
|
|
),
|
|
radial-gradient(
|
|
circle at 100% 20%,
|
|
rgba(59, 130, 246, 0.18),
|
|
transparent 34%
|
|
),
|
|
linear-gradient(155deg, rgba(5, 12, 25, 0.86), rgba(12, 19, 35, 0.78));
|
|
backdrop-filter: blur(24px) saturate(130%);
|
|
box-shadow:
|
|
0 28px 80px rgba(0, 0, 0, 0.42),
|
|
inset 0 1px 0 rgba(255, 255, 255, 0.06);
|
|
animation: home-panel-enter 520ms cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
}
|
|
|
|
.root :global(.home-panel-glow) {
|
|
position: absolute;
|
|
inset: -28% -30% auto auto;
|
|
width: 260px;
|
|
height: 260px;
|
|
border-radius: 999px;
|
|
background: radial-gradient(
|
|
circle,
|
|
rgba(34, 211, 238, 0.18),
|
|
transparent 62%
|
|
);
|
|
pointer-events: none;
|
|
}
|
|
|
|
.root :global(.home-panel-kicker),
|
|
.root :global(.home-panel-airport),
|
|
.root :global(.home-signal-label),
|
|
.root :global(.home-pro-card span),
|
|
.root :global(.opportunity-strip-heading span) {
|
|
color: rgba(148, 163, 184, 0.92);
|
|
font-size: 10px;
|
|
font-weight: 800;
|
|
letter-spacing: 0.16em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.root :global(.home-panel-kicker) {
|
|
position: relative;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.root :global(.home-panel-pulse) {
|
|
width: 8px;
|
|
height: 8px;
|
|
border-radius: 999px;
|
|
background: var(--accent-cyan);
|
|
box-shadow: 0 0 18px rgba(34, 211, 238, 0.7);
|
|
animation: pulse 2s ease-in-out infinite;
|
|
}
|
|
|
|
.root :global(.home-panel-city) {
|
|
position: relative;
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
gap: 16px;
|
|
}
|
|
|
|
.root :global(.home-panel-city h2) {
|
|
margin-top: 6px;
|
|
color: #f8fafc;
|
|
font-size: clamp(28px, 4vw, 42px);
|
|
font-weight: 900;
|
|
line-height: 0.92;
|
|
letter-spacing: -0.07em;
|
|
}
|
|
|
|
.root :global(.home-risk-badge) {
|
|
flex-shrink: 0;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
min-height: 26px;
|
|
border-radius: 999px;
|
|
padding: 5px 10px 5px 8px;
|
|
border: 1px solid rgba(148, 163, 184, 0.2);
|
|
background: rgba(9, 18, 36, 0.58);
|
|
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
|
|
color: rgba(226, 232, 240, 0.88);
|
|
font-size: 10px;
|
|
font-weight: 900;
|
|
letter-spacing: 0.01em;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.root :global(.home-risk-badge::before) {
|
|
content: "";
|
|
width: 6px;
|
|
height: 6px;
|
|
border-radius: 999px;
|
|
background: currentColor;
|
|
opacity: 0.88;
|
|
box-shadow: 0 0 8px color-mix(in srgb, currentColor 24%, transparent);
|
|
}
|
|
|
|
.root :global(.home-risk-badge.high) {
|
|
border-color: rgba(248, 113, 113, 0.34);
|
|
color: #fda4af;
|
|
background: rgba(69, 10, 10, 0.32);
|
|
}
|
|
|
|
.root :global(.home-risk-badge.medium) {
|
|
border-color: rgba(251, 191, 36, 0.3);
|
|
color: #fcd34d;
|
|
background: rgba(67, 36, 6, 0.28);
|
|
}
|
|
|
|
.root :global(.home-risk-badge.low) {
|
|
border-color: rgba(52, 211, 153, 0.28);
|
|
color: #86efac;
|
|
background: rgba(7, 47, 35, 0.28);
|
|
}
|
|
|
|
.root :global(.home-panel-subtitle) {
|
|
max-width: 310px;
|
|
color: rgba(203, 213, 225, 0.78);
|
|
font-size: 13px;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.root :global(.home-metric-grid) {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 10px;
|
|
}
|
|
|
|
.root :global(.home-metric-card) {
|
|
min-height: 86px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
padding: 13px;
|
|
border: 1px solid rgba(148, 163, 184, 0.13);
|
|
border-radius: 18px;
|
|
background: rgba(2, 6, 23, 0.36);
|
|
}
|
|
|
|
.root :global(.home-metric-card.primary) {
|
|
background:
|
|
linear-gradient(135deg, rgba(34, 211, 238, 0.2), rgba(59, 130, 246, 0.08)),
|
|
rgba(2, 6, 23, 0.42);
|
|
border-color: rgba(34, 211, 238, 0.24);
|
|
}
|
|
|
|
.root :global(.home-metric-card span) {
|
|
color: rgba(148, 163, 184, 0.86);
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.root :global(.home-metric-card strong) {
|
|
color: #f8fafc;
|
|
font-size: 24px;
|
|
font-weight: 900;
|
|
letter-spacing: -0.06em;
|
|
}
|
|
|
|
.root :global(.home-signal-card) {
|
|
display: grid;
|
|
grid-template-columns: 48px 1fr;
|
|
gap: 14px;
|
|
padding: 14px;
|
|
border: 1px solid rgba(34, 211, 238, 0.16);
|
|
border-radius: 20px;
|
|
background: rgba(8, 13, 27, 0.48);
|
|
}
|
|
|
|
.root :global(.home-signal-line) {
|
|
display: flex;
|
|
align-items: flex-end;
|
|
justify-content: center;
|
|
gap: 5px;
|
|
height: 68px;
|
|
}
|
|
|
|
.root :global(.home-signal-line span) {
|
|
width: 7px;
|
|
border-radius: 999px;
|
|
background: linear-gradient(180deg, #22d3ee, #3b82f6);
|
|
opacity: 0.88;
|
|
animation: home-signal-wave 1.8s ease-in-out infinite;
|
|
}
|
|
|
|
.root :global(.home-signal-line span:nth-child(1)) {
|
|
height: 32px;
|
|
}
|
|
|
|
.root :global(.home-signal-line span:nth-child(2)) {
|
|
height: 56px;
|
|
animation-delay: 180ms;
|
|
}
|
|
|
|
.root :global(.home-signal-line span:nth-child(3)) {
|
|
height: 42px;
|
|
animation-delay: 360ms;
|
|
}
|
|
|
|
.root :global(.home-signal-card strong) {
|
|
display: block;
|
|
margin: 5px 0 4px;
|
|
color: #e2e8f0;
|
|
font-size: 15px;
|
|
}
|
|
|
|
.root :global(.home-signal-card p) {
|
|
color: rgba(148, 163, 184, 0.9);
|
|
font-size: 12px;
|
|
line-height: 1.55;
|
|
}
|
|
|
|
.root :global(.home-pro-card) {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 14px;
|
|
padding: 14px;
|
|
border: 1px solid rgba(251, 191, 36, 0.26);
|
|
border-radius: 20px;
|
|
background:
|
|
linear-gradient(135deg, rgba(251, 191, 36, 0.1), transparent 60%),
|
|
rgba(15, 23, 42, 0.52);
|
|
}
|
|
|
|
.root :global(.home-pro-card.active) {
|
|
border-color: rgba(34, 211, 238, 0.28);
|
|
background:
|
|
linear-gradient(135deg, rgba(34, 211, 238, 0.12), transparent 60%),
|
|
rgba(15, 23, 42, 0.52);
|
|
}
|
|
|
|
.root :global(.home-pro-card strong) {
|
|
display: block;
|
|
margin-top: 5px;
|
|
color: #f8fafc;
|
|
font-size: 12px;
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.root :global(.home-pro-card a),
|
|
.root :global(.home-pro-card button) {
|
|
flex-shrink: 0;
|
|
border: 1px solid rgba(34, 211, 238, 0.32);
|
|
border-radius: 999px;
|
|
background: rgba(34, 211, 238, 0.1);
|
|
color: #a5f3fc;
|
|
cursor: pointer;
|
|
font: inherit;
|
|
font-size: 12px;
|
|
font-weight: 800;
|
|
padding: 8px 12px;
|
|
text-decoration: none;
|
|
transition:
|
|
transform 160ms ease,
|
|
border-color 160ms ease,
|
|
background 160ms ease;
|
|
}
|
|
|
|
.root :global(.home-pro-card a:hover),
|
|
.root :global(.home-pro-card button:hover) {
|
|
transform: translateY(-1px);
|
|
border-color: rgba(34, 211, 238, 0.62);
|
|
background: rgba(34, 211, 238, 0.16);
|
|
}
|
|
|
|
.root :global(.home-intelligence-panel.full) {
|
|
bottom: 18px;
|
|
width: min(372px, calc(100vw - var(--sidebar-width) - 56px));
|
|
gap: 14px;
|
|
overflow-y: auto;
|
|
border-color: rgba(34, 211, 238, 0.22);
|
|
background:
|
|
radial-gradient(
|
|
circle at 100% 0%,
|
|
rgba(37, 99, 235, 0.18),
|
|
transparent 38%
|
|
),
|
|
radial-gradient(
|
|
circle at 0% 100%,
|
|
rgba(34, 211, 238, 0.06),
|
|
transparent 32%
|
|
),
|
|
linear-gradient(165deg, rgba(3, 10, 22, 0.96), rgba(5, 18, 38, 0.94));
|
|
box-shadow:
|
|
inset 1px 0 0 rgba(255, 255, 255, 0.04),
|
|
-10px 0 34px rgba(0, 0, 0, 0.18);
|
|
}
|
|
|
|
.root :global(.home-intelligence-panel.full::-webkit-scrollbar) {
|
|
width: 4px;
|
|
}
|
|
|
|
.root :global(.home-intelligence-panel.full::-webkit-scrollbar-thumb) {
|
|
background: rgba(34, 211, 238, 0.28);
|
|
border-radius: 999px;
|
|
}
|
|
|
|
/* Close button removed — panel always visible */
|
|
|
|
.root :global(.home-panel-header-left) {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.root :global(.home-panel-live-indicator) {
|
|
width: 7px;
|
|
height: 7px;
|
|
border-radius: 999px;
|
|
background: #22c55e;
|
|
box-shadow: 0 0 10px rgba(34, 197, 94, 0.6);
|
|
animation: pulse 2s ease-in-out infinite;
|
|
}
|
|
|
|
.root :global(.home-panel-header) {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 10px;
|
|
padding-bottom: 10px;
|
|
border-bottom: 1px solid rgba(115, 137, 161, 0.12);
|
|
}
|
|
|
|
.root :global(.home-focus-title) {
|
|
color: rgba(226, 232, 240, 0.92);
|
|
font-size: 10px;
|
|
font-weight: 800;
|
|
letter-spacing: 0.14em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.root :global(.home-why-link) {
|
|
border: 1px solid rgba(96, 165, 250, 0.22);
|
|
border-radius: 999px;
|
|
padding: 4px 10px;
|
|
background: rgba(96, 165, 250, 0.06);
|
|
color: #93c5fd;
|
|
cursor: pointer;
|
|
font: inherit;
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
transition: all 180ms ease;
|
|
}
|
|
|
|
.root :global(.home-why-link:hover) {
|
|
border-color: rgba(96, 165, 250, 0.42);
|
|
background: rgba(96, 165, 250, 0.12);
|
|
color: #bfdbfe;
|
|
}
|
|
|
|
.root :global(.home-top-opportunity-label) {
|
|
display: inline-flex;
|
|
align-self: flex-start;
|
|
align-items: center;
|
|
gap: 7px;
|
|
padding: 5px 8px;
|
|
border: 1px solid rgba(34, 211, 238, 0.18);
|
|
border-radius: 999px;
|
|
background: rgba(8, 145, 178, 0.1);
|
|
color: var(--color-accent-secondary);
|
|
font-size: 10px;
|
|
font-weight: 900;
|
|
letter-spacing: 0.12em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.root :global(.home-top-opportunity-label::before) {
|
|
content: "";
|
|
width: 6px;
|
|
height: 6px;
|
|
border-radius: 999px;
|
|
background: #22c55e;
|
|
box-shadow: 0 0 12px rgba(34, 197, 94, 0.72);
|
|
}
|
|
|
|
.root :global(.home-card-titlebar) {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
gap: 14px;
|
|
}
|
|
|
|
.root :global(.home-card-titlebar h2) {
|
|
color: #f8fafc;
|
|
font-size: 22px;
|
|
font-weight: 900;
|
|
line-height: 1;
|
|
letter-spacing: -0.045em;
|
|
}
|
|
|
|
.root :global(.home-card-titlebar p),
|
|
.root :global(.home-card-meta-row) {
|
|
color: rgba(148, 163, 184, 0.88);
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.root :global(.home-card-titlebar p) {
|
|
margin-top: 7px;
|
|
}
|
|
|
|
.root :global(.home-card-meta-row) {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.root :global(.home-card-live-dot) {
|
|
width: 6px;
|
|
height: 6px;
|
|
border-radius: 999px;
|
|
background: #22c55e;
|
|
box-shadow: 0 0 12px rgba(34, 197, 94, 0.72);
|
|
}
|
|
|
|
.root :global(.home-weather-hero) {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) 130px;
|
|
gap: 14px;
|
|
align-items: center;
|
|
padding: 16px;
|
|
border: 1px solid rgba(34, 211, 238, 0.14);
|
|
border-radius: 18px;
|
|
background:
|
|
radial-gradient(
|
|
circle at 88% 24%,
|
|
rgba(245, 158, 11, 0.12),
|
|
transparent 24%
|
|
),
|
|
linear-gradient(180deg, rgba(8, 16, 30, 0.62), rgba(4, 10, 22, 0.36));
|
|
}
|
|
|
|
.root :global(.home-weather-main strong) {
|
|
display: block;
|
|
color: #f8fafc;
|
|
font-size: 62px;
|
|
font-weight: 900;
|
|
line-height: 0.96;
|
|
letter-spacing: -0.08em;
|
|
}
|
|
|
|
.root :global(.home-weather-label),
|
|
.root :global(.home-weather-sub),
|
|
.root :global(.home-weather-stat span),
|
|
.root :global(.home-weather-stat small) {
|
|
display: block;
|
|
color: rgba(148, 163, 184, 0.88);
|
|
font-size: 12px;
|
|
}
|
|
|
|
.root :global(.home-weather-label) {
|
|
margin-bottom: 8px;
|
|
color: var(--color-accent-secondary);
|
|
font-size: 10px;
|
|
font-weight: 900;
|
|
letter-spacing: 0.14em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.root :global(.home-weather-sub) {
|
|
margin-top: 10px;
|
|
}
|
|
|
|
.root :global(.home-weather-side) {
|
|
display: grid;
|
|
justify-items: end;
|
|
gap: 10px;
|
|
}
|
|
|
|
.root :global(.home-weather-icon) {
|
|
position: relative;
|
|
width: 88px;
|
|
height: 76px;
|
|
}
|
|
|
|
.root :global(.home-weather-stat) {
|
|
min-width: 118px;
|
|
padding: 9px 10px;
|
|
border: 1px solid rgba(148, 163, 184, 0.12);
|
|
border-radius: 12px;
|
|
background: rgba(2, 8, 18, 0.35);
|
|
text-align: right;
|
|
}
|
|
|
|
.root :global(.home-weather-stat strong) {
|
|
display: block;
|
|
margin-top: 3px;
|
|
color: #f8fafc;
|
|
font-size: 18px;
|
|
font-weight: 900;
|
|
}
|
|
|
|
.root :global(.home-weather-stat small) {
|
|
margin-top: 2px;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.root :global(.home-weather-icon .sun),
|
|
.root :global(.home-weather-icon .mist),
|
|
.root :global(.home-weather-icon .wind),
|
|
.root :global(.home-weather-icon .bolt) {
|
|
position: absolute;
|
|
}
|
|
|
|
.root :global(.home-weather-icon .sun) {
|
|
top: 8px;
|
|
left: 6px;
|
|
width: 26px;
|
|
height: 26px;
|
|
border-radius: 999px;
|
|
background: radial-gradient(circle, #fde68a 0%, #f59e0b 70%, #f97316 100%);
|
|
box-shadow:
|
|
0 0 0 7px rgba(251, 191, 36, 0.12),
|
|
0 0 22px rgba(245, 158, 11, 0.26);
|
|
}
|
|
|
|
.root :global(.home-weather-icon .cloud) {
|
|
position: absolute;
|
|
border-radius: 999px;
|
|
background: linear-gradient(180deg, #b8c4d2, #6B7A90);
|
|
filter: drop-shadow(0 10px 18px rgba(0, 0, 0, 0.28));
|
|
}
|
|
|
|
.root :global(.home-weather-icon .cloud-a) {
|
|
left: 10px;
|
|
top: 24px;
|
|
width: 70px;
|
|
height: 30px;
|
|
}
|
|
|
|
.root :global(.home-weather-icon .cloud-b) {
|
|
left: 31px;
|
|
top: 10px;
|
|
width: 37px;
|
|
height: 37px;
|
|
}
|
|
|
|
.root :global(.home-weather-icon .rain) {
|
|
position: absolute;
|
|
top: 58px;
|
|
width: 4px;
|
|
height: 13px;
|
|
border-radius: 999px;
|
|
background: var(--color-accent-primary);
|
|
transform: rotate(18deg);
|
|
}
|
|
|
|
.root :global(.home-weather-icon .rain-a) {
|
|
left: 29px;
|
|
}
|
|
|
|
.root :global(.home-weather-icon .rain-b) {
|
|
left: 48px;
|
|
}
|
|
|
|
.root :global(.home-weather-icon .rain-c) {
|
|
left: 67px;
|
|
}
|
|
|
|
.root :global(.home-weather-icon .mist) {
|
|
left: 20px;
|
|
width: 46px;
|
|
height: 2px;
|
|
border-radius: 999px;
|
|
background: rgba(191, 219, 254, 0.85);
|
|
box-shadow: 0 0 10px rgba(148, 163, 184, 0.18);
|
|
}
|
|
|
|
.root :global(.home-weather-icon .mist-a) {
|
|
top: 58px;
|
|
}
|
|
|
|
.root :global(.home-weather-icon .mist-b) {
|
|
top: 64px;
|
|
left: 28px;
|
|
width: 38px;
|
|
}
|
|
|
|
.root :global(.home-weather-icon .wind) {
|
|
left: 20px;
|
|
width: 44px;
|
|
height: 2px;
|
|
border-radius: 999px;
|
|
background: linear-gradient(
|
|
90deg,
|
|
rgba(125, 211, 252, 0),
|
|
rgba(125, 211, 252, 0.92)
|
|
);
|
|
}
|
|
|
|
.root :global(.home-weather-icon .wind::after) {
|
|
content: "";
|
|
position: absolute;
|
|
right: -3px;
|
|
top: -1px;
|
|
width: 9px;
|
|
height: 4px;
|
|
border-top: 2px solid rgba(125, 211, 252, 0.92);
|
|
border-right: 2px solid rgba(125, 211, 252, 0.92);
|
|
border-radius: 0 8px 0 0;
|
|
}
|
|
|
|
.root :global(.home-weather-icon .wind-a) {
|
|
top: 28px;
|
|
}
|
|
|
|
.root :global(.home-weather-icon .wind-b) {
|
|
top: 42px;
|
|
left: 30px;
|
|
width: 34px;
|
|
}
|
|
|
|
.root :global(.home-weather-icon .bolt) {
|
|
top: 44px;
|
|
left: 20px;
|
|
width: 0;
|
|
height: 0;
|
|
border-left: 6px solid transparent;
|
|
border-right: 2px solid transparent;
|
|
border-top: 18px solid #fbbf24;
|
|
transform: skewX(-16deg);
|
|
filter: drop-shadow(0 0 12px rgba(251, 191, 36, 0.32));
|
|
}
|
|
|
|
.root :global(.home-weather-icon .bolt::after) {
|
|
content: "";
|
|
position: absolute;
|
|
left: -5px;
|
|
top: -4px;
|
|
width: 0;
|
|
height: 0;
|
|
border-left: 5px solid transparent;
|
|
border-right: 2px solid transparent;
|
|
border-top: 12px solid #fde047;
|
|
transform: translateX(5px) translateY(8px);
|
|
}
|
|
|
|
.root :global(.home-weather-icon.weather-clear .cloud),
|
|
.root :global(.home-weather-icon.weather-clear .rain),
|
|
.root :global(.home-weather-icon.weather-clear .mist),
|
|
.root :global(.home-weather-icon.weather-clear .wind),
|
|
.root :global(.home-weather-icon.weather-clear .bolt) {
|
|
display: none;
|
|
}
|
|
|
|
.root :global(.home-weather-icon.weather-partly .rain),
|
|
.root :global(.home-weather-icon.weather-partly .mist),
|
|
.root :global(.home-weather-icon.weather-partly .wind),
|
|
.root :global(.home-weather-icon.weather-partly .bolt) {
|
|
display: none;
|
|
}
|
|
|
|
.root :global(.home-weather-icon.weather-cloudy .sun),
|
|
.root :global(.home-weather-icon.weather-cloudy .rain),
|
|
.root :global(.home-weather-icon.weather-cloudy .mist),
|
|
.root :global(.home-weather-icon.weather-cloudy .wind),
|
|
.root :global(.home-weather-icon.weather-cloudy .bolt) {
|
|
display: none;
|
|
}
|
|
|
|
.root :global(.home-weather-icon.weather-rain .sun),
|
|
.root :global(.home-weather-icon.weather-rain .mist),
|
|
.root :global(.home-weather-icon.weather-rain .wind),
|
|
.root :global(.home-weather-icon.weather-rain .bolt) {
|
|
display: none;
|
|
}
|
|
|
|
.root :global(.home-weather-icon.weather-storm .sun),
|
|
.root :global(.home-weather-icon.weather-storm .mist),
|
|
.root :global(.home-weather-icon.weather-storm .wind) {
|
|
display: none;
|
|
}
|
|
|
|
.root :global(.home-weather-icon.weather-mist .sun),
|
|
.root :global(.home-weather-icon.weather-mist .rain),
|
|
.root :global(.home-weather-icon.weather-mist .wind),
|
|
.root :global(.home-weather-icon.weather-mist .bolt) {
|
|
display: none;
|
|
}
|
|
|
|
.root :global(.home-weather-icon.weather-wind .sun),
|
|
.root :global(.home-weather-icon.weather-wind .rain),
|
|
.root :global(.home-weather-icon.weather-wind .mist),
|
|
.root :global(.home-weather-icon.weather-wind .bolt) {
|
|
display: none;
|
|
}
|
|
|
|
.root :global(.home-max-so-far) {
|
|
grid-column: 2;
|
|
color: rgba(203, 213, 225, 0.86);
|
|
font-size: 12px;
|
|
text-align: right;
|
|
}
|
|
|
|
.root :global(.home-max-so-far strong) {
|
|
display: block;
|
|
margin-top: 4px;
|
|
font-size: 16px;
|
|
letter-spacing: -0.03em;
|
|
}
|
|
|
|
.root :global(.home-max-so-far small) {
|
|
color: rgba(148, 163, 184, 0.9);
|
|
font-size: 11px;
|
|
}
|
|
|
|
.root :global(.home-deb-card),
|
|
.root :global(.home-card-section) {
|
|
border-radius: 14px;
|
|
border: 1px solid rgba(115, 137, 161, 0.12);
|
|
background: linear-gradient(
|
|
180deg,
|
|
rgba(8, 16, 30, 0.88),
|
|
rgba(6, 12, 24, 0.74)
|
|
);
|
|
box-shadow:
|
|
inset 0 1px 0 rgba(255, 255, 255, 0.04),
|
|
0 2px 8px rgba(0, 0, 0, 0.18);
|
|
transition: border-color 200ms ease;
|
|
}
|
|
|
|
.root :global(.home-deb-card:hover),
|
|
.root :global(.home-card-section:hover) {
|
|
border-color: rgba(34, 211, 238, 0.18);
|
|
}
|
|
|
|
.root :global(.home-deb-card) {
|
|
display: flex;
|
|
align-items: baseline;
|
|
justify-content: space-between;
|
|
gap: 10px;
|
|
padding: 12px 14px;
|
|
}
|
|
|
|
.root :global(.home-deb-card span),
|
|
.root :global(.home-card-section h3) {
|
|
color: var(--color-accent-secondary);
|
|
font-size: 12px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.root :global(.home-deb-card small),
|
|
.root :global(.home-card-section h3 small) {
|
|
color: rgba(148, 163, 184, 0.82);
|
|
font-weight: 700;
|
|
}
|
|
|
|
.root :global(.home-deb-card strong) {
|
|
display: inline-block;
|
|
margin-top: 9px;
|
|
color: #f8fafc;
|
|
font-size: 26px;
|
|
font-weight: 900;
|
|
letter-spacing: -0.055em;
|
|
}
|
|
|
|
.root :global(.home-deb-card em) {
|
|
margin-left: 10px;
|
|
color: #f87171;
|
|
font-size: 12px;
|
|
font-style: normal;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.root :global(.home-market-metrics svg) {
|
|
width: 100%;
|
|
height: 42px;
|
|
}
|
|
|
|
.root :global(.home-market-metrics polyline) {
|
|
fill: none;
|
|
stroke: #18e6d4;
|
|
stroke-linecap: round;
|
|
stroke-linejoin: round;
|
|
stroke-width: 2.2;
|
|
}
|
|
|
|
.root :global(.home-card-section) {
|
|
padding: 12px 14px;
|
|
}
|
|
|
|
.root :global(.home-card-section h3) {
|
|
margin-bottom: 10px;
|
|
color: rgba(226, 232, 240, 0.94);
|
|
}
|
|
|
|
.root :global(.home-card-section.intraday) {
|
|
border-color: rgba(34, 211, 238, 0.2);
|
|
background:
|
|
radial-gradient(
|
|
circle at 0% 35%,
|
|
rgba(34, 211, 238, 0.12),
|
|
transparent 44%
|
|
),
|
|
linear-gradient(180deg, rgba(7, 14, 26, 0.94), rgba(9, 17, 30, 0.82));
|
|
}
|
|
|
|
.root :global(.home-intraday-chart) {
|
|
position: relative;
|
|
padding: 6px 0 18px 34px;
|
|
}
|
|
|
|
.root :global(.home-intraday-chart svg) {
|
|
width: calc(100% - 34px);
|
|
margin-left: 34px;
|
|
height: 78px;
|
|
}
|
|
|
|
.root :global(.home-intraday-y-axis) {
|
|
position: absolute;
|
|
inset: 0 auto 18px 0;
|
|
width: 30px;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.root :global(.home-intraday-y-label) {
|
|
position: absolute;
|
|
left: 0;
|
|
transform: translateY(-50%);
|
|
color: rgba(148, 163, 184, 0.72);
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.root :global(.home-intraday-x-axis) {
|
|
position: absolute;
|
|
left: 34px;
|
|
right: 10px;
|
|
bottom: 0;
|
|
height: 14px;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.root :global(.home-intraday-x-label) {
|
|
position: absolute;
|
|
bottom: 0;
|
|
transform: translateX(-50%);
|
|
color: rgba(148, 163, 184, 0.72);
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.root :global(.home-intraday-chart line) {
|
|
stroke: rgba(115, 137, 161, 0.14);
|
|
stroke-width: 0.9;
|
|
}
|
|
|
|
.root :global(.home-intraday-chart polyline) {
|
|
fill: none;
|
|
stroke: #22d3ee;
|
|
stroke-width: 1.8;
|
|
stroke-linecap: round;
|
|
stroke-linejoin: round;
|
|
filter: drop-shadow(0 0 8px rgba(34, 211, 238, 0.22));
|
|
}
|
|
|
|
.root :global(.home-intraday-chart circle) {
|
|
fill: var(--color-accent-primary);
|
|
stroke: rgba(15, 23, 42, 0.92);
|
|
stroke-width: 1.6;
|
|
filter: drop-shadow(0 0 10px rgba(56, 189, 248, 0.28));
|
|
}
|
|
|
|
.root :global(.home-intraday-reports) {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 7px;
|
|
margin-top: 8px;
|
|
}
|
|
|
|
.root :global(.home-intraday-reports span) {
|
|
min-width: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 6px;
|
|
padding: 7px 8px;
|
|
border: 1px solid rgba(34, 211, 238, 0.12);
|
|
border-radius: 10px;
|
|
background: rgba(2, 8, 18, 0.55);
|
|
}
|
|
|
|
.root :global(.home-intraday-reports b) {
|
|
color: rgba(148, 163, 184, 0.9);
|
|
font-size: 10px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.root :global(.home-intraday-reports strong) {
|
|
color: #e0f2fe;
|
|
font-size: 11px;
|
|
font-weight: 900;
|
|
}
|
|
|
|
.root :global(.home-card-section.forecast) {
|
|
border-color: rgba(99, 102, 241, 0.24);
|
|
}
|
|
|
|
.root :global(.home-forecast-grid) {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
gap: 8px;
|
|
}
|
|
|
|
.root :global(.home-forecast-item) {
|
|
min-width: 0;
|
|
padding: 10px 8px;
|
|
border: 1px solid rgba(148, 163, 184, 0.14);
|
|
border-radius: 12px;
|
|
background: rgba(15, 23, 42, 0.5);
|
|
text-align: center;
|
|
}
|
|
|
|
.root :global(.home-forecast-item span) {
|
|
display: block;
|
|
color: rgba(148, 163, 184, 0.84);
|
|
font-size: 10px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.root :global(.home-forecast-item strong) {
|
|
display: block;
|
|
margin-top: 6px;
|
|
color: #f8fafc;
|
|
font-size: 16px;
|
|
font-weight: 900;
|
|
letter-spacing: -0.04em;
|
|
}
|
|
|
|
.root :global(.home-model-stack) {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 7px;
|
|
}
|
|
|
|
.root :global(.home-model-stack span) {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
padding: 6px 8px;
|
|
border: 1px solid rgba(148, 163, 184, 0.18);
|
|
border-radius: 6px;
|
|
background: rgba(15, 23, 42, 0.72);
|
|
color: rgba(226, 232, 240, 0.92);
|
|
font-size: 11px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.root :global(.home-model-stack i),
|
|
.root :global(.key-signals i.active) {
|
|
width: 6px;
|
|
height: 6px;
|
|
border-radius: 999px;
|
|
background: #22c55e;
|
|
box-shadow: 0 0 10px rgba(34, 197, 94, 0.62);
|
|
}
|
|
|
|
.root :global(.home-card-section.probability) {
|
|
border-color: rgba(251, 113, 133, 0.18);
|
|
background:
|
|
radial-gradient(
|
|
circle at 100% 0%,
|
|
rgba(251, 113, 133, 0.08),
|
|
transparent 42%
|
|
),
|
|
linear-gradient(180deg, rgba(7, 14, 26, 0.94), rgba(9, 17, 30, 0.82));
|
|
}
|
|
|
|
.root :global(.home-probability-list),
|
|
.root :global(.home-probability-ladder) {
|
|
display: grid;
|
|
gap: 8px;
|
|
}
|
|
|
|
.root :global(.home-probability-row),
|
|
.root :global(.home-probability-ladder-row) {
|
|
display: grid;
|
|
grid-template-columns: 58px minmax(0, 1fr) 42px;
|
|
align-items: center;
|
|
gap: 9px;
|
|
color: rgba(226, 232, 240, 0.95);
|
|
font-size: 12px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.root :global(.home-probability-row div),
|
|
.root :global(.home-probability-track) {
|
|
position: relative;
|
|
height: 14px;
|
|
overflow: hidden;
|
|
border-radius: 999px;
|
|
background: rgba(115, 137, 161, 0.12);
|
|
}
|
|
|
|
.root :global(.home-probability-row i),
|
|
.root :global(.home-probability-track i) {
|
|
position: absolute;
|
|
inset: 0 auto 0 0;
|
|
border-radius: inherit;
|
|
background: linear-gradient(90deg, #3b82f6, #18e6d4);
|
|
box-shadow: 0 0 10px rgba(34, 211, 238, 0.14);
|
|
}
|
|
|
|
.root :global(.home-probability-row strong),
|
|
.root :global(.home-probability-ladder-row strong) {
|
|
position: relative;
|
|
z-index: 1;
|
|
display: block;
|
|
color: #f8fafc;
|
|
font-size: 12px;
|
|
line-height: 1;
|
|
text-align: right;
|
|
}
|
|
|
|
.root :global(.home-probability-threshold) {
|
|
color: rgba(226, 232, 240, 0.95);
|
|
font-size: 12px;
|
|
font-weight: 900;
|
|
}
|
|
|
|
.root :global(.home-card-empty) {
|
|
color: rgba(148, 163, 184, 0.9);
|
|
font-size: 12px;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.root :global(.home-card-section.market) {
|
|
position: relative;
|
|
border-color: rgba(34, 211, 238, 0.16);
|
|
}
|
|
|
|
.root :global(.home-card-section.market.locked) {
|
|
border-color: rgba(251, 191, 36, 0.28);
|
|
}
|
|
|
|
.root :global(.home-market-header),
|
|
.root :global(.home-market-ticket),
|
|
.root :global(.home-market-prices),
|
|
.root :global(.home-market-metrics) {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.root :global(.home-market-header),
|
|
.root :global(.home-market-ticket) {
|
|
justify-content: space-between;
|
|
gap: 10px;
|
|
}
|
|
|
|
.root :global(.home-market-header span) {
|
|
color: rgba(148, 163, 184, 0.88);
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.root :global(.home-market-ticket) {
|
|
margin-top: 8px;
|
|
}
|
|
|
|
.root :global(.home-market-question strong) {
|
|
display: block;
|
|
color: #f8fafc;
|
|
font-size: 15px;
|
|
}
|
|
|
|
.root :global(.home-market-question span) {
|
|
display: block;
|
|
margin-top: 3px;
|
|
color: rgba(148, 163, 184, 0.8);
|
|
font-size: 11px;
|
|
}
|
|
|
|
.root :global(.home-market-prices) {
|
|
gap: 6px;
|
|
}
|
|
|
|
.root :global(.home-market-prices span) {
|
|
border-radius: 7px;
|
|
padding: 7px 9px;
|
|
font-size: 12px;
|
|
font-weight: 900;
|
|
}
|
|
|
|
.root :global(.home-market-prices .yes) {
|
|
color: var(--color-accent-secondary);
|
|
background: rgba(8, 145, 178, 0.2);
|
|
}
|
|
|
|
.root :global(.home-market-prices .no) {
|
|
color: #fca5a5;
|
|
background: rgba(127, 29, 29, 0.24);
|
|
}
|
|
|
|
.root :global(.home-market-metrics) {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr)) 94px;
|
|
gap: 8px;
|
|
margin-top: 10px;
|
|
}
|
|
|
|
.root :global(.home-market-metrics span) {
|
|
color: rgba(148, 163, 184, 0.84);
|
|
font-size: 11px;
|
|
}
|
|
|
|
.root :global(.home-market-metrics strong) {
|
|
display: block;
|
|
margin-top: 3px;
|
|
color: #22c55e;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.root :global(.home-market-lock) {
|
|
display: inline-flex;
|
|
margin-top: 10px;
|
|
color: #fde68a;
|
|
font-size: 12px;
|
|
font-weight: 800;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.root :global(.key-signals) {
|
|
border-color: transparent;
|
|
background: transparent;
|
|
padding: 0 4px;
|
|
}
|
|
|
|
.root :global(.key-signals ul) {
|
|
display: grid;
|
|
gap: 7px;
|
|
list-style: none;
|
|
}
|
|
|
|
.root :global(.key-signals li) {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
color: rgba(203, 213, 225, 0.88);
|
|
font-size: 12px;
|
|
}
|
|
|
|
.root :global(.key-signals i) {
|
|
width: 8px;
|
|
height: 8px;
|
|
border-radius: 999px;
|
|
background: rgba(148, 163, 184, 0.42);
|
|
}
|
|
|
|
.root :global(.key-signals i.amber.active) {
|
|
background: #f59e0b;
|
|
box-shadow: 0 0 10px rgba(245, 158, 11, 0.62);
|
|
}
|
|
|
|
.root :global(.key-signals p) {
|
|
margin-top: 9px;
|
|
color: rgba(100, 116, 139, 0.9);
|
|
font-size: 11px;
|
|
}
|
|
|
|
.root :global(.home-intelligence-panel.full .home-pro-card) {
|
|
margin-top: 0;
|
|
}
|
|
|
|
.root :global(.home-opportunity-strip) {
|
|
position: fixed;
|
|
left: calc(var(--sidebar-width) + 22px);
|
|
right: 392px;
|
|
bottom: 18px;
|
|
z-index: 880;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 16px;
|
|
padding: 16px;
|
|
border: 1px solid rgba(148, 163, 184, 0.14);
|
|
border-radius: 24px;
|
|
background:
|
|
radial-gradient(
|
|
circle at 82% -10%,
|
|
rgba(59, 130, 246, 0.14),
|
|
transparent 34%
|
|
),
|
|
radial-gradient(
|
|
circle at 8% 50%,
|
|
rgba(34, 211, 238, 0.12),
|
|
transparent 32%
|
|
),
|
|
rgba(7, 13, 25, 0.76);
|
|
backdrop-filter: blur(20px) saturate(130%);
|
|
box-shadow: 0 24px 70px rgba(0, 0, 0, 0.34);
|
|
animation: opportunity-strip-enter 580ms cubic-bezier(0.16, 1, 0.3, 1) 120ms
|
|
both;
|
|
}
|
|
|
|
.root :global(.opportunity-strip-topline) {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
gap: 18px;
|
|
}
|
|
|
|
.root :global(.opportunity-strip-copy) {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 7px;
|
|
min-width: 0;
|
|
flex: 1;
|
|
}
|
|
|
|
.root :global(.opportunity-strip-kicker) {
|
|
color: rgba(148, 163, 184, 0.8);
|
|
font-size: 11px;
|
|
font-weight: 800;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.root :global(.opportunity-strip-copy strong) {
|
|
color: #f8fafc;
|
|
font-size: 19px;
|
|
font-weight: 800;
|
|
line-height: 1.25;
|
|
letter-spacing: -0.02em;
|
|
}
|
|
|
|
.root :global(.opportunity-strip-copy p) {
|
|
max-width: 620px;
|
|
color: rgba(191, 219, 254, 0.74);
|
|
font-size: 12px;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.root :global(.opportunity-strip-tape) {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 10px;
|
|
justify-content: flex-end;
|
|
max-width: 460px;
|
|
}
|
|
|
|
.root :global(.opportunity-tape-pill) {
|
|
display: flex;
|
|
min-width: 92px;
|
|
flex-direction: column;
|
|
gap: 3px;
|
|
padding: 10px 12px;
|
|
border-radius: 14px;
|
|
border: 1px solid rgba(148, 163, 184, 0.16);
|
|
background: rgba(9, 16, 30, 0.7);
|
|
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02);
|
|
}
|
|
|
|
.root :global(.opportunity-tape-pill span) {
|
|
color: rgba(148, 163, 184, 0.82);
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.04em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.root :global(.opportunity-tape-pill strong) {
|
|
color: #f8fafc;
|
|
font-size: 16px;
|
|
font-weight: 800;
|
|
line-height: 1;
|
|
}
|
|
|
|
.root :global(.opportunity-tape-pill.accent-cyan strong) {
|
|
color: var(--color-accent-secondary);
|
|
}
|
|
|
|
.root :global(.opportunity-tape-pill.accent-green strong) {
|
|
color: #4ade80;
|
|
}
|
|
|
|
.root :global(.opportunity-tape-pill.accent-slate strong) {
|
|
color: rgba(226, 232, 240, 0.78);
|
|
}
|
|
|
|
.root :global(.opportunity-tape-pill.accent-outline) {
|
|
min-width: auto;
|
|
justify-content: center;
|
|
padding: 9px 11px;
|
|
background: rgba(6, 11, 23, 0.62);
|
|
}
|
|
|
|
.root :global(.opportunity-tape-pill.accent-outline span) {
|
|
color: rgba(191, 219, 254, 0.92);
|
|
font-size: 11px;
|
|
letter-spacing: 0;
|
|
text-transform: none;
|
|
}
|
|
|
|
.root :global(.opportunity-strip-main) {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.92fr);
|
|
gap: 14px;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-card) {
|
|
position: relative;
|
|
overflow: hidden;
|
|
min-width: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 16px;
|
|
min-height: 244px;
|
|
padding: 18px;
|
|
border: 1px solid rgba(56, 189, 248, 0.18);
|
|
border-radius: 22px;
|
|
background:
|
|
radial-gradient(
|
|
circle at 100% 0%,
|
|
rgba(14, 165, 233, 0.22),
|
|
transparent 28%
|
|
),
|
|
radial-gradient(
|
|
circle at 12% 88%,
|
|
rgba(16, 185, 129, 0.1),
|
|
transparent 28%
|
|
),
|
|
linear-gradient(135deg, rgba(7, 14, 28, 0.96), rgba(12, 27, 48, 0.92));
|
|
color: inherit;
|
|
cursor: pointer;
|
|
font: inherit;
|
|
text-align: left;
|
|
box-shadow:
|
|
0 18px 42px rgba(2, 6, 23, 0.28),
|
|
inset 0 1px 0 rgba(255, 255, 255, 0.04);
|
|
transition:
|
|
transform 160ms ease,
|
|
border-color 160ms ease,
|
|
box-shadow 160ms ease;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-card:hover) {
|
|
transform: translateY(-2px);
|
|
border-color: rgba(34, 211, 238, 0.36);
|
|
box-shadow:
|
|
0 24px 52px rgba(2, 6, 23, 0.36),
|
|
0 0 0 1px rgba(34, 211, 238, 0.08);
|
|
}
|
|
|
|
.root :global(.opportunity-hero-header) {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
gap: 18px;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-copy) {
|
|
display: flex;
|
|
min-width: 0;
|
|
flex: 1;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-kicker) {
|
|
color: var(--color-accent-secondary);
|
|
font-size: 11px;
|
|
font-weight: 800;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-title-row) {
|
|
display: flex;
|
|
align-items: baseline;
|
|
gap: 10px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-title-row strong) {
|
|
overflow: hidden;
|
|
color: #f8fafc;
|
|
font-size: 28px;
|
|
font-weight: 800;
|
|
line-height: 1;
|
|
letter-spacing: -0.04em;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-date) {
|
|
color: rgba(186, 230, 253, 0.76);
|
|
font-size: 12px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-copy p) {
|
|
max-width: 520px;
|
|
color: rgba(226, 232, 240, 0.82);
|
|
font-size: 13px;
|
|
line-height: 1.55;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-tags) {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
justify-content: flex-end;
|
|
gap: 8px;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-tag) {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-height: 30px;
|
|
padding: 0 11px;
|
|
border-radius: 999px;
|
|
border: 1px solid rgba(148, 163, 184, 0.16);
|
|
background: rgba(7, 13, 25, 0.58);
|
|
color: rgba(226, 232, 240, 0.92);
|
|
font-size: 11px;
|
|
font-weight: 800;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-tag.engine) {
|
|
border-color: rgba(34, 211, 238, 0.24);
|
|
color: var(--color-accent-secondary);
|
|
}
|
|
|
|
.root :global(.opportunity-hero-tag.signal-yes) {
|
|
border-color: rgba(74, 222, 128, 0.26);
|
|
color: #86efac;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-tag.signal-no) {
|
|
border-color: rgba(251, 113, 133, 0.24);
|
|
color: #fda4af;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-tag.signal-neutral) {
|
|
color: rgba(191, 219, 254, 0.88);
|
|
}
|
|
|
|
.root :global(.opportunity-hero-tag.risk.high) {
|
|
border-color: rgba(251, 113, 133, 0.24);
|
|
color: #fda4af;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-tag.risk.medium) {
|
|
border-color: rgba(251, 191, 36, 0.24);
|
|
color: #fcd34d;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-tag.risk.low) {
|
|
border-color: rgba(74, 222, 128, 0.24);
|
|
color: #86efac;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-body) {
|
|
display: grid;
|
|
gap: 14px;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-edgeblock) {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
padding: 14px 16px;
|
|
border-radius: 18px;
|
|
border: 1px solid rgba(34, 211, 238, 0.18);
|
|
background: linear-gradient(
|
|
135deg,
|
|
rgba(8, 15, 28, 0.84),
|
|
rgba(13, 30, 52, 0.82)
|
|
);
|
|
}
|
|
|
|
.root :global(.opportunity-hero-edgeblock span) {
|
|
color: rgba(148, 163, 184, 0.8);
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-edgeblock strong) {
|
|
color: #4ade80;
|
|
font-size: 44px;
|
|
font-weight: 900;
|
|
line-height: 0.95;
|
|
letter-spacing: -0.05em;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-edgeblock em) {
|
|
color: rgba(191, 219, 254, 0.84);
|
|
font-size: 12px;
|
|
font-style: normal;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-metrics) {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
gap: 10px;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-metric) {
|
|
display: flex;
|
|
min-width: 0;
|
|
flex-direction: column;
|
|
gap: 5px;
|
|
padding: 12px 13px;
|
|
border-radius: 14px;
|
|
border: 1px solid rgba(148, 163, 184, 0.14);
|
|
background: rgba(9, 16, 30, 0.6);
|
|
}
|
|
|
|
.root :global(.opportunity-hero-metric span) {
|
|
color: rgba(148, 163, 184, 0.8);
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-metric strong) {
|
|
overflow: hidden;
|
|
color: #f8fafc;
|
|
font-size: 20px;
|
|
font-weight: 800;
|
|
line-height: 1;
|
|
letter-spacing: -0.03em;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-book) {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(110px, 132px)) minmax(0, 1fr);
|
|
gap: 12px;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.root :global(.opportunity-book-side) {
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
gap: 6px;
|
|
padding: 12px 14px;
|
|
border-radius: 16px;
|
|
border: 1px solid rgba(148, 163, 184, 0.16);
|
|
background: rgba(6, 11, 23, 0.62);
|
|
}
|
|
|
|
.root :global(.opportunity-book-side span) {
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.root :global(.opportunity-book-side strong) {
|
|
font-size: 26px;
|
|
font-weight: 800;
|
|
line-height: 1;
|
|
letter-spacing: -0.03em;
|
|
}
|
|
|
|
.root :global(.opportunity-book-side.yes) {
|
|
border-color: rgba(34, 211, 238, 0.22);
|
|
}
|
|
|
|
.root :global(.opportunity-book-side.yes span),
|
|
.root :global(.opportunity-book-side.yes strong) {
|
|
color: #22d3ee;
|
|
}
|
|
|
|
.root :global(.opportunity-book-side.no) {
|
|
border-color: rgba(251, 113, 133, 0.22);
|
|
}
|
|
|
|
.root :global(.opportunity-book-side.no span),
|
|
.root :global(.opportunity-book-side.no strong) {
|
|
color: #fda4af;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-sparkline-wrap) {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
padding: 12px 14px;
|
|
border-radius: 16px;
|
|
border: 1px solid rgba(148, 163, 184, 0.14);
|
|
background:
|
|
radial-gradient(
|
|
circle at 100% 0%,
|
|
rgba(59, 130, 246, 0.14),
|
|
transparent 32%
|
|
),
|
|
rgba(8, 15, 28, 0.66);
|
|
}
|
|
|
|
.root :global(.opportunity-hero-sparkline-wrap span) {
|
|
color: rgba(148, 163, 184, 0.8);
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-sparkline) {
|
|
width: 100%;
|
|
height: 44px;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-sparkline polyline) {
|
|
fill: none;
|
|
stroke: #18e6d4;
|
|
stroke-width: 2.4;
|
|
stroke-linecap: round;
|
|
stroke-linejoin: round;
|
|
filter: drop-shadow(0 0 10px rgba(34, 211, 238, 0.26));
|
|
}
|
|
|
|
.root :global(.opportunity-hero-footer) {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
color: rgba(191, 219, 254, 0.82);
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.root :global(.opportunity-side-grid) {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 12px;
|
|
}
|
|
|
|
.root :global(.opportunity-side-tile) {
|
|
display: flex;
|
|
min-height: 116px;
|
|
flex-direction: column;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
padding: 14px;
|
|
border-radius: 18px;
|
|
border: 1px solid rgba(148, 163, 184, 0.14);
|
|
background:
|
|
radial-gradient(
|
|
circle at 100% 0%,
|
|
rgba(30, 64, 175, 0.12),
|
|
transparent 30%
|
|
),
|
|
rgba(9, 16, 30, 0.68);
|
|
}
|
|
|
|
.root :global(.opportunity-side-tile-head span) {
|
|
color: rgba(241, 245, 249, 0.92);
|
|
font-size: 13px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.root :global(.opportunity-side-tile-body) {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 8px;
|
|
}
|
|
|
|
.root :global(.opportunity-side-stat) {
|
|
display: flex;
|
|
min-width: 0;
|
|
flex-direction: column;
|
|
gap: 4px;
|
|
}
|
|
|
|
.root :global(.opportunity-side-stat b) {
|
|
overflow: hidden;
|
|
color: #f8fafc;
|
|
font-size: 24px;
|
|
font-weight: 800;
|
|
line-height: 1;
|
|
letter-spacing: -0.04em;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.root :global(.opportunity-side-stat span) {
|
|
color: rgba(148, 163, 184, 0.82);
|
|
font-size: 10px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.root :global(.opportunity-side-stat b.accent-red) {
|
|
color: #fb7185;
|
|
}
|
|
|
|
.root :global(.opportunity-side-stat b.accent-amber) {
|
|
color: #fbbf24;
|
|
}
|
|
|
|
.root :global(.opportunity-side-stat b.accent-green) {
|
|
color: #4ade80;
|
|
}
|
|
|
|
.root :global(.opportunity-side-stat b.accent-cyan) {
|
|
color: #22d3ee;
|
|
}
|
|
|
|
.root :global(.opportunity-mini-grid) {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
gap: 12px;
|
|
}
|
|
|
|
.root :global(.opportunity-empty-state) {
|
|
display: flex;
|
|
min-height: 168px;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 0 18px;
|
|
border: 1px dashed rgba(34, 211, 238, 0.2);
|
|
border-radius: 16px;
|
|
background:
|
|
radial-gradient(
|
|
circle at 50% 0%,
|
|
rgba(34, 211, 238, 0.08),
|
|
transparent 44%
|
|
),
|
|
rgba(7, 12, 22, 0.72);
|
|
}
|
|
|
|
.root :global(.opportunity-empty-copy) {
|
|
display: grid;
|
|
gap: 6px;
|
|
justify-items: center;
|
|
text-align: center;
|
|
}
|
|
|
|
.root :global(.opportunity-empty-copy strong) {
|
|
color: rgba(241, 245, 249, 0.94);
|
|
font-size: 15px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.root :global(.opportunity-empty-copy span) {
|
|
color: rgba(148, 163, 184, 0.88);
|
|
font-size: 12px;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.root :global(.opportunity-mini-card) {
|
|
position: relative;
|
|
overflow: hidden;
|
|
min-width: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
min-height: 152px;
|
|
padding: 14px;
|
|
border: 1px solid rgba(148, 163, 184, 0.14);
|
|
border-radius: 18px;
|
|
background:
|
|
radial-gradient(
|
|
circle at 100% 0%,
|
|
rgba(30, 64, 175, 0.12),
|
|
transparent 32%
|
|
),
|
|
rgba(10, 16, 28, 0.84);
|
|
color: inherit;
|
|
cursor: pointer;
|
|
font: inherit;
|
|
text-align: left;
|
|
transition:
|
|
transform 160ms ease,
|
|
border-color 160ms ease,
|
|
background 160ms ease;
|
|
}
|
|
|
|
.root :global(.opportunity-mini-card:hover) {
|
|
transform: translateY(-2px);
|
|
border-color: rgba(34, 211, 238, 0.32);
|
|
background:
|
|
radial-gradient(
|
|
circle at 100% 0%,
|
|
rgba(30, 64, 175, 0.18),
|
|
transparent 32%
|
|
),
|
|
rgba(15, 23, 42, 0.92);
|
|
}
|
|
|
|
.root :global(.opportunity-mini-head) {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
gap: 8px;
|
|
}
|
|
|
|
.root :global(.opportunity-mini-rank) {
|
|
width: 30px;
|
|
height: 30px;
|
|
border-radius: 12px;
|
|
border: 1px solid rgba(148, 163, 184, 0.2);
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: #f8fafc;
|
|
font-size: 13px;
|
|
font-weight: 800;
|
|
flex-shrink: 0;
|
|
background: rgba(6, 11, 23, 0.46);
|
|
}
|
|
|
|
.root :global(.opportunity-mini-copy) {
|
|
display: flex;
|
|
min-width: 0;
|
|
flex: 1;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
}
|
|
|
|
.root :global(.opportunity-pill) {
|
|
margin-left: auto;
|
|
padding: 4px 8px;
|
|
border-radius: 999px;
|
|
font-size: 10px;
|
|
font-weight: 800;
|
|
border: 1px solid rgba(148, 163, 184, 0.18);
|
|
color: rgba(226, 232, 240, 0.86);
|
|
}
|
|
|
|
.root :global(.opportunity-pill.high) {
|
|
color: #fda4af;
|
|
border-color: rgba(251, 113, 133, 0.26);
|
|
}
|
|
|
|
.root :global(.opportunity-pill.medium) {
|
|
color: #fbbf24;
|
|
border-color: rgba(251, 191, 36, 0.24);
|
|
}
|
|
|
|
.root :global(.opportunity-pill.low) {
|
|
color: #4ade80;
|
|
border-color: rgba(74, 222, 128, 0.24);
|
|
}
|
|
|
|
.root :global(.opportunity-mini-copy strong) {
|
|
overflow: hidden;
|
|
color: #f8fafc;
|
|
font-size: 15px;
|
|
font-weight: 800;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.root :global(.opportunity-mini-copy p) {
|
|
display: -webkit-box;
|
|
overflow: hidden;
|
|
color: rgba(203, 213, 225, 0.88);
|
|
font-size: 11px;
|
|
line-height: 1.45;
|
|
min-height: 32px;
|
|
-webkit-line-clamp: 2;
|
|
-webkit-box-orient: vertical;
|
|
}
|
|
|
|
.root :global(.opportunity-mini-metrics) {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 10px;
|
|
}
|
|
|
|
.root :global(.opportunity-yes) {
|
|
color: #22d3ee;
|
|
font-size: 12px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.root :global(.opportunity-no) {
|
|
color: #fda4af;
|
|
font-size: 12px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.root :global(.opportunity-edge) {
|
|
color: rgba(34, 211, 238, 0.9);
|
|
font-size: 18px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.root :global(.opportunity-mini-sparkline) {
|
|
width: 100%;
|
|
height: 28px;
|
|
margin-top: auto;
|
|
}
|
|
|
|
.root :global(.opportunity-mini-sparkline polyline) {
|
|
fill: none;
|
|
stroke: #18e6d4;
|
|
stroke-width: 2;
|
|
stroke-linecap: round;
|
|
stroke-linejoin: round;
|
|
filter: drop-shadow(0 0 8px rgba(34, 211, 238, 0.22));
|
|
}
|
|
|
|
/* ── Light Theme Dashboard Overrides ── */
|
|
:global(html.light) .root {
|
|
background:
|
|
radial-gradient(
|
|
circle at 22% 12%,
|
|
rgba(14, 165, 233, 0.16),
|
|
transparent 28%
|
|
),
|
|
radial-gradient(
|
|
circle at 78% 0%,
|
|
rgba(59, 130, 246, 0.12),
|
|
transparent 24%
|
|
),
|
|
linear-gradient(180deg, #f8fbff 0%, #e7f1fb 100%);
|
|
}
|
|
|
|
:global(html.light) .root :global(.map) {
|
|
background: #dfeefa;
|
|
border-color: rgba(36, 68, 104, 0.18);
|
|
filter: none;
|
|
box-shadow:
|
|
0 28px 80px rgba(31, 64, 104, 0.18),
|
|
inset 0 1px 0 rgba(255, 255, 255, 0.86);
|
|
}
|
|
|
|
:global(html.light) .root :global(.map .leaflet-tile) {
|
|
filter: saturate(1.08) contrast(0.98) brightness(1.02);
|
|
}
|
|
|
|
:global(html.light) .weatherAura {
|
|
opacity: 0.22;
|
|
mix-blend-mode: multiply;
|
|
}
|
|
|
|
:global(html.light) .weatherAuraScrim {
|
|
background:
|
|
linear-gradient(
|
|
180deg,
|
|
rgba(248, 252, 255, 0.2) 0%,
|
|
rgba(248, 252, 255, 0.08) 42%,
|
|
rgba(226, 239, 250, 0.28) 100%
|
|
),
|
|
radial-gradient(
|
|
circle at 50% 58%,
|
|
rgba(14, 165, 233, 0.08) 0%,
|
|
rgba(14, 165, 233, 0) 52%
|
|
);
|
|
}
|
|
|
|
:global(html.light) .root :global(.home-panel-city h2),
|
|
:global(html.light) .root :global(.home-weather-main strong),
|
|
:global(html.light) .root :global(.home-weather-stat strong),
|
|
:global(html.light) .root :global(.home-deb-card strong),
|
|
:global(html.light) .root :global(.home-card-section h3),
|
|
:global(html.light) .root :global(.opportunity-strip-copy strong),
|
|
:global(html.light) .root :global(.opportunity-hero-title-row strong),
|
|
:global(html.light) .root :global(.opportunity-hero-metric strong),
|
|
:global(html.light) .root :global(.opportunity-hero-edgeblock strong),
|
|
:global(html.light) .root :global(.opportunity-book-side strong),
|
|
:global(html.light) .root :global(.opportunity-side-stat b),
|
|
:global(html.light) .root :global(.opportunity-mini-copy strong),
|
|
:global(html.light) .root :global(.city-item .city-name-text) {
|
|
color: #0b1726;
|
|
}
|
|
|
|
:global(html.light) .root :global(.home-panel-subtitle),
|
|
:global(html.light) .root :global(.home-weather-sub),
|
|
:global(html.light) .root :global(.home-weather-label),
|
|
:global(html.light) .root :global(.home-weather-stat span),
|
|
:global(html.light) .root :global(.home-weather-stat small),
|
|
:global(html.light) .root :global(.home-deb-card small),
|
|
:global(html.light) .root :global(.home-card-section h3 small),
|
|
:global(html.light) .root :global(.opportunity-strip-kicker),
|
|
:global(html.light) .root :global(.opportunity-strip-copy p),
|
|
:global(html.light) .root :global(.opportunity-tape-pill span),
|
|
:global(html.light) .root :global(.opportunity-hero-kicker),
|
|
:global(html.light) .root :global(.opportunity-hero-date),
|
|
:global(html.light) .root :global(.opportunity-hero-copy p),
|
|
:global(html.light) .root :global(.opportunity-hero-metric span),
|
|
:global(html.light) .root :global(.opportunity-hero-edgeblock span),
|
|
:global(html.light) .root :global(.opportunity-hero-edgeblock em),
|
|
:global(html.light) .root :global(.opportunity-hero-footer),
|
|
:global(html.light) .root :global(.opportunity-side-tile-head span),
|
|
:global(html.light) .root :global(.opportunity-side-stat span),
|
|
:global(html.light) .root :global(.opportunity-mini-copy p),
|
|
:global(html.light) .root :global(.city-group-title),
|
|
:global(html.light) .root :global(.home-panel-kicker),
|
|
:global(html.light) .root :global(.home-panel-airport) {
|
|
color: rgba(66, 84, 108, 0.86);
|
|
}
|
|
|
|
:global(html.light) .root :global(.header) {
|
|
background: rgba(248, 252, 255, 0.9);
|
|
border-bottom-color: rgba(36, 68, 104, 0.14);
|
|
box-shadow: 0 12px 34px rgba(31, 64, 104, 0.08);
|
|
}
|
|
|
|
:global(html.light) .root :global(.brand-mark) {
|
|
background: rgba(255, 255, 255, 0.82);
|
|
border-color: rgba(14, 165, 233, 0.24);
|
|
box-shadow:
|
|
inset 0 0 0 1px rgba(255, 255, 255, 0.72),
|
|
0 10px 24px rgba(31, 64, 104, 0.12);
|
|
}
|
|
|
|
:global(html.light) .root :global(.locale-switch) {
|
|
background: rgba(255, 255, 255, 0.82);
|
|
border-color: rgba(36, 68, 104, 0.16);
|
|
color: rgba(66, 84, 108, 0.78);
|
|
}
|
|
|
|
:global(html.light) .root :global(.locale-switch span.active) {
|
|
color: #075985;
|
|
background: rgba(14, 165, 233, 0.14);
|
|
box-shadow: inset 0 0 0 1px rgba(14, 165, 233, 0.22);
|
|
}
|
|
|
|
:global(html.light) .root :global(.city-list),
|
|
:global(html.light) .root :global(.home-intelligence-panel),
|
|
:global(html.light) .root :global(.home-opportunity-strip) {
|
|
background:
|
|
radial-gradient(
|
|
circle at 12% 0%,
|
|
rgba(14, 165, 233, 0.08),
|
|
transparent 34%
|
|
),
|
|
rgba(248, 252, 255, 0.9);
|
|
border-color: rgba(36, 68, 104, 0.16);
|
|
box-shadow: 0 28px 70px rgba(31, 64, 104, 0.14);
|
|
color: #0b1726;
|
|
}
|
|
|
|
:global(html.light) .root :global(.home-summary-card),
|
|
:global(html.light) .root :global(.opportunity-hero-card),
|
|
:global(html.light) .root :global(.opportunity-side-tile),
|
|
:global(html.light) .root :global(.opportunity-mini-card),
|
|
:global(html.light) .root :global(.opportunity-tape-pill),
|
|
:global(html.light) .root :global(.opportunity-hero-metric),
|
|
:global(html.light) .root :global(.opportunity-book-side),
|
|
:global(html.light) .root :global(.opportunity-hero-sparkline-wrap),
|
|
:global(html.light) .root :global(.home-deb-card),
|
|
:global(html.light) .root :global(.home-card-section),
|
|
:global(html.light) .root :global(.home-metric-card),
|
|
:global(html.light) .root :global(.home-forecast-item),
|
|
:global(html.light) .root :global(.home-intraday-reports span) {
|
|
background:
|
|
radial-gradient(
|
|
circle at 100% 0%,
|
|
rgba(14, 165, 233, 0.08),
|
|
transparent 36%
|
|
),
|
|
rgba(255, 255, 255, 0.92);
|
|
border-color: rgba(36, 68, 104, 0.14);
|
|
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82);
|
|
color: #0b1726;
|
|
}
|
|
|
|
:global(html.light) .root :global(.home-weather-hero) {
|
|
background: linear-gradient(
|
|
135deg,
|
|
rgba(238, 246, 255, 0.98),
|
|
rgba(216, 233, 248, 0.92)
|
|
);
|
|
border-color: rgba(36, 68, 104, 0.14);
|
|
}
|
|
|
|
:global(html.light) .root :global(.home-card-section.intraday),
|
|
:global(html.light) .root :global(.home-card-section.probability) {
|
|
background:
|
|
radial-gradient(circle at 0% 25%, rgba(14, 165, 233, 0.1), transparent 42%),
|
|
rgba(255, 255, 255, 0.92);
|
|
}
|
|
|
|
:global(html.light) .root :global(.home-intraday-chart line) {
|
|
stroke: rgba(66, 84, 108, 0.16);
|
|
}
|
|
|
|
:global(html.light) .root :global(.home-intraday-reports strong),
|
|
:global(html.light) .root :global(.home-probability-threshold),
|
|
:global(html.light) .root :global(.home-market-question strong),
|
|
:global(html.light) .root :global(.home-market-metrics strong),
|
|
:global(html.light) .root :global(.home-forecast-item strong) {
|
|
color: #0b1726;
|
|
}
|
|
|
|
:global(html.light) .root :global(.home-probability-row div),
|
|
:global(html.light) .root :global(.home-probability-track) {
|
|
background: rgba(37, 57, 82, 0.12);
|
|
}
|
|
|
|
:global(html.light) .root :global(.city-group) {
|
|
background: rgba(255, 255, 255, 0.54);
|
|
border-color: rgba(36, 68, 104, 0.12);
|
|
}
|
|
|
|
:global(html.light) .root :global(.city-group-header:hover),
|
|
:global(html.light) .root :global(.city-item:hover) {
|
|
background: rgba(221, 235, 250, 0.86);
|
|
}
|
|
|
|
:global(html.light) .root :global(.city-item.active) {
|
|
background:
|
|
linear-gradient(90deg, rgba(14, 165, 233, 0.18), rgba(14, 165, 233, 0.06)),
|
|
rgba(255, 255, 255, 0.88);
|
|
border-color: rgba(14, 165, 233, 0.42);
|
|
}
|
|
|
|
:global(html.light) .root :global(.leaflet-control-attribution),
|
|
:global(html.light) .root :global(.leaflet-control-zoom a) {
|
|
background: rgba(248, 252, 255, 0.86) !important;
|
|
border-color: rgba(36, 68, 104, 0.16) !important;
|
|
color: #0b1726 !important;
|
|
}
|
|
|
|
@keyframes home-panel-enter {
|
|
from {
|
|
opacity: 0;
|
|
transform: translate3d(24px, 0, 0) scale(0.98);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translate3d(0, 0, 0) scale(1);
|
|
}
|
|
}
|
|
|
|
@keyframes opportunity-strip-enter {
|
|
from {
|
|
opacity: 0;
|
|
transform: translate3d(0, 22px, 0);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translate3d(0, 0, 0);
|
|
}
|
|
}
|
|
|
|
@keyframes home-signal-wave {
|
|
0%,
|
|
100% {
|
|
transform: scaleY(0.72);
|
|
opacity: 0.68;
|
|
}
|
|
50% {
|
|
transform: scaleY(1);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 1360px) {
|
|
.root :global(.map) {
|
|
right: 18px;
|
|
}
|
|
|
|
.root :global(.home-intelligence-panel) {
|
|
display: none;
|
|
}
|
|
|
|
.root :global(.home-opportunity-strip) {
|
|
right: 18px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 1280px) {
|
|
.root :global(.opportunity-strip-topline) {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.root :global(.opportunity-strip-tape) {
|
|
max-width: none;
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
.root :global(.opportunity-hero-metrics) {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.root :global(.opportunity-hero-book) {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.root :global(.opportunity-hero-sparkline-wrap) {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
.root :global(.opportunity-mini-grid) {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
@media (max-width: 1024px) {
|
|
.root :global(.map) {
|
|
left: 18px;
|
|
bottom: 188px;
|
|
}
|
|
|
|
.root :global(.home-opportunity-strip) {
|
|
left: 18px;
|
|
}
|
|
|
|
.root :global(.opportunity-strip-main) {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.root :global(.opportunity-side-grid) {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.root :global(.map) {
|
|
inset: var(--header-height) 0 0;
|
|
border-radius: 0;
|
|
border-left: 0;
|
|
border-right: 0;
|
|
}
|
|
|
|
.root :global(.home-opportunity-strip) {
|
|
display: none;
|
|
}
|
|
}
|