.fw-gnss :root{color-scheme:dark;--red:#D4483B;--paper:#F2F4F7;--night:#0A0D12;--spark:#56D3FF;--amber:#FFB43C;--violet:#8C7BFF;--ok:#4AD6A0;--aurora:linear-gradient(90deg,#56D3FF,#4AD6A0,#8C7BFF);--panel:#111820;--line:#1e2a36;--muted:#7d8b9c}.fw-gnss *{box-sizing:border-box}.fw-gnss body{margin:0;font:14px/1.5 IBM Plex Sans,system-ui,sans-serif;background:var(--night);color:#dce3ec}.fw-gnss .auroraBar{height:3px;background:var(--aurora)}.fw-gnss header{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px;flex-wrap:wrap}.fw-gnss .brand-home{display:flex;flex-direction:column;align-items:flex-start;gap:18px;color:inherit;text-decoration:none}.fw-gnss #statusline{padding:8px 20px;border-bottom:1px solid var(--line);display:flex;gap:16px;flex-wrap:wrap;font-size:12px}.fw-gnss .seal{width:246px;height:35px;flex:none}.fw-gnss .seal img{display:block}.fw-gnss .brand{display:flex;flex-direction:column;line-height:1}.fw-gnss .brand .wm{font:600 14px/1.3 IBM Plex Sans,system-ui,sans-serif;letter-spacing:.04em;color:var(--paper)}.fw-gnss .brand .sub .prod{font-weight:600;letter-spacing:.06em;background:var(--aurora);-webkit-background-clip:text;background-clip:text;color:transparent}.fw-gnss .brand .sub{font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-top:4px}.fw-gnss .dot{font-size:13px;margin-left:4px}.fw-gnss .ok{color:var(--ok)}.fw-gnss .bad{color:var(--red)}.fw-gnss .warn{color:var(--amber)}.fw-gnss nav{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}.fw-gnss nav button{background:var(--panel);color:#8b98a8;border:1px solid var(--line);padding:6px 14px;border-radius:8px;cursor:pointer;font:inherit}.fw-gnss nav button.active{background:#56d3ff1a;color:var(--spark);border-color:#56d3ff55}.fw-gnss main{padding:20px;max-width:960px}.fw-gnss .grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.fw-gnss .card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.fw-gnss .card h2{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--spark);margin:0 0 8px;font-weight:600}.fw-gnss .row{display:flex;justify-content:space-between;gap:10px;padding:3px 0}.fw-gnss .row b{color:#8b98a8;font-weight:500}.fw-gnss .v{font-variant-numeric:tabular-nums;color:#e7edf4}.fw-gnss .badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}.fw-gnss .badge.fix{background:var(--ok);color:#04150f}.fw-gnss .badge.no{background:#6e768133;color:#c9d1d9}.fw-gnss .badge.green{background:var(--ok);color:#04150f}.fw-gnss .badge.yellow{background:var(--amber);color:#231400}.fw-gnss .badge.red{background:var(--red);color:#fff}.fw-gnss .badge.gray{background:#6e768133;color:#c9d1d9}.fw-gnss .sats{display:flex;align-items:flex-end;gap:6px;height:130px;overflow-x:auto;padding:8px 2px 0}.fw-gnss .sat{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:26px}.fw-gnss .bar{width:16px;background:#20303c;border-radius:3px 3px 0 0;position:relative;display:flex;align-items:flex-start;justify-content:center}.fw-gnss .bar span{font-size:9px;margin-top:-14px;color:#8b98a8}.fw-gnss .prn{font-size:9px;color:#6e7681}.fw-gnss .hint{color:#6e7681;font-size:12px;margin-top:10px}.fw-gnss footer{padding:0 20px 24px;color:#6e7681;font-size:12px;max-width:960px}.fw-gnss footer b{color:var(--red)}.fw-gnss a{color:var(--spark)}.fw-gnss nav a{background:var(--panel);color:#8b98a8;border:1px solid var(--line);padding:6px 14px;border-radius:8px;text-decoration:none}.fw-gnss nav a.active{background:#56d3ff1a;color:var(--spark);border-color:#56d3ff55}.fw-gnss select{background:var(--panel);color:#cfe6ff;border:1px solid var(--line);border-radius:7px;padding:4px 9px;font:inherit;cursor:pointer}.fw-gnss .sat.unused .bar{opacity:.35}.fw-gnss .card table{border-collapse:collapse;width:100%}.fw-gnss .card th,.fw-gnss .card td{text-align:left;padding:4px 10px 4px 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;vertical-align:top}.fw-gnss .card th{font-weight:500;color:#8b98a8;width:210px}.fw-gnss .card td{font-family:IBM Plex Mono,ui-monospace,Menlo,monospace;font-size:12px;color:#e7edf4}.fw-gnss .card td .no{color:var(--amber)}.fw-gnss .card td .dim,.fw-gnss .card td.dim{color:#5b6b7d}.gnss-snap-head{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:baseline}.gnss-snap-note{border-left:3px solid var(--amber);padding:6px 10px;background:#ffb43c14}.gnss-snap-requests{width:100%;border-collapse:collapse;font-size:12.5px}.gnss-snap-requests th,.gnss-snap-requests td{text-align:left;padding:4px 10px 4px 0;border-bottom:1px solid var(--line)}.gnss-snap-lan code{font-family:var(--mono);font-size:12px;overflow-wrap:anywhere}
