:root{--color-bg: #f7f8fa;--color-surface: #ffffff;--color-text: #14202e;--color-muted: #4f5b6b;--color-border: #d5dae1;--color-accent: #0b5d66;--color-accent-text: #ffffff;--color-danger: #a63a2b;--color-brand-navy: #14202e;--color-brand-teal: #0b5d66;--color-brand-teal-light: #7fd1c7;--color-brand-on-navy: #c9d0d9;--font-body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;--radius: 6px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px}@media(prefers-color-scheme:dark){:root{--color-bg: #0e1620;--color-surface: #182433;--color-text: #e8ecf1;--color-muted: #c9d0d9;--color-border: #2e3b4c;--color-accent: #7fd1c7;--color-accent-text: #14202e;--color-danger: #ef8a7a}}*{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:15px;line-height:1.5}main{max-width:960px;margin:0 auto;padding:var(--space-8) var(--space-4);display:grid;gap:var(--space-6)}h1,h2{margin:0;line-height:1.2}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-6);display:grid;gap:var(--space-4)}.auth-screen{min-height:100vh;background:var(--color-brand-navy);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-6);padding:var(--space-8) var(--space-4)}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-size:22px;font-weight:700;letter-spacing:-.01em}.brand-mark{width:32px;height:32px;display:block}.login{width:100%;max-width:400px;color:var(--color-text);border-radius:14px;padding:var(--space-8) var(--space-6);box-shadow:0 24px 60px #00000059}.login-head{display:grid;gap:var(--space-1)}.login-head p{margin:0;font-size:14px}.login button[type=submit]{padding:var(--space-3) var(--space-4);font-weight:600;border-radius:8px}.login input:focus-visible,.login button:focus-visible{outline:2px solid var(--color-brand-teal-light);outline-offset:2px}label{display:grid;gap:var(--space-1);font-size:14px;color:var(--color-muted)}input,select{font:inherit;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text)}button{font:inherit;padding:var(--space-2) var(--space-4);border-radius:var(--radius);border:1px solid var(--color-accent);background:var(--color-accent);color:var(--color-accent-text);cursor:pointer}button.secondary{background:transparent;color:var(--color-accent)}button:disabled{opacity:.6;cursor:default}.error{color:var(--color-danger);margin:0}.muted{color:var(--color-muted)}header.bar{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:var(--space-2);border-bottom:1px solid var(--color-border)}.row{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:end}.row>label{flex:1 1 160px}.login p{margin:0}.qr{width:200px;height:200px;margin:0 auto;padding:var(--space-2);background:#fff;border-radius:var(--radius)}.qr svg{display:block;width:100%;height:100%}.secret{font-family:var(--font-mono);font-size:14px;word-break:break-all}.login label{min-width:0}.login input{width:100%;min-width:0}input.code{font-family:var(--font-mono);font-size:22px;letter-spacing:.3em;text-align:center;padding-left:calc(var(--space-3) + .3em)}summary{cursor:pointer;color:var(--color-accent);font-size:14px}a.button{display:block;text-align:center;text-decoration:none;font:inherit;padding:var(--space-2) var(--space-4);border-radius:var(--radius);border:1px solid var(--color-accent)}a.button.secondary{background:transparent;color:var(--color-accent)}.divider{text-align:center;color:var(--color-muted);font-size:14px}textarea{font:inherit;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);resize:vertical;width:100%}.small{font-size:13px}.mono{font-family:var(--font-mono);font-size:13px}.prewrap{white-space:pre-wrap;margin:0}.row.end{justify-content:flex-end}.row.spread{justify-content:space-between;align-items:center}label.inline{display:flex;align-items:center;gap:var(--space-2)}.notice{margin:0;padding:var(--space-3);border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-bg);font-size:14px}button.link{background:none;border:none;padding:0;color:var(--color-accent);text-align:left;text-decoration:underline}.tabs{display:flex;gap:var(--space-2);border-bottom:1px solid var(--color-border);flex-wrap:wrap}.tab{background:transparent;color:var(--color-muted);border:none;border-bottom:2px solid transparent;border-radius:0}.tab.active{color:var(--color-text);border-bottom-color:var(--color-accent);font-weight:600}.dialog{border:1px solid var(--color-border);border-radius:10px;padding:0;width:min(560px,calc(100vw - 32px));background:var(--color-surface);color:var(--color-text)}.dialog::backdrop{background:#14202e80}.dialog-body,.grid-form{display:grid;gap:var(--space-3)}.dialog-body{padding:var(--space-6)}.detail{display:grid;gap:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-4)}.detail h3,.detail h4{margin:0}.detail h4{font-size:14px;color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em}tr.selected td{background:var(--color-bg)}.badge{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;border:1px solid var(--color-border);white-space:nowrap}.badge.status-new{border-color:var(--color-accent);color:var(--color-accent)}.badge.status-waiting_on_reporter{border-color:var(--color-danger);color:var(--color-danger)}.events{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2);font-size:14px}.events li{padding-left:var(--space-3);border-left:2px solid var(--color-border)}.events li.internal{border-left-color:var(--color-muted);background:var(--color-bg)}.context{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-1) var(--space-4);margin:0;font-size:14px}.context dt{color:var(--color-muted)}.context dd{margin:0;word-break:break-word}
