:root{--bg: #f4f6fa;--surface: #ffffff;--surface-2: #f8fafc;--line: #e2e7ee;--line-strong: #cfd7e2;--ink: #0f172a;--ink-2: #334155;--muted: #64748b;--accent: #2456d3;--accent-hover: #1d47b3;--accent-ink: #ffffff;--accent-weak: #ebf1ff;--pass: #0f7a48;--pass-bg: #e8f6ef;--pass-line: #b7e2cb;--fail: #b42318;--fail-bg: #fdeeec;--fail-line: #f3c1bb;--warn: #9a5b00;--warn-bg: #fff6e3;--warn-line: #f3d9a4;--info: #1e4fbf;--info-bg: #eef3ff;--info-line: #c9d7fb;--log-bg: #0b1220;--log-ink: #d7dfeb;--log-muted: #6b7a90;--log-line: #18233a;--radius: 10px;--radius-sm: 7px;--shadow: 0 1px 2px rgba(15, 23, 42, .05), 0 1px 3px rgba(15, 23, 42, .06);--shadow-lg: 0 6px 24px rgba(15, 23, 42, .08);--mono: ui-monospace, "Cascadia Code", "SFMono-Regular", Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:root{--bg: #0d1218;--surface: #151c25;--surface-2: #121820;--line: #263142;--line-strong: #33415a;--ink: #e7edf5;--ink-2: #c3cedb;--muted: #8e9cb0;--accent: #5b8cff;--accent-hover: #7aa2ff;--accent-ink: #08101f;--accent-weak: #18243d;--pass: #4fd18b;--pass-bg: #10291c;--pass-line: #1e4a32;--fail: #ff8577;--fail-bg: #331715;--fail-line: #5a2722;--warn: #f0c060;--warn-bg: #2d2410;--warn-line: #54431c;--info: #8db0ff;--info-bg: #142039;--info-line: #24375f;--log-bg: #070b12;--log-line: #131c2c;--shadow: 0 1px 2px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 28px rgba(0, 0, 0, .35)}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased}main{max-width:1160px;margin:0 auto;padding:28px 24px 72px;overflow-wrap:anywhere}main>*,.card,.step-body,dl.facts dd,.field{min-width:0}h1{font-size:24px;line-height:1.25;font-weight:700;letter-spacing:-.01em;margin:0}h2{font-size:16px;font-weight:650;margin:0 0 12px;letter-spacing:-.005em}p{margin:8px 0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,.mono{font-family:var(--mono);font-size:.92em}.muted{color:var(--muted)}.small{font-size:13px}.spacer{flex:1 1 auto}.nowrap{white-space:nowrap}.loading{padding:24px 0}.spaced{margin-top:14px}ul.plain{margin:0;padding-left:18px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.topbar{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(8px);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line)}.topbar-inner{max-width:1160px;margin:0 auto;padding:10px 24px;display:flex;align-items:center;gap:12px 28px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);margin-right:auto}.brand:hover{text-decoration:none}.logo{width:32px;height:32px;flex:none}.logo rect{fill:var(--accent)}.logo path{stroke:var(--accent-ink);stroke-width:2.4;fill:none;stroke-linecap:round}.brand-text{display:flex;flex-direction:column;line-height:1.15}.brand-text strong{font-size:16px;letter-spacing:.1px}.brand-text small{color:var(--muted);font-size:12px}.topbar nav{display:flex;align-items:center;gap:2px}.topbar nav a{color:var(--ink-2);font-weight:550;font-size:14px;padding:7px 13px;border-radius:var(--radius-sm)}.topbar nav a:hover{color:var(--ink);background:var(--surface-2);text-decoration:none}.topbar nav a[aria-current=page]{color:var(--accent);background:var(--accent-weak)}.user{display:flex;align-items:center;gap:10px;padding-left:18px;border-left:1px solid var(--line)}.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--accent-weak);color:var(--accent);font-weight:700;font-size:13px}.who{color:var(--ink);font-size:14px;font-weight:600}.signout{background:none;border:1px solid var(--line);color:var(--muted);font:inherit;font-size:13px;padding:5px 12px;border-radius:var(--radius-sm);cursor:pointer}.signout:hover{color:var(--fail);border-color:var(--fail-line)}@media(max-width:760px){.topbar-inner{padding:8px 16px;gap:8px 12px}.brand-text small{display:none}.topbar nav{order:3;width:100%;overflow-x:auto}.user{padding-left:0;border-left:none}}.crumbs{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--muted);margin-bottom:10px}.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--accent)}.page-head{margin-bottom:20px}.page-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.page-head>.muted{margin:6px 0 0}.meta{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 26px}.meta li{display:flex;flex-direction:column;min-width:0}.meta .k{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}.meta .v{font-size:14px;color:var(--ink)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;margin:0 0 16px;box-shadow:var(--shadow)}.card>h2:first-child{margin-top:0}.card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.card-head h2{margin:0}.card-head .more{margin-left:auto;font-size:13px;font-weight:600}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:0 16px}@media(max-width:860px){.grid-2{grid-template-columns:1fr}}.empty{padding:36px 8px;text-align:center;color:var(--muted)}.how{margin:-6px 0 18px}button.primary,button.secondary,button.danger,button.ghost{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:var(--radius-sm);font:inherit;font-size:14px;font-weight:600;cursor:pointer;border:1px solid transparent;line-height:1.2}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);box-shadow:var(--shadow)}button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button.secondary{background:var(--surface);color:var(--ink-2);border-color:var(--line-strong)}button.secondary:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}button.danger{background:var(--fail);color:#fff;border-color:var(--fail)}button.ghost{background:transparent;color:var(--ink-2);border-color:var(--line);padding:6px 11px;font-size:13px}button.ghost:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}button.ghost.tiny{padding:2px 8px;font-size:12px;margin-left:6px;vertical-align:middle}button:disabled{opacity:.5;cursor:not-allowed}button.link{background:none;border:none;color:var(--accent);font:inherit;cursor:pointer;padding:0}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:16px}.actions-row{padding-top:16px;border-top:1px solid var(--line)}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 10px 2px 8px;border-radius:999px;font-size:12.5px;font-weight:600;white-space:nowrap;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2)}.badge .dot{width:7px;height:7px;border-radius:50%;background:currentColor}.badge.passed{background:var(--pass-bg);color:var(--pass);border-color:var(--pass-line)}.badge.failed{background:var(--fail-bg);color:var(--fail);border-color:var(--fail-line)}.badge.running{background:var(--info-bg);color:var(--info);border-color:var(--info-line)}.badge.running .dot{animation:pulse 1.4s ease-in-out infinite}.badge.waiting{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-line)}.small-badge{font-size:11.5px;padding:1px 8px}@keyframes pulse{50%{opacity:.25}}.pill{display:inline-block;padding:1px 10px;border-radius:99px;font-size:12.5px;font-weight:600;background:var(--surface-2);border:1px solid var(--line)}.pill.PASS{background:var(--pass-bg);color:var(--pass)}.pill.FAIL{background:var(--fail-bg);color:var(--fail)}.pill.running,.pill.waiting_input{background:var(--info-bg);color:var(--info)}.notice{position:relative;padding:11px 14px 11px 40px;border-radius:var(--radius-sm);margin:12px 0;border:1px solid var(--line);font-size:14px}.notice:before{position:absolute;left:13px;top:11px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;color:var(--surface)}.notice.error{background:var(--fail-bg);color:var(--fail);border-color:var(--fail-line)}.notice.error:before{content:"!";background:var(--fail)}.notice.warn{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-line)}.notice.warn:before{content:"!";background:var(--warn)}.notice.ok{background:var(--pass-bg);color:var(--pass);border-color:var(--pass-line)}.notice.ok:before{content:"✓";background:var(--pass)}.notice.info{background:var(--info-bg);color:var(--info);border-color:var(--info-line)}.notice.info:before{content:"i";background:var(--info);font-style:italic;font-family:Georgia,serif}.result{display:flex;align-items:center;gap:18px;padding:16px 18px;border-radius:var(--radius-sm);margin:0 0 16px;text-align:left}.result.PASS{background:var(--pass-bg);color:var(--pass);border:1px solid var(--pass-line)}.result.FAIL{background:var(--fail-bg);color:var(--fail);border:1px solid var(--fail-line)}.result .big{font-size:22px;font-weight:800;letter-spacing:.08em;flex:none}.result p{margin:0;font-size:15px;color:var(--ink)}dl.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px 24px;margin:0}dl.facts .fact{display:flex;flex-direction:column;min-width:0}dl.facts dt{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}dl.facts dd{margin:2px 0 0;overflow-wrap:anywhere;font-size:14px}.status-card .row{margin-top:0}.status-text{font-weight:600}.confirm-text{font-size:14px;color:var(--ink-2)}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--info-line);border-top-color:var(--info);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner,.badge.running .dot{animation:none}}.stepper-wrap{margin:0 0 18px}.step-of{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}ol.stepper{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.step{display:flex;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.step-num{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}.step-text{display:flex;flex-direction:column;min-width:0}.step-title{font-weight:650;font-size:14px}.step-hint{font-size:12.5px;color:var(--muted)}.step.current{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak)}.step.current .step-num{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.step.done .step-num{background:var(--pass-bg);color:var(--pass);border-color:var(--pass-line)}.step.failed{border-color:var(--fail-line)}.step.failed .step-num{background:var(--fail);color:#fff;border-color:var(--fail)}.step.todo .step-title{color:var(--muted)}@media(max-width:720px){ol.stepper{grid-template-columns:1fr}}ul.steps{list-style:none;margin:0;padding:0}ul.steps li{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);align-items:flex-start}ul.steps li:last-child{border-bottom:none;padding-bottom:0}ul.steps li:first-child{padding-top:0}.mark{flex:0 0 24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:12.5px;font-weight:800;margin-top:1px}.mark.done,.mark.PASS{background:var(--pass-bg);color:var(--pass)}.mark.failed,.mark.FAIL{background:var(--fail-bg);color:var(--fail)}.mark.running{background:var(--info-bg);color:var(--info)}.mark.skipped,.mark.SKIP,.mark.WARN{background:var(--warn-bg);color:var(--warn)}.step-body{flex:1;min-width:0;font-size:14px}.step-body .detail{color:var(--muted);font-size:13px;overflow-wrap:anywhere;margin-top:1px}.step-body .action-needed{margin-top:6px;font-weight:600;font-size:13px;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 10px}.dns-card.tone-waiting{border-color:var(--info-line)}.dns-card.tone-failed{border-color:var(--fail-line)}.dns-card.tone-ok{border-color:var(--pass-line)}.record-intro{font-weight:600;margin-top:14px}table.record-table{margin:6px 0 8px;border:1px solid var(--line);border-radius:var(--radius-sm);border-collapse:separate;border-spacing:0;overflow:hidden}table.record-table th{background:var(--surface-2)}table.record-table td{font-size:14px}.dns-card code{background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:2px 7px;-webkit-user-select:all;user-select:all;overflow-wrap:anywhere;color:var(--ink)}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.05em;background:var(--surface-2)}tbody tr:last-child td{border-bottom:none}td a{color:var(--accent);font-weight:600}.table-wrap{overflow-x:auto}.table-card{padding:0;overflow:hidden}.table-card .table-wrap{border-top:1px solid var(--line)}.table-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:14px 16px}.table-search,.log-search{flex:0 1 280px;min-width:160px;padding:7px 11px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit;font-size:14px}.table-toolbar .table-search{margin-left:auto}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--surface-2)}.sub{font-size:12.5px;color:var(--muted);margin-top:2px}.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:460px}.segmented{display:inline-flex;border:1px solid var(--line-strong);border-radius:var(--radius-sm);overflow:hidden;background:var(--surface)}.segmented button{background:none;border:none;border-right:1px solid var(--line);padding:6px 12px;font:inherit;font-size:13px;font-weight:600;color:var(--ink-2);cursor:pointer;display:inline-flex;gap:6px;align-items:center}.segmented button:last-child{border-right:none}.segmented button[aria-pressed=true]{background:var(--accent-weak);color:var(--accent)}.segmented .count{font-size:11.5px;color:var(--muted);background:var(--surface-2);border-radius:99px;padding:0 7px}.segmented button[aria-pressed=true] .count{color:var(--accent);background:var(--surface)}.log-card .card-head{margin-bottom:0}.log-card .card-head .disclose{display:inline-flex;align-items:center;gap:8px;background:none;border:none;padding:0;cursor:pointer;color:var(--ink);font:inherit}.chev{width:14px;color:var(--muted)}.log-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0 10px}.log-view{max-height:480px;overflow:auto;background:var(--log-bg);color:var(--log-ink);border-radius:var(--radius-sm);padding:8px 0;font-family:var(--mono);font-size:12.5px;line-height:1.6;border:1px solid var(--log-line)}.log-line{display:grid;grid-template-columns:46px 70px 46px 1fr;gap:10px;padding:0 14px 0 0}.log-line:hover{background:var(--log-line)}.log-line .ln{text-align:right;color:var(--log-muted);-webkit-user-select:none;user-select:none}.log-line .ts{color:var(--log-muted);-webkit-user-select:none;user-select:none}.log-line .tag{color:var(--log-muted);text-transform:uppercase;font-size:10.5px;letter-spacing:.05em;padding-top:2px;-webkit-user-select:none;user-select:none}.log-line .txt{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.log-line.s-command .txt{color:#8ab4ff}.log-line.s-command .tag{color:#6f95d8}.log-line.s-info .txt{color:#a7e3c0}.log-line.problem .txt,.log-line.s-stderr .txt,.log-line.problem .tag{color:#ff9c8f}.log-empty{padding:20px 16px;color:var(--log-muted)}.actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin:0 0 24px}.action{display:flex;gap:16px;align-items:flex-start;text-align:left;width:100%;padding:22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;box-shadow:var(--shadow)}.action:hover,.action:focus-visible{border-color:var(--accent);box-shadow:var(--shadow-lg)}.action-icon{flex:none;width:42px;height:42px;padding:9px;border-radius:10px;background:var(--accent-weak)}.action-icon path{fill:none;stroke:var(--accent);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.action-body{display:flex;flex-direction:column;gap:4px}.action strong{font-size:16px}.action-body>span{color:var(--muted);font-size:14px}.recent-list{list-style:none;margin:0;padding:0}.recent-list li a{display:grid;grid-template-columns:150px 140px 1fr auto;gap:12px;align-items:center;padding:10px 6px;border-bottom:1px solid var(--line);color:var(--ink);font-size:14px}.recent-list li:last-child a{border-bottom:none}.recent-list li a:hover{background:var(--surface-2);text-decoration:none}.recent-what{font-weight:600}.recent-where{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-when{font-size:13px}@media(max-width:720px){.recent-list li a{grid-template-columns:auto 1fr}.recent-where,.recent-when{display:none}}.grid-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px 20px}.field{display:flex;flex-direction:column;gap:5px}.field.wide{grid-column:1 / -1}label{font-weight:600;font-size:13.5px;color:var(--ink-2)}.help{color:var(--muted);font-size:12.5px;line-height:1.45}input[type=text],input[type=password],input[type=url],input[type=email],select{width:100%;padding:9px 11px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit;font-size:14.5px}input:hover,select:hover{border-color:var(--muted)}input:focus-visible,select:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak)}input:disabled,select:disabled{background:var(--surface-2)}.field.invalid input,.field.invalid select{border-color:var(--fail)}.field .problem{color:var(--fail);font-size:12.5px;font-weight:600}.check{display:flex;align-items:center;gap:8px;font-weight:500}.field.check{flex-direction:row;align-items:center}.code-box{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:10px}.code-box input{width:11ch;font-size:22px;letter-spacing:6px;text-align:center;font-family:var(--mono)}.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.inline-form input{width:220px;padding:6px 10px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit}form>.row{position:sticky;bottom:0;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:12px 0;margin-top:8px;border-top:1px solid var(--line);z-index:5}.login-card{max-width:400px;margin:64px auto;padding:28px 28px 24px;box-shadow:var(--shadow-lg)}.login-card h1{font-size:22px}.login-card .row{position:static;border:none;background:none;padding:0;-webkit-backdrop-filter:none;backdrop-filter:none}.login-card button.primary{width:100%;justify-content:center;padding:10px 16px}details.log summary{cursor:pointer;font-weight:600;margin:8px 0}pre.log{max-height:340px;overflow:auto;background:var(--log-bg);color:var(--log-ink);padding:12px;border-radius:var(--radius-sm);font-size:12.5px;white-space:pre-wrap;overflow-wrap:anywhere}@media(prefers-reduced-motion:no-preference){.action,button,input,select{transition:border-color .12s,background-color .12s,box-shadow .12s}}@media(max-width:560px){main{padding:18px 14px 56px}.card{padding:16px}.log-line{grid-template-columns:34px 62px 1fr}.log-line .tag{display:none}}.runs-table th,.runs-table td{overflow-wrap:normal;word-break:normal}.runs-table th{white-space:nowrap}.runs-table td:nth-child(4),.runs-table td:nth-child(7){white-space:nowrap}.runs-table td:nth-child(3){min-width:250px}.runs-table td:nth-child(2){min-width:240px}.recent-list .badge{justify-self:start}
