@import "https://fonts.googleapis.com/css2?family=Public+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--bg:#0c0d0a;--surface:#17180f;--signal:#ffb000;--signal-dim:#8a6a2e;--wifi:#ffb000;--ble:#5fd0c0;--tpms:#e0574a;--rf:#be7cde;--source-alt-1:#4dcb77;--source-alt-2:#da6cb6;--source-alt-3:#5f9edd;--text:#e8e4d8;--text-dim:#8f8b7d;--border:#2a2b1e;--font-sans:"Public Sans", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace}*,:before,:after{box-sizing:border-box}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:var(--bg);min-height:100svh;color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:15px;line-height:1.5}#root{min-height:100svh}h1,h2,h3{font-family:var(--font-sans);color:var(--text);margin:0;font-weight:600}code,input,button,select{font-family:inherit}button,input,select{color:var(--text)}a{color:var(--signal)}:focus-visible{outline:2px solid var(--signal);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.history-tabs{gap:.25rem;margin-bottom:1.25rem;display:flex}.history-tab{color:var(--text-dim);font-family:var(--font-sans);cursor:pointer;background:0 0;border:1px solid #0000;border-bottom-width:2px;padding:.4rem .65rem;font-size:.9rem;font-weight:500}.history-tab:hover{color:var(--text)}.history-tab[aria-pressed=true]{color:var(--signal);border-bottom-color:var(--signal)}.history-filters{background:var(--surface);border:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));align-items:end;gap:.85rem 1rem;margin-bottom:1.25rem;padding:1rem;display:grid}.history-field{flex-direction:column;gap:.35rem;min-width:0;display:flex}.history-field label{font-family:var(--font-sans);color:var(--text-dim);font-size:.8rem}.history-field input,.history-field select{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:var(--font-mono);width:100%;padding:.45rem .55rem;font-size:.9rem}.history-field select{font-family:var(--font-sans)}.history-field input:focus-visible,.history-field select:focus-visible{border-color:var(--signal)}.history-submit{background:var(--signal-dim);color:var(--bg);font-family:var(--font-sans);cursor:pointer;border:none;align-self:end;height:fit-content;padding:.5rem .9rem;font-size:.9rem;font-weight:600}.history-submit:hover{background:var(--signal)}.history-submit:disabled{background:var(--signal-dim);opacity:.6;cursor:default}.history-error{color:var(--tpms);font-size:.9rem}.history-count{font-family:var(--font-mono);color:var(--text-dim);margin:0 0 .6rem;font-size:.85rem}.history-table-wrap{border:1px solid var(--border);background:linear-gradient(to right, var(--surface) 50%, transparent) left, linear-gradient(to left, var(--surface) 50%, transparent) right, linear-gradient(to right, #00000059, transparent) left, linear-gradient(to left, #00000059, transparent) right;background-repeat:no-repeat;background-color:var(--surface);background-size:1.5rem 100%,1.5rem 100%,.75rem 100%,.75rem 100%;background-attachment:local,local,scroll,scroll;overflow-x:auto}.history-table{border-collapse:collapse;width:100%;font-size:.9rem}.history-table th,.history-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.55rem .75rem}.history-table th{font-family:var(--font-sans);color:var(--text-dim);background:var(--surface);font-weight:600}.history-table td{font-family:var(--font-mono);color:var(--text)}.history-table tbody tr:last-child td{border-bottom:none}.history-pagination{gap:.5rem;margin-top:1rem;display:flex}.history-page-button{border:1px solid var(--border);color:var(--text-dim);font-family:var(--font-sans);cursor:pointer;background:0 0;padding:.4rem .85rem;font-size:.85rem}.history-page-button:hover:not(:disabled){color:var(--text);border-color:var(--signal-dim)}.history-page-button:disabled{opacity:.4;cursor:default}@media (width<=30rem){.history-filters{grid-template-columns:1fr}.history-submit{align-self:stretch}}.activity-chart{background:var(--surface);padding:1.5rem 1.75rem 1.25rem}.activity-chart-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.75rem;display:flex}.activity-chart-header h3{color:var(--text-dim);letter-spacing:.02em;font-size:.85rem;font-weight:600}.activity-chart-legend{flex-wrap:wrap;gap:.5rem .9rem;margin:0;padding:0;list-style:none;display:flex}.activity-chart-legend li{color:var(--text-dim);white-space:nowrap;align-items:center;gap:.35rem;font-size:.8rem;display:flex}.legend-swatch{width:.6rem;height:.6rem;display:inline-block}.legend-count{font-family:var(--font-mono);color:var(--text)}.activity-waterfall{background:var(--bg);gap:1px;height:84px;display:grid}.activity-waterfall-cell{min-width:0}.activity-chart-axis{font-family:var(--font-mono);color:var(--text-dim);justify-content:space-between;margin-top:.5rem;font-size:.75rem;display:flex}@media (width<=30rem){.activity-waterfall{height:64px}}.dashboard{flex-direction:column;gap:1.25rem;display:flex}.dashboard-title{color:var(--text-dim);letter-spacing:.02em;font-size:.85rem;font-weight:600}.dashboard-hero{background:var(--surface);border:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.85rem;width:fit-content;max-width:100%;padding:1.5rem 1.75rem;display:flex}.dashboard-hero-figure{align-items:baseline;gap:.6rem;display:flex}.dashboard-hero-value{font-family:var(--font-mono);color:var(--signal);font-size:clamp(2.5rem,6vw,4rem);font-weight:600;line-height:1}.dashboard-hero-label{color:var(--text-dim);font-size:.95rem}.dashboard-pulse{color:var(--text-dim);align-items:center;gap:.5rem;font-size:.85rem;font-weight:500;display:flex}.dashboard-pulse-dot{background:var(--text-dim);border-radius:50%;width:.6rem;height:.6rem}.dashboard-pulse.is-connected{color:var(--signal)}.dashboard-pulse.is-connected .dashboard-pulse-dot{background:var(--signal);animation:1.8s ease-out infinite dashboard-pulse-ring}@keyframes dashboard-pulse-ring{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--signal) 55%, transparent)}to{box-shadow:0 0 0 .5rem color-mix(in srgb, var(--signal) 0%, transparent)}}.stat-tiles{grid-template-columns:repeat(3,1fr);gap:1.5rem;display:grid}.stat-tile{border-top:1px solid var(--border);flex-direction:column;gap:.35rem;padding:.9rem 0;display:flex}.stat-value{font-family:var(--font-mono);color:var(--text);font-size:1.25rem;font-weight:600}.stat-label{color:var(--text-dim);letter-spacing:.02em;font-size:.75rem}.live-sightings h3{color:var(--text-dim);letter-spacing:.02em;margin-bottom:.6rem;font-size:.85rem;font-weight:600}.live-sightings-scroll{border-top:1px solid var(--border);background:linear-gradient(to right, var(--surface) 50%, transparent) left, linear-gradient(to left, var(--surface) 50%, transparent) right, linear-gradient(to right, #00000059, transparent) left, linear-gradient(to left, #00000059, transparent) right;background-repeat:no-repeat;background-color:var(--surface);background-size:1.5rem 100%,1.5rem 100%,.75rem 100%,.75rem 100%;background-attachment:local,local,scroll,scroll;overflow-x:auto}.live-sightings table{border-collapse:collapse;width:100%;font-size:.85rem}.live-sightings th,.live-sightings td{text-align:left;white-space:nowrap;border-bottom:1px solid var(--border);padding:.5rem .75rem}.live-sightings th{color:var(--text-dim);letter-spacing:.02em;background:var(--surface);font-size:.75rem;font-weight:500}.live-sightings td{color:var(--text);font-family:var(--font-mono)}.live-sightings tbody tr:last-child td{border-bottom:none}.live-sightings tr.row-highlight td{animation:1.5s ease-out dashboard-row-highlight}@keyframes dashboard-row-highlight{0%{background-color:color-mix(in srgb, var(--signal) 25%, transparent)}to{background-color:#0000}}@media (width<=40rem){.stat-tiles{gap:.75rem}}@media (width<=30rem){.dashboard-hero{flex-direction:column;align-items:flex-start}.stat-tiles{grid-template-columns:1fr}}.app-shell{flex-direction:column;min-height:100svh;display:flex}.app-header{border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:wrap;align-items:center;gap:1.5rem;padding:.85rem 1.25rem;display:flex}.app-wordmark{letter-spacing:.01em;color:var(--text);margin:0;font-size:1.15rem;font-weight:700}.app-tabs{gap:.25rem;margin-right:auto;display:flex}.app-tab{color:var(--text-dim);font-family:var(--font-sans);cursor:pointer;background:0 0;border:1px solid #0000;border-bottom-width:2px;padding:.4rem .65rem;font-size:.9rem;font-weight:500}.app-tab:hover{color:var(--text)}.app-tab[aria-pressed=true]{color:var(--signal);border-bottom-color:var(--signal)}.app-logout{border:1px solid var(--border);color:var(--text-dim);font-family:var(--font-sans);cursor:pointer;background:0 0;padding:.35rem .75rem;font-size:.85rem}.app-logout:hover{color:var(--text);border-color:var(--signal-dim)}.app-content{text-align:left;flex:1;padding:1.25rem}@media (width<=30rem){.app-header{gap:.6rem;padding:.75rem 1rem}.app-wordmark{order:1}.app-logout{order:2;margin-left:auto}.app-tabs{flex-basis:100%;order:3;margin-right:0}.app-content{padding:1rem .85rem}}.login-screen{justify-content:center;align-items:center;min-height:100svh;padding:1.5rem;display:flex}.login-panel{background:var(--surface);border:1px solid var(--border);width:100%;max-width:22rem;padding:1.75rem}.login-wordmark{color:var(--text);margin:0 0 1.25rem;font-size:1.35rem;font-weight:700}.login-form{flex-direction:column;gap:.4rem;display:flex}.login-form label{color:var(--text-dim);font-size:.85rem}.login-form input{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:var(--font-mono);padding:.5rem .6rem;font-size:.95rem}.login-form input:focus-visible{border-color:var(--signal)}.login-submit{background:var(--signal-dim);color:var(--bg);font-family:var(--font-sans);cursor:pointer;border:none;margin-top:.75rem;padding:.55rem .75rem;font-size:.9rem;font-weight:600}.login-submit:hover{background:var(--signal)}.login-error{color:var(--tpms);margin:.9rem 0 0;font-size:.85rem}
