diff --git a/static/css/adsb_dashboard.css b/static/css/adsb_dashboard.css index 170820d..4009113 100644 --- a/static/css/adsb_dashboard.css +++ b/static/css/adsb_dashboard.css @@ -5,8 +5,8 @@ } :root { - --font-sans: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace; - --font-mono: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace; + --font-sans: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif; + --font-mono: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif; --bg-dark: #0b1118; --bg-panel: #101823; --bg-card: #151f2b; diff --git a/static/css/adsb_history.css b/static/css/adsb_history.css index 397747d..45b3512 100644 --- a/static/css/adsb_history.css +++ b/static/css/adsb_history.css @@ -5,8 +5,8 @@ } :root { - --font-sans: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace; - --font-mono: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace; + --font-sans: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif; + --font-mono: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif; --bg-dark: #0b1118; --bg-panel: #101823; --bg-card: #151f2b; diff --git a/static/css/ais_dashboard.css b/static/css/ais_dashboard.css index 319b08a..b69642b 100644 --- a/static/css/ais_dashboard.css +++ b/static/css/ais_dashboard.css @@ -8,8 +8,8 @@ } :root { - --font-sans: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace; - --font-mono: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace; + --font-sans: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif; + --font-mono: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif; --bg-dark: #0b1118; --bg-panel: #101823; --bg-card: #151f2b; @@ -496,7 +496,7 @@ body { padding: 10px 15px; background: rgba(74, 158, 255, 0.05); border-bottom: 1px solid rgba(74, 158, 255, 0.1); - font-family: 'Orbitron', 'Space Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 11px; font-weight: 500; letter-spacing: 2px; @@ -568,7 +568,7 @@ body { } .vessel-name { - font-family: 'Orbitron', 'Space Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 16px; font-weight: 700; color: var(--accent-cyan); @@ -662,7 +662,7 @@ body { } .vessel-item-name { - font-family: 'Orbitron', 'Space Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 12px; font-weight: 600; color: var(--accent-cyan); @@ -1223,7 +1223,7 @@ body { } .dsc-distress-alert .dsc-alert-header { - font-family: 'Orbitron', 'Space Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 24px; font-weight: 700; color: var(--accent-red); diff --git a/static/css/core/variables.css b/static/css/core/variables.css index 06942b6..930d55c 100644 --- a/static/css/core/variables.css +++ b/static/css/core/variables.css @@ -78,8 +78,8 @@ /* ============================================ TYPOGRAPHY ============================================ */ - --font-sans: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace; - --font-mono: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace; + --font-sans: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif; + --font-mono: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif; /* Font sizes */ --text-xs: 10px; diff --git a/static/css/fonts-local.css b/static/css/fonts-local.css index ed3c9e6..30fd2c5 100644 --- a/static/css/fonts-local.css +++ b/static/css/fonts-local.css @@ -1,18 +1,3 @@ /* Local font declarations for offline mode */ - -/* Space Mono - Console font */ -@font-face { - font-family: 'Space Mono'; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url('/static/vendor/fonts/SpaceMono-Regular.woff2') format('woff2'); -} - -@font-face { - font-family: 'Space Mono'; - font-style: normal; - font-weight: 700; - font-display: swap; - src: url('/static/vendor/fonts/SpaceMono-Bold.woff2') format('woff2'); -} +/* Note: Roboto Condensed local files not yet bundled - this is a placeholder */ +/* Font is loaded via Google Fonts CDN; offline mode will fall back to Arial Narrow / system sans-serif */ diff --git a/static/css/global-nav.css b/static/css/global-nav.css index c3951e5..ccccd64 100644 --- a/static/css/global-nav.css +++ b/static/css/global-nav.css @@ -434,6 +434,6 @@ a.nav-dashboard-btn:hover { } .nav-dashboard-btn .nav-label { - font-family: var(--font-mono, 'JetBrains Mono', monospace); + font-family: var(--font-mono, 'Roboto Condensed', 'Arial Narrow', sans-serif); letter-spacing: 0.5px; } diff --git a/static/css/help-modal.css b/static/css/help-modal.css index 51b0a16..dc6c406 100644 --- a/static/css/help-modal.css +++ b/static/css/help-modal.css @@ -14,7 +14,7 @@ z-index: 10000; overflow-y: auto; padding: 40px 20px; - font-family: var(--font-mono, 'IBM Plex Mono', 'Space Mono', ui-monospace, monospace); + font-family: var(--font-mono, 'Roboto Condensed', 'Arial Narrow', sans-serif); } .help-modal.active { @@ -155,7 +155,7 @@ border: none; color: var(--text-secondary, #9ca3af); cursor: pointer; - font-family: var(--font-mono, 'IBM Plex Mono', 'Space Mono', ui-monospace, monospace); + font-family: var(--font-mono, 'Roboto Condensed', 'Arial Narrow', sans-serif); font-size: 10px; text-transform: uppercase; letter-spacing: 1px; @@ -200,7 +200,7 @@ background: var(--bg-tertiary, #151a23); padding: 1px 5px; border-radius: 3px; - font-family: var(--font-mono, 'IBM Plex Mono', 'Space Mono', ui-monospace, monospace); + font-family: var(--font-mono, 'Roboto Condensed', 'Arial Narrow', sans-serif); font-size: 10.5px; color: var(--accent-cyan, #4a9eff); } diff --git a/static/css/index.css b/static/css/index.css index 413ffee..d15f773 100644 --- a/static/css/index.css +++ b/static/css/index.css @@ -5,8 +5,8 @@ } :root { - --font-sans: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace; - --font-mono: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace; + --font-sans: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif; + --font-mono: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif; /* Tactical dark palette */ --bg-primary: #0b1118; --bg-secondary: #101823; @@ -6372,7 +6372,7 @@ body::before { } .module-header { - font-family: 'Orbitron', 'Space Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px; font-weight: 600; color: var(--accent-cyan); @@ -6550,7 +6550,7 @@ body::before { /* Listening Mode Selector Buttons */ .radio-mode-btn { padding: 12px 24px; - font-family: 'Orbitron', 'Space Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 13px; font-weight: 600; text-transform: uppercase; diff --git a/static/css/modes/subghz.css b/static/css/modes/subghz.css index 157e9fa..6fca8a2 100644 --- a/static/css/modes/subghz.css +++ b/static/css/modes/subghz.css @@ -5,7 +5,7 @@ padding: 8px 10px; background: var(--bg-tertiary, #1a1f2e); border-radius: 4px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 11px; } @@ -86,7 +86,7 @@ border-radius: 4px; background: var(--bg-tertiary, #1a1f2e); color: var(--text-primary, #e0e0e0); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 11px; cursor: pointer; transition: background 0.15s, border-color 0.15s; @@ -113,7 +113,7 @@ border-bottom: 2px solid transparent; background: transparent; color: var(--text-dim, #666); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 11px; text-transform: uppercase; cursor: pointer; @@ -153,7 +153,7 @@ display: inline-flex; align-items: center; gap: 7px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px; color: var(--text-secondary, #999); text-transform: uppercase; @@ -168,7 +168,7 @@ } .subghz-trigger-grid label { - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 9px; color: var(--text-dim, #666); text-transform: uppercase; @@ -182,7 +182,7 @@ border-radius: 4px; background: var(--bg-primary, #0d1117); color: var(--text-primary, #e0e0e0); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px; } @@ -192,7 +192,7 @@ .subghz-trigger-help { margin: 0; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 9px; color: var(--text-dim, #666); line-height: 1.4; @@ -207,7 +207,7 @@ background: var(--bg-tertiary, #1a1f2e); border-radius: 4px; margin-bottom: 10px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 11px; } @@ -264,7 +264,7 @@ border-radius: 4px; background: transparent; color: var(--text-primary, #e0e0e0); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 12px; cursor: pointer; transition: background 0.15s, border-color 0.15s; @@ -369,7 +369,7 @@ background: var(--bg-tertiary, #1a1f2e); border: 1px solid var(--border-color, #2a3040); border-radius: 4px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 11px; min-width: 0; transition: border-color 0.15s, box-shadow 0.15s, background 0.15s; @@ -416,7 +416,7 @@ display: inline-flex; align-items: center; gap: 8px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 9px; text-transform: uppercase; letter-spacing: 0.5px; @@ -446,7 +446,7 @@ padding: 1px 6px; border-radius: 999px; border: 1px solid var(--border-color, #2a3040); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 9px; letter-spacing: 0.35px; color: var(--text-dim, #666); @@ -512,7 +512,7 @@ color: var(--text-dim, #666); font-size: 10px; cursor: pointer; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; } .subghz-capture-actions button:hover { @@ -554,7 +554,7 @@ border-radius: 4px; color: var(--accent-red, #ff4444); font-size: 10px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; line-height: 1.4; margin-bottom: 8px; } @@ -591,7 +591,7 @@ border-radius: 6px; padding: 12px; overflow-y: auto; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 12px; color: var(--text-primary, #e0e0e0); min-height: 200px; @@ -695,12 +695,12 @@ .subghz-tx-modal .tx-freq { color: var(--accent-cyan, #00d4ff); font-weight: 600; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; } .subghz-tx-modal .tx-duration { color: var(--text-dim, #666); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; } .subghz-tx-segment-box { @@ -742,7 +742,7 @@ border-radius: 4px; background: var(--bg-primary, #0d1117); color: var(--text-primary, #e0e0e0); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 11px; } @@ -755,7 +755,7 @@ margin-bottom: 0 !important; font-size: 11px !important; color: var(--accent-cyan, #00d4ff) !important; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; } .subghz-tx-burst-assist { @@ -768,7 +768,7 @@ } .subghz-tx-burst-title { - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px; color: var(--text-dim, #666); text-transform: uppercase; @@ -805,7 +805,7 @@ .subghz-tx-burst-range { margin: 0 0 8px 0; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px; color: var(--accent-cyan, #00d4ff); } @@ -839,7 +839,7 @@ padding: 6px; border: 1px dashed var(--border-color, #2a3040); border-radius: 4px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px; color: var(--text-dim, #666); line-height: 1.4; @@ -854,7 +854,7 @@ border: 1px solid var(--border-color, #2a3040); border-radius: 4px; background: rgba(0, 0, 0, 0.15); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px; color: var(--text-secondary, #999); } @@ -865,7 +865,7 @@ border-radius: 3px; background: transparent; color: #00d4ff; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px; cursor: pointer; } @@ -884,7 +884,7 @@ .subghz-tx-modal-actions button { padding: 8px 20px; border-radius: 4px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 12px; cursor: pointer; border: 1px solid; @@ -926,7 +926,7 @@ color: var(--text-dim, #666); font-size: 12px; padding: 24px 12px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; } .subghz-captures-list-main .subghz-empty { @@ -943,7 +943,7 @@ border: 1px solid #2a3040; border-radius: 4px; padding: 5px 9px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 11px; z-index: 9999; display: none; @@ -970,7 +970,7 @@ min-width: 180px; padding: 4px 0; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.6); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 11px; } @@ -1029,7 +1029,7 @@ border-radius: 3px; background: transparent; color: var(--text-primary, #e0e0e0); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px; cursor: pointer; transition: background 0.12s, border-color 0.12s, color 0.12s; @@ -1068,7 +1068,7 @@ content: 'No peaks detected'; color: var(--text-dim, #666); font-size: 10px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; padding: 6px 0; text-align: center; } @@ -1082,7 +1082,7 @@ border: 1px solid var(--border-color, #2a3040); border-radius: 3px; cursor: pointer; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px; transition: border-color 0.12s; } @@ -1108,7 +1108,7 @@ border: 1px solid var(--border-color, #2a3040); border-radius: 6px; padding: 6px 12px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 11px; flex-shrink: 0; flex-wrap: wrap; @@ -1192,7 +1192,7 @@ border-radius: 3px; background: transparent; color: #22c55e; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px; cursor: pointer; text-transform: uppercase; @@ -1211,7 +1211,7 @@ padding: 2px 8px; border: 1px solid var(--border-color, #2a3040); border-radius: 3px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px; color: var(--text-secondary, #999); letter-spacing: 0.3px; @@ -1263,7 +1263,7 @@ display: flex; align-items: center; gap: 6px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px; } @@ -1300,7 +1300,7 @@ border-radius: 999px; margin-left: auto; margin-right: 8px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px; color: var(--text-dim, #666); background: rgba(0, 0, 0, 0.15); @@ -1365,7 +1365,7 @@ padding: 6px 12px; overflow-y: auto; max-height: 114px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px; line-height: 1.6; } @@ -1402,7 +1402,7 @@ } .subghz-hub-header-title { - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 20px; font-weight: 700; color: var(--accent-cyan, #00d4ff); @@ -1410,7 +1410,7 @@ } .subghz-hub-header-sub { - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 11px; color: var(--text-dim, #666); margin-top: 2px; @@ -1472,14 +1472,14 @@ } .subghz-hub-title { - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 14px; font-weight: 600; color: var(--text-primary, #e0e0e0); } .subghz-hub-desc { - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px; color: var(--text-dim, #666); } @@ -1526,7 +1526,7 @@ } .subghz-saved-selection-count { - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px; color: var(--accent-cyan, #00d4ff); margin-right: 4px; @@ -1538,7 +1538,7 @@ border-radius: 4px; background: transparent; color: var(--text-secondary, #999); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 11px; cursor: pointer; transition: border-color 0.15s, color 0.15s; @@ -1550,7 +1550,7 @@ } .subghz-op-panel-title { - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 12px; color: var(--text-primary, #e0e0e0); text-transform: uppercase; @@ -1620,7 +1620,7 @@ display: flex; align-items: center; gap: 8px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 14px; font-weight: 600; color: var(--accent-red, #ff4444); @@ -1654,14 +1654,14 @@ } .subghz-rx-info-label { - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 9px; color: var(--text-dim, #666); letter-spacing: 0.5px; } .subghz-rx-info-value { - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 16px; font-weight: 600; color: var(--text-primary, #e0e0e0); @@ -1688,7 +1688,7 @@ border: 1px solid var(--border-color, #2a3040); border-radius: 4px; background: rgba(0, 0, 0, 0.22); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; } .subghz-rx-hint-label { @@ -1722,7 +1722,7 @@ padding: 2px 8px; border: 1px solid var(--border-color, #2a3040); border-radius: 999px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px; color: var(--text-dim, #666); background: rgba(0, 0, 0, 0.2); @@ -1741,7 +1741,7 @@ } .subghz-rx-level-label { - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 9px; color: var(--text-dim, #666); letter-spacing: 0.5px; @@ -1772,7 +1772,7 @@ } .subghz-rx-scope-label { - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 9px; color: var(--text-dim, #666); letter-spacing: 0.5px; @@ -1832,7 +1832,7 @@ display: flex; align-items: center; gap: 6px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 9px; color: var(--text-dim, #666); letter-spacing: 0.4px; @@ -1854,7 +1854,7 @@ border-radius: 4px; background: transparent; color: var(--text-secondary, #999); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px; cursor: pointer; transition: border-color 0.15s, color 0.15s, background 0.15s; @@ -1938,7 +1938,7 @@ } .subghz-tx-label { - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 14px; font-weight: 600; color: var(--accent-red, #ff4444); @@ -1958,14 +1958,14 @@ } .subghz-tx-info-label { - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 9px; color: var(--text-dim, #666); letter-spacing: 0.5px; } .subghz-tx-info-value { - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 16px; font-weight: 600; color: var(--text-primary, #e0e0e0); @@ -1998,7 +1998,7 @@ } .subghz-sweep-peaks-title { - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px; color: var(--text-dim, #666); text-transform: uppercase; diff --git a/static/css/modes/weather-satellite.css b/static/css/modes/weather-satellite.css index 940b5f9..a1f3392 100644 --- a/static/css/modes/weather-satellite.css +++ b/static/css/modes/weather-satellite.css @@ -49,7 +49,7 @@ .wxsat-strip-status-text { font-size: 12px; color: var(--text-secondary, #999); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; } .wxsat-strip-btn { @@ -59,7 +59,7 @@ background: transparent; color: var(--text-primary, #e0e0e0); font-size: 11px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; cursor: pointer; transition: all 0.2s; } @@ -92,7 +92,7 @@ .wxsat-strip-value { font-size: 13px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; color: var(--text-primary, #e0e0e0); } @@ -114,7 +114,7 @@ gap: 6px; cursor: pointer; font-size: 10px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; color: var(--text-dim, #666); text-transform: uppercase; letter-spacing: 0.5px; @@ -146,7 +146,7 @@ border-radius: 3px; color: var(--text-primary, #e0e0e0); font-size: 11px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; } .wxsat-loc-input:focus { @@ -225,7 +225,7 @@ .wxsat-cd-value { font-size: 16px; font-weight: 700; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; color: var(--text-primary, #e0e0e0); line-height: 1; } @@ -248,13 +248,13 @@ font-size: 12px; font-weight: 600; color: var(--accent-cyan, #00d4ff); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; } .wxsat-countdown-detail { font-size: 10px; color: var(--text-dim, #666); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; } /* ===== Timeline ===== */ @@ -314,7 +314,7 @@ justify-content: space-between; font-size: 8px; color: var(--text-dim, #666); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; } /* ===== Pass Predictions Panel ===== */ @@ -349,7 +349,7 @@ .wxsat-passes-count { font-size: 11px; color: var(--accent-cyan, #00d4ff); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; } .wxsat-passes-list { @@ -387,7 +387,7 @@ background: rgba(255, 187, 0, 0.15); color: #ffbb00; margin-left: 6px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; text-transform: uppercase; letter-spacing: 0.5px; } @@ -409,7 +409,7 @@ font-size: 10px; padding: 2px 6px; border-radius: 3px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; } .wxsat-pass-mode.apt { @@ -428,7 +428,7 @@ gap: 4px; font-size: 11px; color: var(--text-dim, #666); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; } .wxsat-pass-detail-label { @@ -499,7 +499,7 @@ .wxsat-panel-subtitle { font-size: 10px; color: var(--accent-cyan, #00d4ff); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; } #wxsatPolarCanvas { @@ -547,7 +547,7 @@ .wxsat-gallery-count { font-size: 11px; color: var(--accent-cyan, #00d4ff); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; } .wxsat-gallery-grid { @@ -636,7 +636,7 @@ .wxsat-image-product { font-size: 10px; color: var(--accent-cyan, #00d4ff); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; } .wxsat-image-timestamp { @@ -649,7 +649,7 @@ .wxsat-date-header { grid-column: 1 / -1; font-size: 11px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; color: var(--text-dim, #666); text-transform: uppercase; letter-spacing: 0.5px; @@ -708,7 +708,7 @@ .wxsat-capture-message { font-size: 11px; color: var(--text-secondary, #999); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; @@ -719,7 +719,7 @@ .wxsat-capture-elapsed { font-size: 11px; color: var(--text-dim, #666); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; flex-shrink: 0; } @@ -785,7 +785,7 @@ border-radius: 4px; color: var(--text-secondary, #999); font-size: 12px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; text-align: center; } @@ -941,7 +941,7 @@ display: flex; align-items: center; gap: 4px; - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; } .wxsat-phase-step { @@ -1012,7 +1012,7 @@ max-height: 160px; padding: 6px 12px; background: var(--bg-primary, #0d1117); - font-family: 'JetBrains Mono', monospace; + font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px; line-height: 1.6; } diff --git a/static/css/satellite_dashboard.css b/static/css/satellite_dashboard.css index 8a83aed..f3a691f 100644 --- a/static/css/satellite_dashboard.css +++ b/static/css/satellite_dashboard.css @@ -5,8 +5,8 @@ } :root { - --font-sans: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace; - --font-mono: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace; + --font-sans: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif; + --font-mono: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif; --bg-dark: #0b1118; --bg-panel: #101823; --bg-card: #151f2b; diff --git a/static/js/core/app.js b/static/js/core/app.js index 820ee7c..6eaf918 100644 --- a/static/js/core/app.js +++ b/static/js/core/app.js @@ -373,7 +373,7 @@ function showInfo(text) { const infoEl = document.createElement('div'); infoEl.className = 'info-msg'; - infoEl.style.cssText = 'padding: 12px 15px; margin-bottom: 8px; background: #0a0a0a; border: 1px solid #1a1a1a; border-left: 2px solid #00d4ff; font-family: "Space Mono", monospace; font-size: 11px; color: #888; word-break: break-all;'; + infoEl.style.cssText = 'padding: 12px 15px; margin-bottom: 8px; background: #0a0a0a; border: 1px solid #1a1a1a; border-left: 2px solid #00d4ff; font-family: "Roboto Condensed", "Arial Narrow", sans-serif; font-size: 11px; color: #888; word-break: break-all;'; infoEl.textContent = text; output.insertBefore(infoEl, output.firstChild); } @@ -387,7 +387,7 @@ function showError(text) { const errorEl = document.createElement('div'); errorEl.className = 'error-msg'; - errorEl.style.cssText = 'padding: 12px 15px; margin-bottom: 8px; background: #1a0a0a; border: 1px solid #2a1a1a; border-left: 2px solid #ff3366; font-family: "Space Mono", monospace; font-size: 11px; color: #ff6688; word-break: break-all;'; + errorEl.style.cssText = 'padding: 12px 15px; margin-bottom: 8px; background: #1a0a0a; border: 1px solid #2a1a1a; border-left: 2px solid #ff3366; font-family: "Roboto Condensed", "Arial Narrow", sans-serif; font-size: 11px; color: #ff6688; word-break: break-all;'; errorEl.textContent = '⚠ ' + text; output.insertBefore(errorEl, output.firstChild); } diff --git a/static/js/core/settings-manager.js b/static/js/core/settings-manager.js index 35649c2..1a5e922 100644 --- a/static/js/core/settings-manager.js +++ b/static/js/core/settings-manager.js @@ -833,11 +833,11 @@ function renderUpdateStatus(data) {