/* Scan terminal mobile action-card layout and responsive overrides. */ .root :global(.scan-mobile-decision-card) { display: grid; gap: 12px; padding-bottom: 14px; } .root :global(.scan-mobile-city-list-view) { display: grid; gap: 14px; padding: 16px; } .root :global(.scan-mobile-city-list-head) { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; border: 1px solid rgba(77, 163, 255, 0.16); border-radius: 20px; background: rgba(5, 12, 24, 0.72); padding: 16px; } .root :global(.scan-mobile-city-list-head span) { display: block; color: var(--color-accent-primary); font-size: 11px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; } .root :global(.scan-mobile-city-list-head strong) { display: block; margin-top: 5px; color: var(--color-text-primary); font-size: 17px; } .root :global(.scan-mobile-city-list-head p) { max-width: 360px; margin: 0; color: var(--color-text-secondary); font-size: 12px; line-height: 1.55; } .root :global(.scan-mobile-city-list) { display: grid; gap: 10px; } .root :global(.scan-mobile-city-row) { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center; width: 100%; border: 1px solid rgba(118, 150, 192, 0.16); border-radius: 18px; background: rgba(8, 18, 35, 0.76); color: inherit; padding: 13px 14px; text-align: left; } .root :global(.scan-mobile-city-rank) { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 12px; background: rgba(77, 163, 255, 0.12); color: var(--color-accent-primary); font-size: 12px; font-weight: 800; } .root :global(.scan-mobile-city-main), .root :global(.scan-mobile-city-metrics) { display: grid; gap: 4px; } .root :global(.scan-mobile-city-main b), .root :global(.scan-mobile-city-metrics b) { color: var(--color-text-primary); font-size: 14px; } .root :global(.scan-mobile-city-main small), .root :global(.scan-mobile-city-metrics small) { color: var(--color-text-secondary); font-size: 11px; } .root :global(.scan-mobile-city-metrics) { justify-items: end; } .root :global(.scan-mobile-decision-head) { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 16px 16px 0; } .root :global(.scan-mobile-decision-head h3) { margin: 6px 0 0; color: var(--color-text-primary); font-size: 24px; line-height: 1.08; } .root :global(.scan-mobile-decision-metrics) { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 0 14px; } .root :global(.scan-mobile-decision-metrics span) { display: grid; gap: 4px; border: 1px solid rgba(77, 163, 255, 0.18); border-radius: 12px; background: rgba(77, 163, 255, 0.09); padding: 9px; } .root :global(.scan-mobile-decision-metrics small) { color: var(--color-text-secondary); font-size: 10px; font-weight: 900; } .root :global(.scan-mobile-decision-metrics b) { color: #f3f8ff; font-size: 13px; line-height: 1.15; } .root :global(.scan-mobile-decision-reason) { margin: 0 14px; border: 1px solid rgba(77, 163, 255, 0.24); border-radius: 13px; background: rgba(77, 163, 255, 0.1); color: #d8e7f8; font-size: 14px; font-weight: 900; line-height: 1.45; padding: 11px 12px; } .root :global(.scan-mobile-decision-card .scan-city-status-tags), .root :global(.scan-mobile-decision-card .scan-city-freshness), .root :global(.scan-mobile-decision-card .scan-ai-market-mobile-line), .root :global(.scan-mobile-decision-folds) { margin-right: 14px; margin-left: 14px; } .root :global(.scan-mobile-decision-card .scan-city-freshness) { grid-template-columns: 1fr; max-width: none; margin-top: 0; } .root :global(.scan-mobile-decision-card .scan-ai-market-mobile-line) { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 0; } .root :global(.scan-mobile-decision-card .scan-ai-market-decision) { display: none; } .root :global(.scan-mobile-decision-folds) { display: grid; gap: 10px; } .root :global(.scan-mobile-fold) { padding: 13px 14px; } .root :global(.scan-mobile-fold summary) { cursor: pointer; list-style: none; margin-bottom: 0; } .root :global(.scan-mobile-fold summary::-webkit-details-marker) { display: none; } .root :global(.scan-mobile-fold[open] summary) { margin-bottom: 10px; } .root :global(.scan-mobile-fold .scan-city-section.models) { border: 0; background: transparent; padding: 0; } .root :global(.scan-city-collapse svg) { transition: transform 0.18s ease; } @media (max-width: 1440px) { .root :global(.scan-terminal) { grid-template-columns: minmax(0, 1fr); } .root :global(.scan-terminal > .detail-panel.scan-city-detail-rail) { position: relative; top: auto; grid-column: 1 / -1; height: auto; max-height: none; min-height: auto; } .root :global(.scan-detail-panel) { grid-column: 1 / -1; min-height: auto; } } @media (max-width: 1024px) { .root :global(.scan-terminal) { grid-template-columns: 1fr; min-height: 100dvh; overflow-x: hidden; } .root :global(.scan-filter-panel), .root :global(.scan-data-grid), .root :global(.scan-detail-panel), .root :global(.scan-terminal > .detail-panel.scan-city-detail-rail) { min-height: auto; } .root :global(.scan-data-grid) { max-height: none; overflow: visible; } .root :global(.scan-list-section), .root :global(.scan-table-shell), .root :global(.scan-ai-workspace) { overflow: visible; } .root :global(.scan-ai-workspace) { max-height: none; } .root :global(.scan-terminal > .detail-panel.scan-city-detail-rail) { width: 100%; min-width: 0; max-width: 100%; } .root :global(.scan-topbar) { flex-direction: column; align-items: flex-start; } .root :global(.scan-upgrade-announcement) { grid-template-columns: 1fr; } .root :global(.scan-upgrade-announcement ul) { justify-content: flex-start; } .root :global(.scan-table-header), .root :global(.scan-table-row) { grid-template-columns: 1fr; } .root :global(.scan-table-header) { display: none; } .root :global(.scan-opportunity-group-head), .root :global(.scan-opportunity-item) { grid-template-columns: 1fr; } .root :global(.scan-forecast-city-head), .root :global(.scan-forecast-row-main), .root :global(.scan-ai-brief-grid), .root :global(.scan-city-analysis-grid), .root :global(.scan-ai-decision-band), .root :global(.scan-ai-evidence-line) { grid-template-columns: 1fr; } .root :global(.scan-ai-workspace-head), .root :global(.scan-mobile-city-list-head), .root :global(.scan-opportunity-hero), .root :global(.scan-city-hero), .root :global(.scan-city-section-head) { flex-direction: column; align-items: flex-start; } .root :global(.scan-opportunity-hero) { display: flex; } .root :global(.scan-ai-workspace-head p), .root :global(.scan-mobile-city-list-head p), .root :global(.scan-city-hero-side) { text-align: left; justify-items: start; } .root :global(.scan-ai-decision-metrics) { min-width: 0; grid-template-columns: 1fr; } .root :global(.scan-ai-market-decision) { grid-template-columns: 1fr; } .root :global(.scan-opportunity-card-grid), .root :global(.scan-opportunity-summary) { grid-template-columns: 1fr; } .root :global(.scan-forecast-city-read) { justify-items: start; text-align: left; } .root :global(.scan-forecast-signals), .root :global(.scan-ai-temperature-line) { grid-template-columns: 1fr; } .root :global(.scan-opportunity-phase) { flex-wrap: wrap; } .root :global(.scan-opportunity-branch) { display: none; } .root :global(.scan-opportunity-stat.edge) { justify-self: start; justify-items: start; } .root :global(.scan-opportunity-ai), .root :global(.scan-v4-analysis) { grid-column: 1 / -1; } .root :global(.scan-v4-analysis) { grid-template-columns: 1fr; } .root :global(.scan-trade-cards) { grid-template-columns: 1fr; } } @media (max-width: 768px) { .root :global(.scan-terminal) { padding: 10px; } .root :global(.scan-data-grid) { padding: 12px; gap: 14px; border-radius: 18px; } .root :global(.scan-topbar-actions) { width: 100%; justify-content: flex-start; gap: 8px; } .root :global(.scan-topbar-title strong) { font-size: 23px; } .root :global(.scan-topbar-title span) { font-size: 13px; } .root :global(.scan-topbar-tabs) { gap: 14px; flex-wrap: wrap; } .root :global(.scan-upgrade-announcement) { padding: 14px; } .root :global(.scan-upgrade-announcement-copy strong) { font-size: 16px; } .root :global(.scan-upgrade-announcement ul) { gap: 6px; } .root :global(.scan-upgrade-announcement li) { font-size: 11px; padding: 6px 8px; } .root :global(.scan-city-hero) { padding: 16px; } .root :global(.scan-city-hero h3) { margin-bottom: 10px; font-size: 24px; } .root :global(.scan-city-mobile-priority) { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0 0 12px; } .root :global(.scan-city-mobile-priority span) { display: grid; gap: 4px; border: 1px solid rgba(77, 163, 255, 0.18); border-radius: 12px; background: rgba(77, 163, 255, 0.09); padding: 9px; } .root :global(.scan-city-mobile-priority small) { color: var(--color-text-secondary); font-size: 10px; font-weight: 900; } .root :global(.scan-city-mobile-priority b) { color: #f3f8ff; font-size: 13px; line-height: 1.15; } .root :global(.scan-city-pills) { display: none; } .root :global(.scan-city-freshness) { grid-template-columns: 1fr; } .root :global(.scan-ai-decision-band) { padding: 14px; } .root :global(.scan-ai-decision-band strong) { font-size: 20px; } .root :global(.scan-ai-market-mobile-line) { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; border: 1px solid rgba(77, 163, 255, 0.18); border-radius: 12px; background: rgba(11, 18, 32, 0.48); padding: 10px 12px; } .root :global(.scan-ai-market-mobile-line span) { color: var(--color-text-secondary); font-size: 12px; font-weight: 900; } .root :global(.scan-ai-market-mobile-line b) { color: var(--color-text-primary); font-size: 13px; text-align: right; } .root :global(.scan-ai-market-decision) { margin-top: 10px; } .root :global(.scan-city-ai-read:not([open])) { padding-bottom: 4px; } .root :global(.scan-list-header) { flex-direction: column; align-items: flex-start; } .root :global(.scan-list-tabs) { width: 100%; gap: 8px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; } .root :global(.scan-list-tabs::-webkit-scrollbar) { display: none; } .root :global(.scan-list-tabs button) { flex: 0 0 auto; min-height: 36px; border: 1px solid rgba(99, 132, 180, 0.18); border-radius: 999px; background: rgba(8, 19, 34, 0.76); padding: 0 12px; font-size: 13px; white-space: nowrap; } .root :global(.scan-list-tabs button.active) { border-color: rgba(77, 163, 255, 0.38); background: rgba(77, 163, 255, 0.16); } .root :global(.scan-list-status) { width: 100%; flex-wrap: wrap; gap: 8px; } .root :global(.scan-opportunity-groups) { padding: 12px; } .root :global(.scan-opportunity-models span) { white-space: normal; } .root :global(.scan-forecast-city-title strong) { font-size: 21px; } .root :global(.scan-forecast-row-main), .root :global(.scan-ai-analysis) { padding: 13px; } .root :global(.scan-forecast-ai-line) { grid-template-columns: 1fr; padding: 0 13px 13px; } } @media (max-width: 640px) { .root :global(.scan-terminal) { box-sizing: border-box; max-width: 100vw; overflow-x: clip; padding: 6px; } .root :global(.scan-data-grid) { box-sizing: border-box; min-width: 0; width: 100%; max-width: 100%; padding: 10px; border-radius: 16px; } .root :global(.scan-topbar-tabs) { max-width: 100%; gap: 8px; } .root :global(.scan-upgrade-announcement) { margin: -2px 0 2px; padding: 12px; border-radius: 16px; } .root :global(.scan-upgrade-announcement-copy p) { display: none; } .root :global(.scan-upgrade-announcement ul) { display: none; } .root :global(.scan-status-chip) { height: 32px; padding: 0 10px; font-size: 11px; } .root :global(.scan-primary-button) { min-height: 38px; padding: 9px 12px; font-size: 13px; } .root :global(.scan-account-button) { width: 38px; height: 38px; } } /* ── Mobile City Picker ── */ .root :global(.scan-mobile-city-picker) { display: flex; flex-direction: column; gap: 12px; padding: 0; min-height: 0; flex: 1; } .root :global(.scan-mobile-picker-search) { position: relative; display: flex; align-items: center; border: 1px solid rgba(77, 163, 255, 0.22); border-radius: 16px; background: rgba(12, 24, 42, 0.88); padding: 0 14px; transition: border-color 0.18s; } .root :global(.scan-mobile-picker-search:focus-within) { border-color: rgba(77, 163, 255, 0.48); box-shadow: 0 0 0 3px rgba(77, 163, 255, 0.08); } .root :global(.scan-mobile-picker-search-icon) { flex: 0 0 auto; color: #7a9cc6; } .root :global(.scan-mobile-picker-search-input) { flex: 1; min-width: 0; height: 48px; border: none; background: transparent; color: var(--color-text-primary); font-size: 15px; font-weight: 500; padding: 0 10px; outline: none; } .root :global(.scan-mobile-picker-search-input::placeholder) { color: #5b7a9e; } .root :global(.scan-mobile-picker-search-clear) { flex: 0 0 auto; width: 28px; height: 28px; display: grid; place-items: center; border: none; border-radius: 8px; background: rgba(148, 163, 184, 0.12); color: #8fa4c3; font-size: 13px; cursor: pointer; } .root :global(.scan-mobile-picker-result-count) { color: var(--color-text-secondary); font-size: 11px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; padding: 0 2px; } .root :global(.scan-mobile-picker-empty) { display: grid; place-items: center; padding: 48px 16px; color: var(--color-text-muted); font-size: 14px; } .root :global(.scan-mobile-picker-regions) { display: flex; flex-direction: column; gap: 6px; flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none; } .root :global(.scan-mobile-picker-regions::-webkit-scrollbar) { display: none; } .root :global(.scan-mobile-picker-region) { border: 1px solid rgba(90, 123, 166, 0.1); border-radius: 16px; background: rgba(8, 18, 35, 0.68); overflow: hidden; } .root :global(.scan-mobile-picker-region-head) { display: flex; align-items: center; justify-content: space-between; width: 100%; border: none; background: transparent; color: inherit; padding: 13px 15px; font-size: 14px; font-weight: 700; cursor: pointer; } .root :global(.scan-mobile-picker-region-head span) { display: inline-flex; align-items: center; gap: 8px; color: var(--color-text-primary); } .root :global(.scan-mobile-picker-region-head small) { display: inline-grid; place-items: center; min-width: 22px; height: 22px; border-radius: 8px; background: rgba(77, 163, 255, 0.14); color: var(--color-accent-primary); font-size: 11px; font-weight: 800; padding: 0 6px; } .root :global(.scan-mobile-picker-region-head svg) { color: #5b7a9e; transition: transform 0.2s ease; } .root :global(.scan-mobile-picker-region-head svg.expanded) { transform: rotate(180deg); } .root :global(.scan-mobile-picker-region-cities) { display: grid; gap: 6px; padding: 0 12px 12px; } .root :global(.scan-mobile-picker-city-row) { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; width: 100%; border: 1px solid rgba(118, 150, 192, 0.12); border-radius: 14px; background: rgba(14, 26, 45, 0.64); color: inherit; padding: 11px 13px; text-align: left; cursor: pointer; transition: border-color 0.15s, background 0.15s; } .root :global(.scan-mobile-picker-city-row:active) { border-color: rgba(77, 163, 255, 0.32); background: rgba(77, 163, 255, 0.08); } .root :global(.scan-mobile-picker-city-name), .root :global(.scan-mobile-picker-city-temp) { display: grid; gap: 3px; min-width: 0; } .root :global(.scan-mobile-picker-city-name b) { color: var(--color-text-primary); font-size: 14px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .root :global(.scan-mobile-picker-city-name small) { color: var(--color-text-muted); font-size: 11px; font-weight: 500; } .root :global(.scan-mobile-picker-city-temp) { justify-items: end; flex: 0 0 auto; } .root :global(.scan-mobile-picker-city-temp b) { color: var(--color-text-primary); font-size: 15px; font-weight: 700; white-space: nowrap; } .root :global(.scan-mobile-picker-city-temp small) { color: var(--color-text-muted); font-size: 11px; font-weight: 500; white-space: nowrap; }