/* ═══════════════════════════════════════════════════════════════
   STARFIELD — Global Dashboard Theme
   Bethesda《星空》NASA-punk HUD 风格
   橙白主色 / 深空灰底 / 干净圆角 / HUD 数据展示
   ═══════════════════════════════════════════════════════════════ */

/* ── 1. Starfield Color System ── */
:root {
  --bg-primary: #0c0f14 !important;
  --bg-secondary: #141820 !important;
  --bg-tertiary: #1a1f2a !important;
  --bg-hover: #222838 !important;
  --border: #2a3040 !important;
  --border-color: #2a3040 !important;
  --text-primary: #e8e6e0 !important;
  --text-secondary: #8a8e9a !important;
  --text-muted: #505468 !important;
  --accent-blue: #4a9eff !important;
  --accent-green: #4ade80 !important;
  --accent-orange: #e8792b !important;
  --accent-red: #ef4444 !important;
  --accent-purple: #a78bfa !important;
  --accent-yellow: #f5b731 !important;
}

/* ── 2. Page Background ── */
body {
  background: #080a10 !important;
  font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif !important;
}

.canvas {
  background: #0c0f14 !important;
  border-color: #2a3040 !important;
}

.canvas-grid {
  background-image:
    linear-gradient(rgba(74, 158, 255, 0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(74, 158, 255, 0.02) 1px, transparent 1px) !important;
}

/* ── 3. Starfield Subtle Vignette ── */
body::before {
  content: '';
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(
    ellipse at center,
    transparent 50%,
    rgba(0, 0, 0, 0.3) 100%
  );
  pointer-events: none;
  z-index: 99998;
}

/* ── 4. Dash Card — Starfield Panel ── */
.placed-widget .dash-card {
  background: linear-gradient(180deg, rgba(20,24,32,0.97), rgba(14,17,24,0.95)) !important;
  border: 1px solid #2a3040 !important;
  border-radius: 10px !important;
  box-shadow:
    0 4px 24px rgba(0,0,0,0.5),
    inset 0 1px 0 rgba(255,255,255,0.04) !important;
  backdrop-filter: none !important;
}

.placed-widget .dash-card-head {
  background: linear-gradient(90deg, rgba(232,121,43,0.08), rgba(74,158,255,0.04)) !important;
  border-bottom: 1px solid #2a3040 !important;
  padding: 10px 14px !important;
  backdrop-filter: none !important;
}

.placed-widget .dash-card-title {
  color: #e8792b !important;
  font-family: 'Segoe UI', -apple-system, sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
}

.placed-widget .dash-card-badge {
  color: #8a8e9a !important;
  background: rgba(232,121,43,0.1) !important;
  border: 1px solid rgba(232,121,43,0.2) !important;
  font-family: 'Segoe UI', sans-serif !important;
}

.placed-widget .dash-card-body {
  color: #8a8e9a !important;
  font-family: 'Segoe UI', sans-serif !important;
}

/* ── 5. KPI Cards ── */
.placed-widget .kpi-card {
  background: linear-gradient(180deg, rgba(20,24,32,0.97), rgba(14,17,24,0.9)) !important;
  border: 1px solid #2a3040 !important;
  border-radius: 10px !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.03) !important;
}

.placed-widget .kpi-value {
  font-family: 'Segoe UI', sans-serif !important;
  font-weight: 700 !important;
}
.placed-widget .kpi-value.blue { color: #4a9eff !important; }
.placed-widget .kpi-value.green { color: #4ade80 !important; }
.placed-widget .kpi-value.orange { color: #e8792b !important; }
.placed-widget .kpi-value.red { color: #ef4444 !important; }

.placed-widget .kpi-label {
  color: #8a8e9a !important;
  font-family: 'Segoe UI', sans-serif !important;
  text-transform: uppercase !important;
  letter-spacing: 0.8px !important;
  font-size: 10px !important;
  font-weight: 500 !important;
}

.placed-widget .kpi-indicator.green { background: #4ade80 !important; box-shadow: 0 0 6px rgba(74,222,128,0.3) !important; }
.placed-widget .kpi-indicator.yellow { background: #f5b731 !important; box-shadow: 0 0 6px rgba(245,183,49,0.3) !important; }
.placed-widget .kpi-indicator.red { background: #ef4444 !important; box-shadow: 0 0 6px rgba(239,68,68,0.3) !important; }

/* ── 6. KPI Ring ── */
.placed-widget .kpi-ring-label {
  color: #e8e6e0 !important;
  font-family: 'Segoe UI', sans-serif !important;
  font-weight: 600 !important;
}

/* ── 7. System Stats ── */
.placed-widget .sys-row {
  color: #8a8e9a !important;
  font-family: 'Segoe UI', sans-serif !important;
}
.placed-widget .sys-bar {
  background: #1a1f2a !important;
  border: 1px solid #2a3040 !important;
  border-radius: 3px !important;
}
.placed-widget .sys-bar-fill {
  border-radius: 2px !important;
}

/* ── 8. Lists & Rows ── */
.placed-widget .task-row,
.placed-widget .goal-row,
.placed-widget .goal-tree-node,
.placed-widget .net-row,
.placed-widget .docker-row,
.placed-widget .uptime-row {
  border-color: #1e2330 !important;
  font-family: 'Segoe UI', sans-serif !important;
}
.placed-widget .task-row:hover,
.placed-widget .goal-row:hover {
  background: rgba(232,121,43,0.05) !important;
}

/* ── 9. Checkboxes ── */
.placed-widget input[type="checkbox"] {
  accent-color: #e8792b !important;
}

/* ── 10. Chart.js ── */
.placed-widget canvas {
  filter: brightness(0.9) contrast(1.05) !important;
}

/* ── 11. Clock ── */
.placed-widget .clock-time,
.placed-widget .topbar-time {
  color: #e8e6e0 !important;
  font-family: 'Segoe UI', sans-serif !important;
  font-weight: 300 !important;
  letter-spacing: 2px !important;
}
.placed-widget .clock-date,
.placed-widget .topbar-date {
  color: #8a8e9a !important;
  font-family: 'Segoe UI', sans-serif !important;
}

/* ── 12. Scrollbars ── */
.placed-widget ::-webkit-scrollbar { width: 5px !important; }
.placed-widget ::-webkit-scrollbar-track { background: transparent !important; }
.placed-widget ::-webkit-scrollbar-thumb {
  background: #2a3040 !important;
  border-radius: 3px !important;
}
.placed-widget ::-webkit-scrollbar-thumb:hover {
  background: #e8792b !important;
}

/* ── 13. Header ── */
.builder-header {
  background: #0c0f14 !important;
  border-bottom: 1px solid #2a3040 !important;
}
.builder-header .logo-img {
  filter: brightness(1.1) !important;
}
.header-nav .nav-link {
  color: #8a8e9a !important;
  font-family: 'Segoe UI', sans-serif !important;
  font-weight: 500 !important;
}
.header-nav .nav-link:hover {
  color: #e8792b !important;
}

/* ── 14. Buttons ── */
.btn-primary {
  background: linear-gradient(180deg, #f08830, #d06818) !important;
  border: 1px solid #e8792b !important;
  color: #fff !important;
  font-family: 'Segoe UI', sans-serif !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  border-radius: 6px !important;
}
.btn-primary:hover {
  background: linear-gradient(180deg, #f89838, #e8792b) !important;
  box-shadow: 0 0 16px rgba(232,121,43,0.3) !important;
}
.btn-secondary {
  background: transparent !important;
  border-color: #2a3040 !important;
  color: #8a8e9a !important;
  font-family: 'Segoe UI', sans-serif !important;
  border-radius: 6px !important;
}
.btn-secondary:hover {
  border-color: #e8792b !important;
  color: #e8792b !important;
}

/* ── 15. Sidebar Panels ── */
.widget-panel {
  background: #0c0f14 !important;
  border-right: 1px solid #2a3040 !important;
}
.widget-panel h3, .widget-panel h4 {
  color: #e8792b !important;
  font-family: 'Segoe UI', sans-serif !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
  font-weight: 600 !important;
}
.widget-item {
  background: rgba(232,121,43,0.03) !important;
  border: 1px solid #1e2330 !important;
  color: #8a8e9a !important;
  font-family: 'Segoe UI', sans-serif !important;
  border-radius: 6px !important;
}
.widget-item:hover {
  border-color: #e8792b !important;
  background: rgba(232,121,43,0.08) !important;
  color: #e8e6e0 !important;
}

.properties-panel {
  background: #0c0f14 !important;
  border-left: 1px solid #2a3040 !important;
}
.properties-panel h3 {
  color: #e8792b !important;
  font-family: 'Segoe UI', sans-serif !important;
}
.properties-panel label {
  color: #8a8e9a !important;
  font-family: 'Segoe UI', sans-serif !important;
}
.properties-panel input,
.properties-panel select {
  background: #141820 !important;
  border-color: #2a3040 !important;
  color: #e8e6e0 !important;
  font-family: 'Segoe UI', sans-serif !important;
  border-radius: 4px !important;
}

/* ── 16. Canvas Info ── */
.canvas-info {
  background: #0c0f14 !important;
  border-top: 1px solid #2a3040 !important;
  color: #8a8e9a !important;
  font-family: 'Segoe UI', sans-serif !important;
}

/* ── 17. Edit Layout Button ── */
#btn-edit-layout {
  background: linear-gradient(180deg, #f08830, #d06818) !important;
  border-color: #e8792b !important;
  color: #fff !important;
  border-radius: 6px !important;
}

/* ── 18. Empty Hint ── */
.view-empty-hint .hint-text {
  color: #8a8e9a !important;
}

/* ── 19. Global Font ── */
.canvas, .canvas *,
.placed-widget, .placed-widget * {
  font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif !important;
}

/* ── 20. Inline Color Overrides ── */
.placed-widget [style*="color:#8b949e"],
.placed-widget [style*="color: #8b949e"] {
  color: #8a8e9a !important;
}
.placed-widget [style*="color:#e6edf3"],
.placed-widget [style*="color: #e6edf3"],
.placed-widget [style*="color:#c9d1d9"],
.placed-widget [style*="color: #c9d1d9"] {
  color: #e8e6e0 !important;
}
.placed-widget [style*="background:#161b22"],
.placed-widget [style*="background: #161b22"],
.placed-widget [style*="background:#21262d"],
.placed-widget [style*="background: #21262d"] {
  background: #1a1f2a !important;
}
.placed-widget [style*="background:#0d1117"],
.placed-widget [style*="background: #0d1117"] {
  background: #141820 !important;
}
.placed-widget [style*="border-color:#30363d"],
.placed-widget [style*="border:1px solid #30363d"],
.placed-widget [style*="border: 1px solid #30363d"] {
  border-color: #2a3040 !important;
}
.placed-widget [style*="color:#58a6ff"],
.placed-widget [style*="color: #58a6ff"] {
  color: #4a9eff !important;
}
.placed-widget [style*="color:#3fb950"],
.placed-widget [style*="color: #3fb950"] {
  color: #4ade80 !important;
}
.placed-widget [style*="color:#f85149"],
.placed-widget [style*="color: #f85149"] {
  color: #ef4444 !important;
}
.placed-widget [style*="color:#d29922"],
.placed-widget [style*="color: #d29922"] {
  color: #f5b731 !important;
}
.placed-widget [style*="color:#a371f7"],
.placed-widget [style*="color: #a371f7"] {
  color: #a78bfa !important;
}
.placed-widget [style*="background:#3fb950"],
.placed-widget [style*="background: #3fb950"] {
  background: #4ade80 !important;
}
.placed-widget [style*="background:#58a6ff"],
.placed-widget [style*="background: #58a6ff"] {
  background: #4a9eff !important;
}
.placed-widget [style*="background:#f85149"],
.placed-widget [style*="background: #f85149"] {
  background: #ef4444 !important;
}
.placed-widget [style*="background:#d29922"],
.placed-widget [style*="background: #d29922"] {
  background: #f5b731 !important;
}

/* ── 21. Starfield HUD Accent Lines ── */
.placed-widget .dash-card::before {
  content: '';
  position: absolute;
  top: 0; left: 12px; right: 12px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(232,121,43,0.3), transparent);
  z-index: 1;
}

/* ── 22. Selection State ── */
.placed-widget.selected .dash-card,
.placed-widget.selected .kpi-card {
  border-color: #e8792b !important;
  box-shadow: 0 0 20px rgba(232,121,43,0.2), 0 4px 24px rgba(0,0,0,0.5) !important;
}
.sf-gd{position:relative;width:100%;height:100%;background:#0c0f14;border:1px solid #2a3040;border-radius:10px;overflow:hidden;font-family:'Segoe UI',-apple-system,sans-serif;color:#e8e6e0}
.sf-gd .cr{position:absolute;width:18px;height:18px;z-index:5}.sf-gd .cr.tl{top:6px;left:6px;border-top:2px solid #e8792b;border-left:2px solid #e8792b}.sf-gd .cr.tr{top:6px;right:6px;border-top:2px solid #e8792b;border-right:2px solid #e8792b}.sf-gd .cr.bl{bottom:6px;left:6px;border-bottom:2px solid #e8792b;border-left:2px solid #e8792b}.sf-gd .cr.br{bottom:6px;right:6px;border-bottom:2px solid #e8792b;border-right:2px solid #e8792b}
.sf-gd .scr{height:100%;display:flex;flex-direction:column;position:relative}
.sf-gd .scr::before{content:'';position:absolute;top:0;left:12px;right:12px;height:1px;background:linear-gradient(90deg,transparent,rgba(232,121,43,0.3),transparent);z-index:1}
.sf-gd .hd{display:flex;align-items:center;justify-content:space-between;padding:10px 28px;border-bottom:1px solid #1e2330;background:linear-gradient(180deg,rgba(232,121,43,0.04),transparent);flex-shrink:0}
.sf-gd .hd-l{display:flex;align-items:center;gap:8px}
.sf-gd .hd-t{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:3px;color:#e8792b}
.sf-gd .hd-c{text-align:center}
.sf-gd .hd-tm{font-size:16px;font-weight:200;letter-spacing:4px;color:#e8e6e0;line-height:1}
.sf-gd .hd-d{font-size:8px;color:#505468;letter-spacing:1.5px;text-transform:uppercase;margin-top:2px}
.sf-gd .hd-s{display:flex;align-items:center;gap:5px;font-size:8px;color:#505468;text-transform:uppercase;letter-spacing:1px}
.sf-gd .hd-s .dt{width:5px;height:5px;border-radius:50%;background:#4ade80;box-shadow:0 0 6px rgba(74,222,128,0.4)}
.sf-gd .tbs{display:flex;border-bottom:1px solid #2a3040;background:rgba(20,24,32,0.5);flex-shrink:0}
.sf-gd .tb{flex:1;padding:8px 0;text-align:center;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:1.5px;color:#505468;cursor:pointer;position:relative;transition:all .2s}
.sf-gd .tb.on{color:#e8792b}
.sf-gd .tb.on::after{content:'';position:absolute;bottom:0;left:20%;right:20%;height:2px;background:#e8792b;border-radius:1px}
.sf-gd .bd{flex:1;overflow-y:auto;padding:12px 16px}
.sf-gd .bd::-webkit-scrollbar{width:3px}.sf-gd .bd::-webkit-scrollbar-thumb{background:#2a3040;border-radius:2px}
.sf-gd .pn{display:none}.sf-gd .pn.on{display:block}
.sf-gd .sc{margin-bottom:10px;background:rgba(26,31,42,0.4);border:1px solid #2a3040;border-radius:8px;overflow:hidden}
.sf-gd .sc-h{display:flex;align-items:center;gap:7px;padding:8px 12px;border-bottom:1px solid #1e2330;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:2px;color:#8a8e9a}
.sf-gd .sc-h svg{width:13px;height:13px;opacity:.7;flex-shrink:0}
.sf-gd .sc-h .tg{margin-left:auto;font-size:8px;color:#4ade80;background:rgba(74,222,128,0.1);padding:2px 7px;border-radius:3px;border:1px solid rgba(74,222,128,0.2)}
.sf-gd .sc-b{padding:10px 12px}
.sf-gd .gr{display:flex;align-items:center;gap:14px}
.sf-gd .grg{position:relative;width:72px;height:72px;flex-shrink:0}
.sf-gd .grg svg{width:100%;height:100%;transform:rotate(-90deg)}
.sf-gd .grg .tk{fill:none;stroke:#1a1f2a;stroke-width:5}
.sf-gd .grg .fl{fill:none;stroke-width:5;stroke-linecap:round;transition:stroke-dashoffset .8s}
.sf-gd .grg .gc{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}
.sf-gd .grg .gn{font-size:20px;font-weight:300;color:#e8e6e0;letter-spacing:1px;line-height:1}
.sf-gd .grg .gu{font-size:6px;text-transform:uppercase;letter-spacing:1.5px;color:#505468;margin-top:1px}
.sf-gd .gi{flex:1}
.sf-gd .gi .gl{font-size:9px;text-transform:uppercase;letter-spacing:1.5px;color:#505468;margin-bottom:3px}
.sf-gd .gi .gd{font-size:11px;color:#8a8e9a;line-height:1.4}
.sf-gd .gi .gb{height:4px;background:#1a1f2a;border-radius:2px;margin-top:6px;overflow:hidden;border:1px solid #2a3040}
.sf-gd .gi .gb .gf{height:100%;border-radius:1px}
.sf-gd .qh{display:flex;align-items:center;gap:10px;padding:8px 10px;background:rgba(232,121,43,0.04);border:1px solid rgba(232,121,43,0.12);border-radius:6px}
.sf-gd .qh .mk{width:3px;height:30px;background:#e8792b;border-radius:2px;flex-shrink:0}
.sf-gd .qh .nm{font-size:13px;font-weight:600;color:#e8e6e0}
.sf-gd .qh .ht{font-size:9px;color:#505468;margin-top:2px}
.sf-gd .pr{display:flex;align-items:center;gap:10px}
.sf-gd .pr .pb{flex:1;height:6px;background:#1a1f2a;border-radius:3px;overflow:hidden;border:1px solid #2a3040}
.sf-gd .pr .pf{height:100%;border-radius:2px;background:linear-gradient(90deg,#4a9eff,#2563eb)}
.sf-gd .pr .pv{font-size:15px;font-weight:300;color:#4a9eff;letter-spacing:1px}
.sf-gd .sr{display:flex;align-items:center;gap:8px;padding:3px 0}
.sf-gd .sr .sn{font-size:10px;color:#8a8e9a;width:60px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sf-gd .sr .sb{flex:1;height:4px;background:#1a1f2a;border-radius:2px;overflow:hidden}
.sf-gd .sr .sf{height:100%;border-radius:1px}
.sf-gd .sr .sv{font-size:11px;font-weight:600;width:28px;text-align:right}
.sf-gd .og{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}
.sf-gd .op{padding:9px 6px;border:1px solid #1e2330;border-radius:6px;text-align:center;cursor:pointer;transition:all .15s;position:relative;overflow:hidden}
.sf-gd .op::before{content:'';position:absolute;top:0;left:0;right:0;height:2px}
.sf-gd .op.fi::before{background:#e8792b}.sf-gd .op.bo::before{background:#4a9eff}.sf-gd .op.mo::before{background:#505468}
.sf-gd .op:hover{border-color:#e8792b;background:rgba(232,121,43,0.04)}
.sf-gd .op .ic{font-size:15px;display:block;margin-bottom:2px}
.sf-gd .op .tl{font-size:7px;text-transform:uppercase;letter-spacing:1.5px;color:#505468}
.sf-gd .op .tx{font-size:10px;color:#e8e6e0;margin-top:2px;line-height:1.3}
.sf-gd .gs{display:flex;flex-direction:column;gap:6px}
.sf-gd .go{display:flex;align-items:center;gap:7px}
.sf-gd .go .dt2{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.sf-gd .go .nm2{font-size:10px;color:#e8e6e0;width:90px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sf-gd .go .br{flex:1;height:4px;background:#1a1f2a;border-radius:2px;overflow:hidden}
.sf-gd .go .fl2{height:100%;border-radius:1px}
.sf-gd .go .pc{font-size:10px;font-weight:600;width:28px;text-align:right}
.sf-gd .go .dl{font-size:8px;color:#505468;width:44px;text-align:right;flex-shrink:0}
@keyframes sfPulse{0%,100%{opacity:1}50%{opacity:.6}}
.sf-gd .pls{animation:sfPulse 2s ease-in-out infinite}
.sf-gd .term{font-size:10px;color:#505468;line-height:1.8}
.sf-gd .term .hi{color:#8a8e9a}
.sf-gd .term .ok{color:#4ade80}
.sf-gd .term .cn{color:#4a9eff}
.sf-gd .term .ac{color:#e8792b}
