:root { --bg: #0f1115; --card: #171a21; --border: #2a303c; --text: #e8eaed; --muted: #9aa0a6; --accent: #7aa2ff; --ok: #3dd68c; --degraded: #f5a524; --down: #f07178; --stopped: #6b7280; } * { box-sizing: border-box; } body { margin: 0; font: 14px/1.45 system-ui, Segoe UI, sans-serif; background: var(--bg); color: var(--text); } header { display: flex; justify-content: space-between; align-items: center; padding: 12px 20px; border-bottom: 1px solid var(--border); } h1 { margin: 0; font-size: 18px; font-weight: 600; } h2 { margin: 0 0 12px; font-size: 15px; font-weight: 600; } .header-right { display: flex; gap: 16px; align-items: center; } .muted { color: var(--muted); } .card { margin: 16px 20px; padding: 16px; background: var(--card); border: 1px solid var(--border); border-radius: 8px; } .grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; } .span2 { grid-column: span 2; } label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted); } input, select, button, textarea { font: inherit; color: var(--text); background: #0c0e12; border: 1px solid var(--border); border-radius: 6px; padding: 7px 9px; } textarea { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; line-height: 1.4; resize: vertical; min-height: 4.5em; white-space: pre; } button { background: #243044; border-color: #334155; cursor: pointer; } button:hover { border-color: var(--accent); } button.ghost { background: transparent; } button.danger { border-color: #7f1d1d; color: #fecaca; } .actions { display: flex; gap: 8px; align-items: end; } .token-box input { width: 180px; } .row-between { display: flex; justify-content: space-between; align-items: center; } .table-wrap { overflow-x: auto; } table { width: 100%; border-collapse: collapse; } th, td { text-align: left; padding: 8px 6px; border-bottom: 1px solid var(--border); vertical-align: middle; } th { color: var(--muted); font-weight: 500; font-size: 12px; } .pill { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 12px; background: #222; } .pill.ok { color: var(--ok); } .pill.degraded { color: var(--degraded); } .pill.down, .pill.starting { color: var(--down); } .pill.stopped { color: var(--stopped); } .pill.claim { color: #c4b5fd; background: #1f1635; } .row-actions { display: flex; flex-wrap: wrap; gap: 6px; } .row-actions button { padding: 4px 8px; font-size: 12px; } .msg { min-height: 1.2em; margin: 8px 0 0; } .msg.err { color: var(--down); } a { color: var(--accent); } dialog { border: 1px solid var(--border); background: var(--card); color: var(--text); border-radius: 8px; padding: 16px; min-width: min(560px, 92vw); } dialog::backdrop { background: rgba(0,0,0,.55); } @media (max-width: 720px) { .grid { grid-template-columns: 1fr; } .span2 { grid-column: span 1; } header { flex-direction: column; align-items: flex-start; gap: 8px; } }