:root { color-scheme: light dark; --bg: #f6f7f9; --card: #ffffff; --text: #1c2128; --muted: #5b6672; --border: #d5dae0; --accent: #2f6fed; --accent-text: #ffffff; --ok: #1a8a4a; --warn: #b7791f; --bad: #c0392b; --radius: 8px; --gap: 12px; --font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; } @media (prefers-color-scheme: dark) { :root { --bg: #14181d; --card: #1d232a; --text: #e8ecf0; --muted: #97a3b0; --border: #323b45; --accent: #5b92ff; --accent-text: #0b1220; --ok: #4cc27f; --warn: #e0b04a; --bad: #ee7b6e; } } * { box-sizing: border-box; } body { margin: 0; background: var(--bg); color: var(--text); font: 14px/1.45 var(--font); width: 100%; min-width: 260px; max-width: 420px; } body.page { max-width: 640px; margin: 0 auto; } main { padding: var(--gap); display: grid; gap: var(--gap); } h1 { font-size: 1.15rem; margin: 0; } h2 { font-size: 0.95rem; margin: 0 0 6px; } p { margin: 0 0 8px; } .card { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: var(--gap); } .muted { color: var(--muted); font-size: 0.85rem; } .row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; } .status { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; } .dot { width: 10px; height: 10px; border-radius: 50%; background: var(--muted); } .dot.online { background: var(--ok); } .dot.connecting, .dot.backoff { background: var(--warn); } .dot.halted { background: var(--bad); } .counters { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 8px; } .counter { border: 1px solid var(--border); border-radius: var(--radius); padding: 8px; } .counter strong { display: block; font-size: 1.1rem; } label { display: grid; gap: 4px; margin-bottom: 8px; font-size: 0.85rem; color: var(--muted); } input { width: 100%; font: inherit; color: var(--text); background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius); padding: 7px 9px; } button, .button { font: inherit; cursor: pointer; color: var(--text); background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: 7px 12px; text-decoration: none; } button.primary { background: var(--accent); color: var(--accent-text); border-color: var(--accent); } button.danger { color: var(--bad); } button:disabled { opacity: 0.5; cursor: not-allowed; } .switch { display: inline-flex; align-items: center; gap: 8px; margin: 0; color: var(--text); font-size: 1rem; font-weight: 600; } .switch input { width: 20px; height: 20px; } .notice { border-left: 3px solid var(--warn); padding-left: 10px; } .error { color: var(--bad); min-height: 1.2em; word-break: break-word; } .pair { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 8px; } details > summary { cursor: pointer; font-weight: 600; margin-bottom: 8px; } ul { margin: 0 0 8px; padding-left: 20px; } li { margin-bottom: 4px; }