| :root { |
| color-scheme: dark; |
| --bg: #0f1115; |
| --panel: rgba(24, 26, 31, 0.92); |
| --panel-2: rgba(18, 20, 24, 0.86); |
| --line: rgba(230, 215, 177, 0.18); |
| --text: #f2efe8; |
| --muted: #a9a397; |
| --gold: #e0b95b; |
| --green: #76dcbf; |
| --red: #ff6f61; |
| font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; |
| } |
|
|
| * { |
| box-sizing: border-box; |
| } |
|
|
| body { |
| margin: 0; |
| min-height: 100vh; |
| background: var(--bg); |
| color: var(--text); |
| } |
|
|
| #field { |
| position: fixed; |
| inset: 0; |
| width: 100%; |
| height: 100%; |
| z-index: -1; |
| } |
|
|
| .shell { |
| width: min(1280px, calc(100vw - 32px)); |
| margin: 0 auto; |
| padding: 28px 0 36px; |
| } |
|
|
| .search-stage { |
| min-height: 44vh; |
| display: grid; |
| align-content: center; |
| gap: 18px; |
| } |
|
|
| .mark { |
| display: inline-flex; |
| align-items: center; |
| gap: 10px; |
| color: var(--gold); |
| font-weight: 700; |
| letter-spacing: 0; |
| } |
|
|
| .mark-dot { |
| width: 10px; |
| height: 10px; |
| border-radius: 50%; |
| background: var(--gold); |
| box-shadow: 0 0 18px rgba(224, 185, 91, 0.7); |
| } |
|
|
| .search-box { |
| display: grid; |
| grid-template-columns: 1fr auto; |
| gap: 10px; |
| padding: 10px; |
| border: 1px solid var(--line); |
| background: rgba(12, 13, 16, 0.82); |
| } |
|
|
| .search-box input, |
| .service-form input { |
| min-width: 0; |
| border: 1px solid rgba(255, 255, 255, 0.1); |
| background: rgba(255, 255, 255, 0.06); |
| color: var(--text); |
| font: inherit; |
| padding: 13px 14px; |
| outline: none; |
| } |
|
|
| .search-box input:focus, |
| .service-form input:focus { |
| border-color: rgba(224, 185, 91, 0.72); |
| } |
|
|
| button, |
| .route-actions a { |
| border: 1px solid rgba(224, 185, 91, 0.32); |
| background: rgba(224, 185, 91, 0.12); |
| color: var(--text); |
| font: inherit; |
| padding: 12px 14px; |
| cursor: pointer; |
| text-decoration: none; |
| } |
|
|
| button:hover, |
| .route-actions a:hover { |
| background: rgba(224, 185, 91, 0.22); |
| } |
|
|
| .quick-row, |
| .command-list, |
| .route-actions { |
| display: flex; |
| flex-wrap: wrap; |
| gap: 8px; |
| } |
|
|
| .status-strip { |
| display: flex; |
| flex-wrap: wrap; |
| gap: 8px; |
| } |
|
|
| .status-strip span { |
| border: 1px solid rgba(118, 220, 191, 0.2); |
| background: rgba(118, 220, 191, 0.08); |
| color: var(--green); |
| padding: 8px 10px; |
| } |
|
|
| .dashboard { |
| display: grid; |
| grid-template-columns: repeat(3, minmax(0, 1fr)); |
| gap: 12px; |
| } |
|
|
| .gauge, |
| .panel { |
| border: 1px solid var(--line); |
| background: var(--panel); |
| } |
|
|
| .gauge { |
| padding: 16px; |
| min-height: 130px; |
| } |
|
|
| .gauge-top, |
| .panel-head { |
| display: flex; |
| align-items: baseline; |
| justify-content: space-between; |
| gap: 16px; |
| } |
|
|
| .gauge-top span, |
| .panel-head span, |
| .gauge-meta, |
| .route-card p { |
| color: var(--muted); |
| } |
|
|
| .gauge-top strong { |
| color: var(--gold); |
| font-size: 1.25rem; |
| } |
|
|
| .gauge-bar { |
| height: 8px; |
| margin: 20px 0 14px; |
| background: rgba(255, 255, 255, 0.08); |
| } |
|
|
| .gauge-bar span { |
| display: block; |
| height: 100%; |
| width: 0; |
| background: linear-gradient(90deg, var(--green), var(--gold)); |
| } |
|
|
| .gauge-meta { |
| display: flex; |
| justify-content: space-between; |
| gap: 10px; |
| font-size: 0.92rem; |
| } |
|
|
| .gauge-meta.tall { |
| display: grid; |
| justify-content: stretch; |
| gap: 8px; |
| margin-top: 18px; |
| } |
|
|
| .result-grid { |
| display: grid; |
| grid-template-columns: minmax(0, 1fr) 380px; |
| gap: 14px; |
| align-items: start; |
| } |
|
|
| .panel { |
| padding: 16px; |
| } |
|
|
| .panel h1, |
| .panel h2, |
| .route-card h3 { |
| margin: 0; |
| letter-spacing: 0; |
| } |
|
|
| pre { |
| margin: 16px 0 0; |
| max-height: 520px; |
| overflow: auto; |
| padding: 14px; |
| background: var(--panel-2); |
| border: 1px solid rgba(255, 255, 255, 0.08); |
| color: #ded8ca; |
| font-size: 0.86rem; |
| } |
|
|
| .command-panel { |
| display: grid; |
| gap: 14px; |
| } |
|
|
| .route-card { |
| border-top: 1px solid var(--line); |
| border-bottom: 1px solid var(--line); |
| padding: 14px 0; |
| } |
|
|
| .service-form { |
| display: grid; |
| gap: 8px; |
| } |
|
|
| .service-form label { |
| color: var(--gold); |
| font-weight: 700; |
| } |
|
|
| .console { |
| margin-bottom: 14px; |
| display: grid; |
| gap: 12px; |
| } |
|
|
| .connect-bar { |
| display: grid; |
| grid-template-columns: 1fr auto; |
| gap: 10px; |
| } |
|
|
| .connect-bar input { |
| min-width: 0; |
| border: 1px solid rgba(255, 255, 255, 0.1); |
| background: rgba(255, 255, 255, 0.06); |
| color: var(--text); |
| font: inherit; |
| padding: 13px 14px; |
| outline: none; |
| } |
|
|
| .connect-bar input:focus { |
| border-color: rgba(224, 185, 91, 0.72); |
| } |
|
|
| .connect-status { |
| padding: 10px 12px; |
| border: 1px solid var(--line); |
| background: var(--panel-2); |
| color: var(--muted); |
| font-size: 0.9rem; |
| } |
|
|
| .connect-status[data-tone="ok"] { |
| border-color: rgba(118, 220, 191, 0.3); |
| color: var(--green); |
| } |
|
|
| .connect-status[data-tone="warn"] { |
| border-color: rgba(224, 185, 91, 0.4); |
| color: var(--gold); |
| } |
|
|
| .connect-status[data-tone="err"] { |
| border-color: rgba(255, 111, 97, 0.4); |
| color: var(--red); |
| } |
|
|
| .endpoint-list { |
| display: grid; |
| gap: 6px; |
| max-height: 460px; |
| overflow: auto; |
| } |
|
|
| .endpoint-row { |
| border: 1px solid rgba(255, 255, 255, 0.08); |
| background: var(--panel-2); |
| } |
|
|
| .endpoint-head { |
| display: flex; |
| align-items: center; |
| gap: 10px; |
| padding: 10px 12px; |
| cursor: pointer; |
| } |
|
|
| .endpoint-head:hover { |
| background: rgba(224, 185, 91, 0.06); |
| } |
|
|
| .method-badge { |
| border: 1px solid; |
| padding: 2px 8px; |
| font-size: 0.72rem; |
| font-weight: 700; |
| font-family: ui-monospace, SFMono-Regular, Menlo, monospace; |
| letter-spacing: 0.5px; |
| min-width: 54px; |
| text-align: center; |
| } |
|
|
| .ep-path { |
| font-family: ui-monospace, SFMono-Regular, Menlo, monospace; |
| color: var(--text); |
| } |
|
|
| .ep-summary { |
| color: var(--muted); |
| font-size: 0.85rem; |
| margin-left: auto; |
| text-align: right; |
| } |
|
|
| .endpoint-detail { |
| display: grid; |
| gap: 8px; |
| padding: 12px; |
| border-top: 1px solid rgba(255, 255, 255, 0.08); |
| } |
|
|
| .detail-label { |
| color: var(--gold); |
| font-weight: 700; |
| font-size: 0.8rem; |
| } |
|
|
| .endpoint-detail input, |
| .body-area { |
| border: 1px solid rgba(255, 255, 255, 0.1); |
| background: rgba(255, 255, 255, 0.06); |
| color: var(--text); |
| font: inherit; |
| padding: 10px 12px; |
| outline: none; |
| } |
|
|
| .body-area { |
| font-family: ui-monospace, SFMono-Regular, Menlo, monospace; |
| font-size: 0.85rem; |
| resize: vertical; |
| } |
|
|
| .ep-response { |
| margin: 6px 0 0; |
| max-height: 320px; |
| } |
|
|
| .mono { |
| font-family: ui-monospace, SFMono-Regular, Menlo, monospace; |
| font-size: 0.85rem; |
| } |
|
|
| @media (max-width: 900px) { |
| .dashboard, |
| .result-grid { |
| grid-template-columns: 1fr; |
| } |
|
|
| .shell { |
| width: min(100vw - 18px, 720px); |
| padding-top: 14px; |
| } |
| } |
|
|