*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden}
body{font-family:Tahoma,sans-serif;background:#0a0e17;color:#c9d1d9;display:flex;flex-direction:column}
#topbar{display:flex;align-items:center;gap:12px;padding:5px 14px;
  background:linear-gradient(90deg,#0d1117 0%,#161b22 100%);
  border-bottom:1px solid #1e3a5f;flex-shrink:0;height:46px;overflow-x:auto}
#topbar h1{font-size:13px;color:#58a6ff;white-space:nowrap;letter-spacing:.5px}
.tcards{display:flex;gap:6px;flex:1}
.tcard{background:#1a2744;border:1px solid #1e3a5f;border-radius:4px;
  padding:3px 10px;text-align:center;min-width:80px;white-space:nowrap}
.tcard.clickable{cursor:pointer;transition:.15s}
.tcard.clickable:hover{border-color:#58a6ff;background:#1e3a5f}
.tcard.active-card{border-color:#58a6ff;background:#1e3a6f}
.tcard .val{font-size:16px;font-weight:bold;color:#f0f6ff}
.tcard .lbl{font-size:9px;color:#8b949e;text-transform:uppercase;letter-spacing:.6px}
.tcard.payload .val{color:#4CAF50}
.tcard.debris  .val{color:#FF9800}
.tcard.rocket  .val{color:#9E9E9E}
.tcard.conj    .val{color:#FF6B6B}
#ts{font-size:10px;color:#484f58;white-space:nowrap;flex-shrink:0}
.tbtn{font-size:11px;text-decoration:none;background:none;cursor:pointer;font-family:inherit;
  padding:3px 8px;border-radius:3px;white-space:nowrap;flex-shrink:0;transition:background .15s}
#taipei-link{color:#00E5FF;border:1px solid #00E5FF44}
#taipei-link:hover{background:#00E5FF22}
#starlink-link{color:#A855F7;border:1px solid #A855F744}
#starlink-link:hover{background:#A855F722}
#rpo-link{color:#F2A73B;border:1px solid #F2A73B44}
#rpo-link:hover{background:#F2A73B22}
#story-link{color:#FFD700;border:1px solid #FFD70044}
#story-link:hover{background:#FFD70022}
#orbit6-btn{font-size:11px;color:#64DD17;background:none;cursor:pointer;font-family:inherit;
  border:1px solid #64DD1744;padding:3px 8px;border-radius:3px;white-space:nowrap;flex-shrink:0}
#orbit6-btn:hover{background:#64DD1722}
#orbit6-btn.active{background:#64DD1733;border-color:#64DD17}

/* ── 語言切換 ── */
#lang-switcher{display:flex;gap:4px;flex-shrink:0}
.lang-btn{padding:3px 7px;background:none;color:#8b949e;border:1px solid #30363d;border-radius:3px;
  font-size:11px;font-family:inherit;cursor:pointer;white-space:nowrap;transition:all .15s}
.lang-btn:hover{background:#ffffff11;color:#c9d1d9}
.lang-btn.active{background:#58a6ff;color:#0d1117;border-color:#58a6ff}
#track-btn{font-size:11px;color:#FF80AB;background:none;cursor:pointer;font-family:inherit;
  border:1px solid #FF80AB44;padding:3px 8px;border-radius:3px;white-space:nowrap;flex-shrink:0;
  display:inline-flex;align-items:center;gap:3px}
#track-btn:hover{background:#FF80AB22}
#track-btn.active{background:#FF80AB33;border-color:#FF80AB}
#track-count{font-size:10px;color:#f0f6ff;font-weight:bold}
.track-add{display:flex;gap:5px;padding:4px 10px 8px}
.track-add input{flex:1;background:#161b22;border:1px solid #21262d;border-radius:3px;
  color:#c9d1d9;font-size:11px;padding:4px 8px;outline:none;min-width:0}
.track-add input:focus{border-color:#FF80AB88}
.track-add button{background:#FF80AB22;border:1px solid #FF80AB55;color:#FF80AB;
  font-size:11px;padding:3px 10px;border-radius:3px;cursor:pointer;white-space:nowrap}
.track-add button:hover{background:#FF80AB33}
.track-row{display:flex;align-items:center;gap:7px;padding:6px 10px;
  border-bottom:1px solid #161b22;cursor:pointer;transition:.12s}
.track-row:hover{background:#1c2128}
.track-row input[type=checkbox]{accent-color:#FF80AB;cursor:pointer;flex-shrink:0}
.track-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.track-info{flex:1;min-width:0}
.track-alias{font-size:12px;color:#e6edf3;font-weight:bold;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.track-sub{font-size:10px;color:#8b949e;margin-top:1px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.track-pos{font-size:9px;color:#484f58;margin-top:1px}
.track-pri{font-size:9px;padding:1px 5px;border-radius:3px;flex-shrink:0;white-space:nowrap}
.track-pri.high{color:#FF5252;background:rgba(255,82,82,.15)}
.track-pri.medium{color:#FFB86C;background:rgba(255,184,108,.15)}
.track-pri.low{color:#8b949e;background:rgba(139,148,158,.15)}
.track-user-flag{font-size:9px;color:#B388FF;flex-shrink:0}
#main{display:flex;flex:1;overflow:hidden}
#panel{width:300px;min-width:260px;background:#0d1117;
  border-right:1px solid #21262d;display:flex;flex-direction:column;overflow:hidden}
#search-box{display:flex;align-items:center;gap:4px;
  padding:6px 10px 4px;border-bottom:1px solid #21262d;flex-shrink:0}
#search-input{flex:1;background:#161b22;border:1px solid #21262d;border-radius:4px;
  color:#c9d1d9;font-size:11px;padding:5px 8px;outline:none;transition:.15s}
#search-input:focus{border-color:#58a6ff}
#search-input::placeholder{color:#484f58}
#search-clear{background:none;border:none;color:#484f58;cursor:pointer;
  font-size:15px;line-height:1;padding:0 2px;transition:.12s;display:none}
#search-clear:hover{color:#c9d1d9}
#tabs{display:flex;border-bottom:1px solid #21262d;flex-shrink:0}
.tab{flex:1;padding:6px 0;font-size:11px;color:#8b949e;text-align:center;
  cursor:pointer;border:none;background:transparent;transition:.15s;border-bottom:2px solid transparent}
.tab:hover{color:#c9d1d9;background:#161b22}
.tab.active{color:#58a6ff;border-bottom:2px solid #58a6ff}
#panel-back{display:none;padding:5px 10px 4px;border-bottom:1px solid #21262d;flex-shrink:0}
#panel-back button{background:none;border:none;color:#8b949e;font-size:11px;cursor:pointer;
  display:flex;align-items:center;gap:5px}
#panel-back button:hover{color:#c9d1d9}
#panel-body{flex:1;overflow-y:auto;padding:4px 0}
#panel-body::-webkit-scrollbar{width:3px}
#panel-body::-webkit-scrollbar-thumb{background:#21262d;border-radius:2px}
.stat-row{display:flex;align-items:center;gap:7px;padding:6px 12px;
  cursor:pointer;border:none;background:transparent;width:100%;text-align:left;
  border-left:3px solid transparent;transition:.12s}
.stat-row:hover{background:#1c2128}
.stat-row.active{background:#1a2744;border-left-color:#58a6ff}
.stat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.stat-label{flex:1;font-size:12px;color:#c9d1d9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat-cnt{font-size:11px;color:#58a6ff;font-weight:bold;min-width:40px;text-align:right}
.stat-bar-wrap{width:100%;height:2px;background:#21262d;border-radius:1px}
.stat-bar{height:2px;border-radius:1px;transition:width .3s}
.conj-row{padding:6px 10px;border-bottom:1px solid #161b22;cursor:pointer;transition:.12s}
.conj-row:hover{background:#1c2128}
.conj-km{font-size:11px;font-weight:bold;color:#FF6B6B;min-width:50px}
.conj-names{flex:1;font-size:11px;color:#c9d1d9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.conj-note{font-size:9px;color:#484f58;padding:4px 10px 8px;font-style:italic}
#filter-status{padding:5px 10px;font-size:11px;color:#8b949e;
  border-top:1px solid #21262d;flex-shrink:0;min-height:26px}
#basemap-bar{border-top:1px solid #21262d;background:#0d1117;padding:5px 0 3px;flex-shrink:0}
#basemap-bar .sec{padding:3px 12px 2px;font-size:10px;color:#484f58;text-transform:uppercase;letter-spacing:.8px}
.bm-btn{display:flex;align-items:center;gap:7px;padding:4px 12px;cursor:pointer;
  color:#8b949e;font-size:11px;transition:.12s;user-select:none;border:none;background:transparent;
  width:100%;text-align:left}
.bm-btn:hover{background:#1c2128;color:#c9d1d9}
.bm-btn.active{color:#58a6ff}
.bm-btn .bm-dot{width:8px;height:8px;border-radius:50%;border:1.5px solid #484f58;flex-shrink:0;transition:.12s}
.bm-btn.active .bm-dot{background:#58a6ff;border-color:#58a6ff}
.bm-btn.unavail{opacity:.35;cursor:not-allowed}
#layer-bar{border-top:1px solid #21262d;background:#0d1117;padding:5px 0 3px;flex-shrink:0}
#layer-bar .sec{padding:3px 12px 2px;font-size:10px;color:#484f58;text-transform:uppercase;letter-spacing:.8px}
#layer-bar label{display:flex;align-items:center;gap:7px;padding:4px 12px;cursor:pointer;
  color:#8b949e;font-size:11px;transition:.12s;user-select:none}
#layer-bar label:hover{background:#1c2128;color:#c9d1d9}
#layer-bar input[type=checkbox]{margin:0;cursor:pointer;accent-color:#58a6ff}
#cesiumContainer{flex:1;position:relative}
#logo-overlay{position:absolute;bottom:8px;right:8px;width:120px;height:120px;
  pointer-events:none;z-index:5;opacity:.85}
#logo-overlay img{width:100%;height:100%;object-fit:contain;display:block}
#warn{position:absolute;top:10px;left:50%;transform:translateX(-50%);
  color:#fff;padding:5px 14px;border-radius:4px;font-size:11px;z-index:10;
  pointer-events:none;display:none;white-space:nowrap}
#loading{position:absolute;inset:0;background:rgba(10,14,23,.75);
  display:flex;align-items:center;justify-content:center;z-index:20;
  font-size:13px;color:#58a6ff;letter-spacing:1px}
.cesium-widget-credits{display:none!important}
.cesium-infoBox-description{background:#1e1e1e!important;color:#e8e8e8!important}
.cesium-infoBox-description a{color:#8ab4f8!important}
#db-info-bar{display:flex;align-items:center;gap:12px;padding:2px 14px;
  font-size:10px;background:#050810;border-bottom:1px solid #161b22;
  flex-shrink:0;overflow-x:auto;white-space:nowrap;color:#8b949e}
.dbi-sep{color:#21262d;margin:0 2px}
.dbi-k{color:#484f58}
.dbi-v{color:#8b949e}
.dbi-v.ok{color:#3fb950}
.dbi-v.warn{color:#d29922}
#sat-detail-panel{border-top:1px solid #21262d;background:#0d1117;flex-shrink:0;overflow-y:auto;max-height:220px}
#sat-detail-panel::-webkit-scrollbar{width:3px}
#sat-detail-panel::-webkit-scrollbar-thumb{background:#21262d;border-radius:2px}
.st-sec{padding:3px 10px 2px;font-size:10px;color:#484f58;text-transform:uppercase;letter-spacing:.8px;border-top:1px solid #161b22}
.st-sec:first-child{border-top:none}
.st-row{display:flex;gap:8px;flex-wrap:wrap;padding:2px 10px 5px;font-size:11px;color:#8b949e}
.cdm-ev{padding:4px 10px;border-bottom:1px solid #161b22;font-size:11px}
/* ── 折疊式區段（底圖 / 向量圖層）─────────────────────────────────────────── */
#basemap-bar .sec.collapsible,
#layer-bar   .sec.collapsible{
  cursor:pointer;display:flex;align-items:center;justify-content:space-between;
  user-select:none;padding-right:10px}
#basemap-bar .sec.collapsible:hover,
#layer-bar   .sec.collapsible:hover{color:#8b949e}
.sec-arrow{font-size:8px;color:#484f58;transition:transform .2s ease;flex-shrink:0}
.sec-body{overflow:hidden;max-height:0;transition:max-height .25s ease}
.sec-body.open{max-height:300px}
/* payload-mode：分類 tab 切換為僅顯示有效載荷時的視覺提示 */
.tab.payload-mode{color:#4CAF50;border-bottom-color:#4CAF50}
.tab.payload-mode:hover{color:#66BB6A}
/* ── UTC 時鐘（LED 風格）─────────────────────────────────────────────────── */
#utc-clock{
  background:#000;border:1px solid #003300;border-radius:3px;
  padding:3px 8px;flex-shrink:0;display:flex;flex-direction:column;
  align-items:center;gap:1px;box-shadow:inset 0 0 8px #001500;
}
.led-time{
  color:#00ff41;font-family:'Courier New',Courier,monospace;
  font-size:16px;font-weight:bold;letter-spacing:3px;line-height:1;
  text-shadow:0 0 5px #00ff41,0 0 10px #00ff41,0 0 18px #00cc33;
}
.led-label{font-size:8px;color:#00ff41;letter-spacing:2px;text-transform:uppercase;text-shadow:0 0 4px #00ff41}

/* ── 軌道六參數調整器（Orbit Tuner）─────────────────────────────────────── */
.o6-panel{padding:6px 10px 14px;font-size:11px;color:#c9d1d9}
.o6-title{font-size:11px;font-weight:bold;color:#64DD17;padding:2px 0 6px;letter-spacing:.3px}
.o6-presets{display:flex;flex-wrap:wrap;gap:5px;padding-bottom:10px}
.o6-preset-btn{font-size:10px;color:#64DD17;background:#64DD1714;border:1px solid #64DD1744;
  border-radius:3px;padding:3px 7px;cursor:pointer;font-family:inherit;white-space:nowrap}
.o6-preset-btn:hover{background:#64DD1730}
.o6-row{padding:6px 0;border-top:1px solid #161b22}
.o6-row:first-of-type{border-top:none}
.o6-row-head{display:flex;align-items:center;gap:5px}
.o6-row-head label{flex:1;font-size:11px;color:#e6edf3}
.o6-help-btn{width:14px;height:14px;line-height:13px;text-align:center;border-radius:50%;
  border:1px solid #484f58;color:#8b949e;font-size:9px;cursor:pointer;flex-shrink:0;user-select:none}
.o6-help-btn:hover{border-color:#64DD17;color:#64DD17}
.o6-help-text{display:none;font-size:10px;color:#8b949e;line-height:1.5;padding:4px 2px 0 0}
.o6-help-text.open{display:block}
.o6-slider-line{display:flex;align-items:center;gap:7px;padding-top:3px}
.o6-slider-line input[type=range]{flex:1;accent-color:#64DD17;cursor:pointer}
.o6-slider-line input[type=number]{width:64px;background:#161b22;border:1px solid #21262d;
  border-radius:3px;color:#c9d1d9;font-size:10px;padding:3px 5px;outline:none;font-family:inherit}
.o6-slider-line input[type=number]:focus{border-color:#64DD1788}
.o6-slider-line .o6-unit{font-size:9px;color:#484f58;width:22px;flex-shrink:0}
.o6-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px 0;
  border-top:1px solid #161b22;margin-top:4px}
.o6-stat{background:#0d1117;border:1px solid #21262d;border-radius:4px;padding:5px 8px;text-align:center}
.o6-stat .k{font-size:9px;color:#8b949e;text-transform:uppercase;letter-spacing:.4px}
.o6-stat .v{font-size:13px;font-weight:bold;color:#64DD17;margin-top:1px}
.o6-actions{display:flex;gap:6px;padding-bottom:8px}
.o6-actions label{display:flex;align-items:center;gap:4px;font-size:10px;color:#8b949e;cursor:pointer}
.o6-actions input[type=checkbox]{accent-color:#64DD17;cursor:pointer}
.o6-actions button{font-size:10px;color:#58a6ff;background:#58a6ff14;border:1px solid #58a6ff44;
  border-radius:3px;padding:3px 8px;cursor:pointer;font-family:inherit;margin-left:auto}
.o6-actions button:hover{background:#58a6ff30}
.o6-connect{border-top:1px solid #161b22;padding-top:10px;margin-top:2px}
.o6-connect-hint{font-size:9px;color:#484f58;padding-bottom:6px;line-height:1.4}
.o6-connect input[type=text]{width:100%;background:#161b22;border:1px solid #21262d;border-radius:3px;
  color:#c9d1d9;font-size:11px;padding:4px 8px;outline:none;font-family:inherit;margin-bottom:6px}
.o6-connect textarea{width:100%;height:64px;background:#0d1117;border:1px solid #21262d;border-radius:3px;
  color:#7ee787;font-size:10px;font-family:'Courier New',Courier,monospace;padding:6px 8px;
  resize:vertical;outline:none}
.o6-connect-btns{display:flex;gap:6px;padding-top:6px}
.o6-connect-btns button{font-size:10px;color:#64DD17;background:#64DD1714;border:1px solid #64DD1744;
  border-radius:3px;padding:4px 9px;cursor:pointer;font-family:inherit}
.o6-connect-btns button:hover{background:#64DD1730}
.o6-connect-btns .copied{color:#f0f6ff;background:#64DD1755;border-color:#64DD17}
