:root {
  --bg: #0a0e1a; --panel: #111827; --line: #1f2937; --text: #e5e7eb;
  --dim: #6b7280; --accent: #22d3ee; --ok: #10b981; --warn: #f59e0b; --bad: #f43f5e;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--text); font: 14px/1.5 ui-sans-serif, system-ui, sans-serif; }
.mono, code { font-family: ui-monospace, "SF Mono", Menlo, monospace; }
.dim { color: var(--dim); } .err { color: var(--bad); }
header { display: flex; justify-content: space-between; align-items: center; padding: 14px 20px; border-bottom: 1px solid var(--line); }
.brand { font-weight: 800; letter-spacing: .08em; }
.brand span { color: var(--accent); font-size: 11px; letter-spacing: .2em; }
.conn { font-family: ui-monospace, monospace; font-size: 11px; color: var(--dim); }
main { max-width: 1080px; margin: 0 auto; padding: 20px; }
nav { display: flex; gap: 6px; margin-bottom: 16px; }
nav button { background: transparent; border: 1px solid var(--line); color: var(--dim); padding: 7px 14px; border-radius: 8px; cursor: pointer; font: 600 12px ui-sans-serif; }
nav button.on { color: var(--text); border-color: var(--accent); background: rgba(34,211,238,.08); }
nav .right { margin-left: auto; color: var(--bad); }
.tab { display: none; } .tab.on { display: block; }
.card { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 16px; }
.gate { max-width: 420px; margin: 12vh auto; }
.gate h1 { margin: 0 0 6px; font-size: 16px; }
input { width: 100%; background: #0b1220; border: 1px solid var(--line); color: var(--text); border-radius: 8px; padding: 10px 12px; font: 13px ui-monospace, monospace; margin: 8px 0; }
button.primary { background: var(--accent); color: #04121a; font-weight: 700; border: 0; border-radius: 8px; padding: 10px 16px; cursor: pointer; width: 100%; margin-top: 8px; }
button.ghost { background: transparent; border: 1px solid var(--line); color: var(--text); border-radius: 8px; padding: 5px 12px; cursor: pointer; font: 600 11px ui-sans-serif; }
button.ghost.danger { color: var(--bad); border-color: rgba(244,63,94,.4); }
.toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
table { width: 100%; border-collapse: collapse; background: var(--panel); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
th { text-align: left; font-size: 10px; letter-spacing: .12em; color: var(--dim); padding: 10px 12px; border-bottom: 1px solid var(--line); }
td { padding: 9px 12px; border-bottom: 1px solid var(--line); font-size: 12px; }
#tasks-body tr { cursor: pointer; }
#tasks-body tr:hover { background: rgba(34,211,238,.04); }
.detail { background: #0b1220; border: 1px solid var(--line); border-radius: 12px; padding: 14px; margin-top: 12px; font: 11px/1.7 ui-monospace, monospace; color: var(--dim); white-space: pre-wrap; max-height: 340px; overflow: auto; }
.qr-wrap { display: flex; justify-content: center; padding: 16px; background: #fff; border-radius: 12px; width: min(300px, 100%); margin: 16px auto; }
.qr-wrap svg { width: 100%; height: auto; }
