:root{color-scheme:light;--page:#fbfaf8;--surface:#ffffff;--surface-2:#fcfbf9;--ink:#2b2119;--ink-2:#5a4b3e;--muted:#857564;--muted-2:#b0a292;--border:#e7e3dc;--grid:#efece7;--baseline:#d6d0c6;--input-border:#d6d0c6;--th-bg:#f6f4f0;--row-hover:#faf8f5;--accent:#b8542a;--accent-strong:#96401d;--accent-soft:#f8e7dc;--side-bg:#f6f3ee;--side-border:#e7e2da;--side-ink:#2b2119;--side-muted:#857564;--side-active:#ebe5dc;--side-hover:#efebe5;--series-1:#b8542a;--series-2:#7a8b4a;--series-3:#6b7f96;--status-good:#2c7a4d;--status-warning:#d08a1c;--status-serious:#d08a1c;--status-critical:#b0362c;--good-text:#2c7a4d;--warn-text:#95600f;--warn-bg:#fbf2e3;--warn-border:#ecd6b0;--bad-bg:#fbebe9;--bad-border:#e6c1bc;--ok-border:#b9d6c2;--radius:8px;--font-sans:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace}.preview-frame{display:block;width:100%;border:1px solid var(--border);border-radius:8px;background:#fff}.preview-wrap{max-width:880px;margin:0 auto}*{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--page);color:var(--ink);font-family:var(--font-sans);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-strong);text-decoration:underline}.app-shell{display:flex;min-height:100vh}.sidebar{width:216px;flex-shrink:0;background:var(--side-bg);border-right:1px solid var(--side-border);color:var(--side-ink);display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh;z-index:20}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:16px 16px 12px}.sidebar-logo{width:26px;height:26px;border-radius:6px;background:var(--accent);color:#fff;font-weight:700;font-size:13px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-title{font-weight:700;font-size:14px;line-height:1.2}.sidebar-sub{font-size:11.5px;color:var(--side-muted);line-height:1.3}.sidebar-nav{flex:1 1;padding:4px 8px;overflow-y:auto}.nav-section{margin-bottom:8px}.nav-section-label{font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--side-muted);padding:10px 10px 4px}.nav-item{display:flex;align-items:center;gap:8px;height:32px;padding:0 10px;margin:1px 0;border-radius:6px;color:var(--side-ink);font-size:13.5px;font-weight:500}.nav-item:hover{background:var(--side-hover);color:var(--side-ink);text-decoration:none}.nav-item.active{background:var(--side-active);color:var(--side-ink);font-weight:600}.nav-icon{width:16px;text-align:center;font-size:13px;opacity:.7}.sidebar-foot{padding:12px 16px;border-top:1px solid var(--side-border);font-size:12px;color:var(--ink-2)}.btn-ghost{width:100%;background:transparent;color:var(--ink-2);border:1px solid var(--baseline);border-radius:6px;height:28px;padding:0 10px;font:inherit;font-size:12.5px;font-weight:500;cursor:pointer}.btn-ghost:hover{color:var(--accent);border-color:var(--accent)}.btn-ghost.btn-icon{width:40px;height:auto;min-height:36px;align-self:stretch;padding:0;flex:0 0 40px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;line-height:1}.content{flex:1 1;min-width:0}.content-inner{width:100%;padding:24px 32px 64px}@media (max-width:860px){.app-shell{flex-direction:column}.sidebar{width:100%;height:auto;position:static;border-right:none;border-bottom:1px solid var(--side-border)}.sidebar-nav{display:flex;flex-wrap:wrap;gap:4px;padding:8px}.nav-section{margin:0;display:flex;gap:4px}.nav-section-label{display:none}.content-inner{padding:16px 16px 40px}table.data{display:block;overflow-x:auto}table.data td,table.data th{white-space:nowrap}table.data.fit{display:table;width:100%}table.data.fit td,table.data.fit th{padding-left:8px;padding-right:8px}table.data.fit td.cell-wrap{white-space:normal}}.login-page{min-height:100vh;display:flex;background:var(--page);padding:24px}.login-card{margin:auto;width:100%;max-width:360px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:24px}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:20px}.login-title{font-size:15px;font-weight:700}.login-sub{font-size:12px;color:var(--muted)}.login-form{gap:14px}.field,.login-form{display:flex;flex-direction:column}.field{gap:5px}.field span{font-size:12.5px;font-weight:500;color:var(--ink-2)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 16px;background:var(--accent);color:#fff;border:none;border-radius:6px;font:inherit;font-size:13px;font-weight:600;cursor:pointer}.btn-primary:hover{background:var(--accent-strong)}.btn-primary:disabled{opacity:.5;cursor:default}.btn-secondary{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;background:var(--surface);color:var(--ink);border:1px solid var(--input-border);border-radius:6px;font:inherit;font-size:13px;font-weight:500;cursor:pointer;text-decoration:none;white-space:nowrap}.btn-secondary:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.btn-secondary.btn-sm{height:26px;padding:0 10px;font-size:12.5px;margin-top:4px}.operator-accept-note{margin:6px 0 0;padding:6px 8px;border-left:3px solid var(--good-text);background:var(--surface-2,transparent);color:var(--ink);font-size:13px}.toolbar{display:flex;gap:8px;justify-content:flex-end;align-items:center;margin:0 0 16px;flex-wrap:wrap}dialog.modal{border:1px solid var(--border);border-radius:10px;background:var(--page);color:var(--ink);padding:0;width:min(880px,calc(100vw - 48px));max-height:calc(100vh - 64px);box-shadow:0 16px 48px rgba(43,33,25,.16)}dialog.modal.modal-sm{width:min(520px,calc(100vw - 48px));background:var(--surface)}dialog.modal::-webkit-backdrop{background:rgba(43,33,25,.4)}dialog.modal::backdrop{background:rgba(43,33,25,.4)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-bottom:1px solid var(--border);background:var(--surface);position:-webkit-sticky;position:sticky;top:0;z-index:2}.modal-head h2{margin:0;font-size:15px}.modal-close{width:auto}.modal-body{padding:16px 20px 20px;overflow-y:auto;max-height:calc(100vh - 150px)}dialog.modal .stack{max-width:none}.stepper{display:flex;align-items:stretch;list-style:none;margin:14px 0 20px;padding:0;box-shadow:inset 0 -1px 0 var(--border);overflow-x:auto;overflow-y:hidden}.step{flex:0 0 auto}.step,.step-link{display:flex;align-items:center}.step-link{gap:8px;height:44px;padding:0 4px;border-bottom:2px solid transparent;color:var(--ink-2);text-decoration:none;white-space:nowrap}a.step-link:hover{color:var(--ink);text-decoration:none}.step-circle{width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;background:var(--surface);border:1.5px solid var(--baseline);color:var(--muted)}.step-label{font-size:13px;font-weight:500}.step-line{width:12px;height:1px;background:var(--baseline);margin:0 6px;flex-shrink:0}.step:last-child .step-line{display:none}.step-done .step-circle{border-color:var(--status-good);color:#fff}.step-done .step-circle,.step-done .step-line{background:var(--status-good)}.step-current .step-circle{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.step-current .step-label{color:var(--accent);font-weight:600}.step-running .step-circle{border-color:var(--status-warning);background:var(--warn-bg);color:var(--warn-text)}.step-running .status-dot{background:var(--status-warning)}.step-running .step-label{color:var(--warn-text)}.step-open .step-circle{border-color:var(--accent);color:var(--accent)}.step-locked .step-link{color:var(--muted-2);cursor:not-allowed}.step-active .step-link{border-bottom-color:var(--accent)}@media (max-width:1200px){.step-line{width:8px;margin:0 4px}}h1{font-size:20px;font-weight:600;margin:0 0 4px}.page-desc{color:var(--muted);font-size:12.5px;margin:0 0 16px}h2{font-size:14.5px;margin:20px 0 10px}h2,h3{font-weight:600}h3{font-size:14px;margin:16px 0 8px}.card{border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:16px}.card,table.data{background:var(--surface)}table.data{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}table.data.plain{background:transparent;border:none}table.data th{text-align:left;font-size:12px;color:var(--muted);font-weight:500;background:var(--th-bg);border-bottom:1px solid var(--border);padding:9px 16px}table.data.plain th{background:transparent}table.data td{border-bottom:1px solid var(--grid);padding:11px 16px;vertical-align:top}table.data tr:last-child td{border-bottom:none}tr.row-link{cursor:pointer}tr.row-link:hover td{background:var(--row-hover)}table.data td.num,table.data th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.data .nowrap,table.data th.num{white-space:nowrap}table.data td.cell-url{overflow-wrap:anywhere;min-width:12em}table.data td.cell-text{min-width:14em}table.data.fit td.num,table.data.fit th.num{width:1%;white-space:nowrap}table.data.fit td.cell-wrap{overflow-wrap:anywhere}table.data.compact td,table.data.compact th{padding-left:12px;padding-right:12px}.table-scroll{overflow-x:auto;max-width:100%}.cell-stack{display:flex;flex-direction:column;gap:2px;align-items:flex-start}.cell-sub{font-size:12px;color:var(--muted)}.chip{display:inline-flex;align-items:center;height:22px;padding:0 8px;font-size:12px;font-weight:500;border-radius:4px;white-space:nowrap;background:var(--th-bg);color:var(--ink-2);border:none}.chip.stage{background:var(--accent-soft);color:var(--accent)}.chip.ok{background:#ebf5ee;color:var(--good-text)}.chip.warn{background:var(--warn-bg);color:var(--warn-text)}.chip.bad{background:var(--bad-bg);color:var(--status-critical)}.stage-flow{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:12px;color:var(--muted-2)}.stage-flow .done{color:var(--good-text);font-weight:500}.stage-flow .current{color:var(--accent);font-weight:600;background:var(--accent-soft);border-radius:4px;padding:0 6px}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:16px}.stat-tile{padding:12px 16px;box-shadow:inset -1px 0 0 var(--grid),inset 0 -1px 0 var(--grid);min-width:0}.stat-tile .label{font-size:12px;color:var(--muted)}.stat-tile .value{font-size:18px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-tile .sub{font-size:12px;color:var(--muted)}.status-line{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:18px}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-dot.pulse{animation:aio-pulse 1.4s ease-in-out infinite}@keyframes aio-pulse{0%,to{opacity:1}50%{opacity:.35}}form.stack{display:flex;flex-direction:column;gap:16px;width:100%}.form-page,form.stack{max-width:900px;margin:0 auto}form.stack .card{background:var(--surface);padding:16px 20px 20px}.btn-add{align-self:flex-start;height:34px;padding:0 12px;background:transparent;color:var(--accent);border:1px dashed var(--accent);border-radius:6px;font:inherit;font-size:13px;cursor:pointer}.btn-add:hover{background:var(--accent-soft)}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px 16px;gap:14px 16px}.form-grid .wide{grid-column:1/-1}@media (max-width:700px){.form-grid{grid-template-columns:1fr}}input[type=date],input[type=email],input[type=number],input[type=password],input[type=text],input[type=url],select,textarea{width:100%;background:#fff;color:var(--ink);border:1px solid var(--input-border);border-radius:6px;padding:8px 10px;font:inherit;font-size:13.5px}textarea{resize:vertical;line-height:1.6}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);outline-offset:0;border-color:var(--accent)}::placeholder{color:var(--muted-2)}button.btn-primary{align-self:flex-end}.form-msg{white-space:pre-wrap;font-size:13px;margin:0}.form-msg.ok{color:var(--good-text)}.form-msg.warn{color:var(--warn-text)}.form-msg.bad{color:var(--status-critical);background:var(--bad-bg);border-radius:6px;padding:8px 10px}.field-hint{font-size:12px;color:var(--muted)}.field-error{margin:4px 0 0;font-size:12.5px;line-height:1.5;color:var(--status-critical);white-space:pre-wrap}.inline-form{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap}.inline-form-field{flex:1 1;min-width:260px}.inline-form>button{align-self:flex-start;padding:9px 18px}fieldset.choice-list{border:1px solid var(--border);border-radius:8px;padding:8px 12px 10px;margin:0 0 12px;display:grid;grid-gap:4px;gap:4px}fieldset.choice-list legend{font-size:12.5px;font-weight:500;color:var(--ink-2);padding:0 6px}.choice{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13.5px;cursor:pointer}.choice.is-disabled{color:var(--muted);cursor:not-allowed}.choice-hint{flex-basis:100%;margin:-4px 0 2px 24px}.satellite-plan{border:1px dashed var(--baseline);border-radius:8px;padding:10px 12px;margin-bottom:8px}.satellite-row{display:grid;grid-template-columns:8.5em 1fr auto;grid-gap:8px;gap:8px;margin-bottom:8px;align-items:center}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}.readable{font-size:14.5px;line-height:1.9;color:var(--ink);max-width:720px}.readable h2{font-size:17px;margin:18px 0 8px}.readable h3{font-size:15.5px;margin:16px 0 6px}.readable h4{font-size:14.5px;margin:14px 0 6px}.readable p,.readable ul{margin:0 0 12px}.readable ul{padding-left:22px}details.tech{border:1px solid var(--border);border-radius:8px;background:var(--surface);margin:16px 0}details.tech summary{cursor:pointer;padding:10px 16px;font-size:13px;color:var(--ink-2)}details.tech pre,details.tech>div{padding:0 16px 14px;margin:0}pre.mono{overflow-x:auto;font-size:12.5px;color:var(--ink-2)}.hash,pre.mono{font-family:var(--font-mono)}.hash{font-size:12px;color:var(--muted)}@media print{.no-print,.sidebar{display:none!important}body{background:#fff}.content-inner{max-width:none;padding:0}.card{page-break-inside:avoid;break-inside:avoid}}.select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-color:#fff;color:var(--ink);border:1px solid var(--input-border);border-radius:6px;padding:0 32px 0 10px;height:36px;font:inherit;font-size:13.5px;line-height:1.3;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' fill='none' stroke='%23857564' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 10px center;cursor:pointer}.select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.field .select,.field input,.form-grid .select,.form-grid input:not([type=checkbox]):not([type=radio]){box-sizing:border-box;height:36px;line-height:1.4;background-color:#fff;border:1px solid var(--input-border);border-radius:6px;font-size:13.5px}.field .select,.form-grid .select{width:100%;padding:0 32px 0 10px}.field input,.form-grid input:not([type=checkbox]):not([type=radio]){padding:0 10px}.login-form .field input{height:38px;font-size:14px}.panel-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.panel-head h2{margin:0;font-size:16px}.panel-head .actions{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end;max-width:100%}.select.select-sm{width:auto;height:32px;font-size:13px;font-weight:500;padding:0 30px 0 10px}.toast-stack{position:fixed;top:16px;right:16px;z-index:1000;display:grid;grid-gap:8px;gap:8px;width:min(360px,calc(100vw - 32px));pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:8px;padding:10px 12px;box-shadow:0 8px 24px rgba(43,33,25,.12);animation:toast-in .24s cubic-bezier(.2,.8,.2,1) both}.toast.warn{background:var(--warn-bg);border-color:var(--warn-border)}.toast.bad{background:var(--bad-bg);border-color:var(--bad-border)}.toast.leaving{animation:toast-out .24s ease-in both}.toast-icon{flex-shrink:0;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700;color:#fff;margin-top:1px}.toast.ok .toast-icon{background:var(--status-good)}.toast.warn .toast-icon{background:var(--status-warning)}.toast.bad .toast-icon{background:var(--status-critical)}.toast-text{margin:0;flex:1 1;font-size:13px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.toast-close{flex-shrink:0;border:0;background:transparent;color:var(--muted);font-size:16px;line-height:1;cursor:pointer;padding:0 2px}.toast-close:hover{color:var(--ink)}@keyframes toast-in{0%{transform:translateX(calc(100% + 24px));opacity:0}to{transform:none;opacity:1}}@keyframes toast-out{0%{transform:none;opacity:1}to{transform:translateX(calc(100% + 24px));opacity:0}}@media (prefers-reduced-motion:reduce){.toast,.toast.leaving{animation-duration:1ms}}.progress{flex:1 1;height:6px;border-radius:3px;background:var(--grid);overflow:hidden}.progress-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .6s ease}.phase-list{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-gap:0;gap:0}.phase{display:grid;grid-template-columns:28px minmax(140px,220px) 64px 1fr;align-items:center;grid-gap:8px;gap:8px;padding:6px 8px;border-radius:6px;font-size:13.5px}.phase-mark{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700;border:1.5px solid var(--baseline);color:#fff}.phase.done .phase-mark{background:var(--status-good);border-color:var(--status-good)}.phase.failed .phase-mark{background:var(--status-critical);border-color:var(--status-critical)}.phase.running{background:var(--warn-bg)}.phase.running .phase-mark{border-color:var(--status-warning);border-top-color:transparent;animation:phase-spin .9s linear infinite}.phase-state,.phase.pending{color:var(--muted)}.phase-state{font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.phase.running .phase-state{color:var(--warn-text);font-weight:600}.phase.failed .phase-state{color:var(--status-critical);font-weight:600}.phase-detail{font-size:12.5px;color:var(--muted);overflow-wrap:anywhere}@keyframes phase-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.phase.running .phase-mark{animation-duration:2.4s}.progress-fill{transition:none}}@media (max-width:640px){.phase{grid-template-columns:28px 1fr auto}.phase-detail{grid-column:2/-1}}details.rerun-picker>summary{cursor:pointer;font-weight:500;color:var(--ink-2)}details.rerun-picker[open]{padding:10px 12px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border)}.phase.skipped{color:var(--muted)}.phase.skipped .phase-mark{color:var(--muted);border-color:var(--baseline)}.live-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);white-space:nowrap}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--status-good);animation:live-pulse 1.6s ease-in-out infinite}@keyframes live-pulse{50%{opacity:.3}}@media (prefers-reduced-motion:reduce){.live-dot{animation-duration:3s}}.packet-media{display:flex;flex-wrap:wrap;gap:16px}.packet-media figure{margin:0;max-width:100%}.packet-media figure.is-video{flex:1 1 480px;max-width:720px}.packet-media video{display:block;width:100%;max-height:70vh;background:#000;border-radius:6px}.packet-media audio{display:block;width:320px;max-width:100%}.packet-media img{display:block;width:240px;max-width:100%;height:auto;border:1px solid var(--border);border-radius:6px}.packet-media figcaption{margin-top:6px;font-size:12.5px;color:var(--muted);overflow-wrap:anywhere}:is(input,textarea,select,.select)[aria-invalid=true][aria-invalid][aria-invalid]{border-color:var(--status-critical)}.nowrap-inline{white-space:nowrap}