:root{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color-scheme:dark;color:#e5e7eb;background-color:#030712}body{margin:0;min-width:320px;min-height:100vh;background-color:#030712}*{box-sizing:border-box}h1,h2,h3,h4{margin:0}button{font-family:inherit}button:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}input:focus-visible{outline:2px solid #3b82f6;outline-offset:-1px}#app{margin:0;padding:0}.app[data-v-0caefd4d]{min-height:100vh;padding:2rem;max-width:1024px;margin:0 auto;box-sizing:border-box}.login[data-v-0caefd4d]{max-width:360px;margin:10vh auto}.login h1[data-v-0caefd4d]{font-size:1.5rem;margin-bottom:1.5rem}.login form[data-v-0caefd4d]{display:flex;flex-direction:column;gap:.75rem}.login label[data-v-0caefd4d]{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:#9ca3af}.login input[data-v-0caefd4d]{padding:.6rem .75rem;font-size:1rem;background:#1f2937;border:1px solid #374151;border-radius:.375rem;color:#e5e7eb}.login button[data-v-0caefd4d]{padding:.6rem;font-size:1rem;font-weight:600;background:#3b82f6;color:#fff;border:0;border-radius:.375rem;cursor:pointer}.login button[data-v-0caefd4d]:hover{background:#2563eb}.dashboard header[data-v-0caefd4d]{display:flex;justify-content:space-between;align-items:center;padding-bottom:1rem;border-bottom:1px solid #1f2937;margin-bottom:1rem}.dashboard h1[data-v-0caefd4d]{font-size:1.25rem;display:flex;align-items:center;gap:.75rem;margin:0}.badge[data-v-0caefd4d]{font-size:.75rem;font-weight:700;padding:.2rem .5rem;border-radius:999px;color:#fff;letter-spacing:.03em}.running[data-v-0caefd4d]{font-size:.8rem;color:#6b7280}.running.on[data-v-0caefd4d]{color:#10b981}.meta[data-v-0caefd4d]{display:flex;gap:1rem;align-items:center}.ws[data-v-0caefd4d]{font-size:.75rem;font-weight:600}.ws.ok[data-v-0caefd4d]{color:#10b981}.ws.bad[data-v-0caefd4d]{color:#ef4444}.logout[data-v-0caefd4d]{padding:.35rem .75rem;font-size:.8rem;background:transparent;color:#9ca3af;border:1px solid #374151;border-radius:.25rem;cursor:pointer}.logout[data-v-0caefd4d]:hover{color:#e5e7eb;border-color:#6b7280}.tabs[data-v-0caefd4d]{display:flex;gap:.25rem;margin-bottom:1.25rem;border-bottom:1px solid #1f2937}.tab[data-v-0caefd4d]{display:flex;align-items:center;gap:.5rem;padding:.5rem .9rem;background:transparent;border:1px solid transparent;border-bottom:none;border-radius:.375rem .375rem 0 0;color:#9ca3af;cursor:pointer;font-size:.85rem;margin-bottom:-1px}.tab[data-v-0caefd4d]:hover{color:#e5e7eb;background:#111827}.tab.active[data-v-0caefd4d]{background:#111827;color:#e5e7eb;border-color:#1f2937}.tab-sym[data-v-0caefd4d]{font-weight:600;letter-spacing:.02em}.tab-state[data-v-0caefd4d]{font-size:.65rem;font-weight:700;padding:.1rem .4rem;border-radius:999px;color:#fff;letter-spacing:.03em}.tab-run[data-v-0caefd4d]{color:#4b5563;font-size:.75rem}.tab-run.on[data-v-0caefd4d]{color:#10b981}.grid[data-v-0caefd4d]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.card[data-v-0caefd4d]{background:#111827;border:1px solid #1f2937;padding:1rem 1.25rem;border-radius:.5rem}.card h3[data-v-0caefd4d]{margin:0 0 .75rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#6b7280}.big[data-v-0caefd4d]{font-size:2rem;font-weight:600;font-variant-numeric:tabular-nums}.row[data-v-0caefd4d]{display:flex;justify-content:space-between;padding:.3rem 0;font-variant-numeric:tabular-nums;font-size:.95rem}.row span[data-v-0caefd4d]:first-child{color:#9ca3af}.row.sub[data-v-0caefd4d]{font-size:.8rem;color:#6b7280}.row.sub span[data-v-0caefd4d]:first-child{color:#4b5563}.long[data-v-0caefd4d]{color:#10b981;font-weight:600}.short[data-v-0caefd4d]{color:#ef4444;font-weight:600}.empty[data-v-0caefd4d],.muted[data-v-0caefd4d]{color:#6b7280;font-style:italic}.error[data-v-0caefd4d]{margin-top:.5rem;color:#ef4444;font-size:.8rem}.ok[data-v-0caefd4d]{margin-top:.5rem;color:#10b981;font-size:.8rem}.controls[data-v-0caefd4d]{margin-top:2rem;padding:1.25rem;background:#111827;border:1px solid #1f2937;border-radius:.5rem}.controls h2[data-v-0caefd4d]{margin:0 0 1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#6b7280}.target-form[data-v-0caefd4d]{display:flex;gap:.75rem;align-items:flex-end;margin-bottom:1rem;flex-wrap:wrap}.target-form label[data-v-0caefd4d]{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:#9ca3af;flex:1 1 180px}.target-form label.narrow[data-v-0caefd4d]{flex:0 1 110px}.target-form input[data-v-0caefd4d],.target-form select[data-v-0caefd4d]{padding:.5rem .65rem;font-size:1rem;background:#1f2937;border:1px solid #374151;border-radius:.375rem;color:#e5e7eb;font-variant-numeric:tabular-nums}.target-form .hint[data-v-0caefd4d]{font-size:.75rem;color:#6b7280;flex:1 0 100%}.target-form.roll-form[data-v-0caefd4d]{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:.75rem;align-items:end}.target-form.roll-form>.hint[data-v-0caefd4d]{grid-column:1 / -1}.target-form.roll-form>label[data-v-0caefd4d]{flex:none}.target-form button[data-v-0caefd4d]{padding:.55rem 1rem;font-size:.9rem;font-weight:600;background:#374151;color:#e5e7eb;border:1px solid #4b5563;border-radius:.375rem;cursor:pointer}.target-form button[data-v-0caefd4d]:hover:not(:disabled){background:#4b5563}.target-form button[data-v-0caefd4d]:disabled{opacity:.4;cursor:not-allowed}.buttons[data-v-0caefd4d]{display:flex;gap:.5rem;flex-wrap:wrap}.buttons button[data-v-0caefd4d]{padding:.55rem 1rem;font-size:.9rem;font-weight:600;background:#374151;color:#e5e7eb;border:1px solid #4b5563;border-radius:.375rem;cursor:pointer}.buttons button[data-v-0caefd4d]:hover:not(:disabled){background:#4b5563}.buttons button[data-v-0caefd4d]:disabled{opacity:.4;cursor:not-allowed}.buttons button.primary[data-v-0caefd4d]{background:#3b82f6;border-color:#3b82f6}.buttons button.primary[data-v-0caefd4d]:hover:not(:disabled){background:#2563eb}.buttons button.danger[data-v-0caefd4d]{background:#991b1b;border-color:#991b1b}.buttons button.danger[data-v-0caefd4d]:hover:not(:disabled){background:#b91c1c}.history[data-v-0caefd4d]{margin-top:2rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:1rem}.history .col[data-v-0caefd4d]{background:#111827;border:1px solid #1f2937;padding:1rem 1.25rem;border-radius:.5rem}.history h2[data-v-0caefd4d]{margin:0 0 .75rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#6b7280;display:flex;align-items:center;gap:.5rem}.history .count[data-v-0caefd4d]{font-size:.7rem;font-weight:500;color:#4b5563;background:#1f2937;padding:.1rem .4rem;border-radius:999px;letter-spacing:0}.history table[data-v-0caefd4d]{width:100%;border-collapse:collapse;font-size:.8rem}.history th[data-v-0caefd4d]{text-align:left;color:#6b7280;font-weight:500;padding:.3rem .4rem;border-bottom:1px solid #1f2937}.history td[data-v-0caefd4d]{padding:.35rem .4rem;border-bottom:1px solid #1f2937;vertical-align:top}.history tr:last-child td[data-v-0caefd4d]{border-bottom:0}.mono[data-v-0caefd4d]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem}.lvl[data-v-0caefd4d]{font-weight:600;font-size:.75rem}.lvl.info[data-v-0caefd4d]{color:#60a5fa}.lvl.warn[data-v-0caefd4d],.lvl.warning[data-v-0caefd4d]{color:#f59e0b}.lvl.error[data-v-0caefd4d],.lvl.critical[data-v-0caefd4d]{color:#ef4444}
