:root{--color-bg: #0f1217;--color-bg-elevated: #181c24;--color-text: #e6e9ef;--color-text-muted: #8b94a3;--color-accent: #5b9dff;--color-border: #2a2f3a;--color-success: #3fb950;--color-warning: #d29922;--color-danger: #ff6b6b;--color-bg-elevated-2: #1f2430;--status-ok: #4fd18b;--status-wait: #f2b84b;--status-run: #b69cff;--status-bad: #ff7b72;--status-ok-bg: rgba(79, 209, 139, .12);--status-wait-bg: rgba(242, 184, 75, .12);--status-run-bg: rgba(182, 156, 255, .14);--status-bad-bg: rgba(255, 123, 114, .12);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", Menlo, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);min-height:100vh}main.auth-pending,main.auth-denied,main.sso-callback{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem;text-align:center}main.auth-denied h1,main.sso-callback h1{font-size:1.5rem;margin:0 0 1rem}main.auth-denied p,main.sso-callback p{max-width:480px;color:var(--color-text-muted)}main.sso-callback .sso-error{color:var(--color-danger);margin-bottom:1rem}main.sso-callback a{color:var(--color-accent)}.spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.env-badge,.dry-run-badge,.live-badge{display:inline-block;padding:.15rem .6rem;border:1px solid currentColor;border-radius:999px;font-family:var(--font-sans);font-size:.75rem;font-weight:600;letter-spacing:.02em;background:var(--color-bg)}.env-badge{color:var(--color-accent)}.env-badge.env-prd{color:var(--color-danger)}.dry-run-badge{color:var(--color-warning)}.live-badge{color:var(--color-success)}.frame{display:grid;grid-template-columns:216px minmax(0,1fr);min-height:100vh}.rail{background:var(--color-bg-elevated);border-right:1px solid var(--color-border);padding:1rem .75rem;display:flex;flex-direction:column;gap:.75rem;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1rem;padding:0 .5rem}.glyph{width:22px;height:22px;border-radius:5px;background:var(--color-accent);color:var(--color-bg);display:grid;place-items:center;font-size:.6875rem;font-weight:700}.rail-badges{display:flex;flex-wrap:wrap;gap:.375rem;padding:0 .5rem}.rail-nav{display:flex;flex-direction:column;gap:2px}.rail-nav a{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem .6rem;border-radius:6px;color:var(--color-text-muted);text-decoration:none;font-size:.875rem}.rail-nav a:hover,.rail-nav a:focus-visible{color:var(--color-text);background:var(--color-bg-elevated-2);outline:none}.rail-nav a.active{color:var(--color-text);background:var(--color-bg-elevated-2)}.rail-group{font-size:.6875rem;text-transform:uppercase;letter-spacing:.09em;color:var(--color-text-muted);padding:.75rem .6rem .25rem}.rail-count{font-family:var(--font-mono);font-size:.6875rem;color:var(--color-bg);background:var(--color-accent);border-radius:999px;padding:0 .4rem;min-width:1.25rem;text-align:center}.rail-who{margin-top:auto;border-top:1px solid var(--color-border);padding:.75rem .5rem 0;display:flex;flex-direction:column;gap:.125rem;font-size:.75rem;overflow-wrap:anywhere}.env-pill{font-family:var(--font-mono);font-size:.6875rem;font-weight:600;letter-spacing:.04em;padding:.15rem .55rem;border-radius:999px;border:1px solid currentColor;color:var(--status-wait);background:var(--status-wait-bg)}.env-pill.env-prd{color:var(--status-bad);background:var(--status-bad-bg)}.pane{min-width:0;padding:1.5rem 2rem 3rem;display:flex;flex-direction:column;gap:1rem}@media(max-width:720px){.frame{grid-template-columns:minmax(0,1fr)}.rail{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;border-right:0;border-bottom:1px solid var(--color-border);padding:.5rem .75rem;gap:.5rem}.rail-nav{flex-direction:row;flex-wrap:wrap;order:3;width:100%}.rail-group,.rail-who{display:none}.pane{padding:1rem}}.page{display:flex;flex-direction:column;gap:1rem;min-width:0}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.page-head h1{font-size:1.375rem;margin:.125rem 0 0;overflow-wrap:anywhere}.crumb{font-size:.75rem;color:var(--color-text-muted)}.crumb a{color:var(--color-accent);text-decoration:none}.head-side{display:flex;align-items:center;gap:.75rem}.section-title{font-size:.9375rem;margin:.5rem 0}.split{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:1rem;align-items:start}@media(max-width:980px){.split{grid-template-columns:minmax(0,1fr)}}.stack,.form-col{display:flex;flex-direction:column;gap:1rem;min-width:0}.card{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:9px;padding:.875rem 1rem;min-width:0}.card-title{display:flex;align-items:center;gap:.5rem;margin:0 0 .6rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.card-title:not(:first-child){margin-top:1rem}.kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.35rem .875rem;margin:0;font-size:.8125rem}.kv dt{color:var(--color-text-muted)}.kv dd{margin:0;font-family:var(--font-mono);font-size:.78rem;overflow-wrap:anywhere}.muted{color:var(--color-text-muted)}.small{font-size:.8125rem}.mono{font-family:var(--font-mono)}.stepper{display:flex;flex-wrap:wrap;gap:.375rem;list-style:none;margin:0;padding:0}.stepper button{font:inherit;font-size:.75rem;padding:.25rem .7rem;border-radius:999px;border:1px solid var(--color-border);background:transparent;color:var(--color-text-muted);cursor:pointer}.stepper button.is-current{border-color:var(--color-accent);color:var(--color-text);background:#5b9dff1f}.stepper button.is-done{color:var(--status-ok);border-color:var(--status-ok)}.stepper button:disabled{cursor:not-allowed;opacity:.6}.field{display:flex;flex-direction:column;gap:.375rem;border:0;margin:0;padding:0;min-width:0}.field-label{font-size:.75rem;font-weight:600;color:var(--color-text-muted);letter-spacing:.02em;padding:0}.field-hint{margin:0;font-size:.75rem;color:var(--color-text-muted)}.field-error{margin:0;font-size:.75rem;color:var(--status-bad)}input:not([type=radio]):not([type=checkbox]),textarea{font:inherit;font-size:.875rem;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:7px;padding:.5rem .65rem;width:100%}input.mono{font-family:var(--font-mono)}input:focus-visible,textarea:focus-visible,button:focus-visible,.row-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.5rem}.choice{position:relative;display:flex;flex-direction:column;gap:.15rem;border:1px solid var(--color-border);background:var(--color-bg-elevated);border-radius:9px;padding:.65rem .75rem;cursor:pointer;min-width:0}.choice input{position:absolute;opacity:0;pointer-events:none}.choice:focus-within{outline:2px solid var(--color-accent);outline-offset:1px}.choice b{font-size:.8125rem}.choice small{color:var(--color-text-muted);font-size:.75rem}.choice.is-selected{border-color:var(--color-accent);background:#5b9dff17;box-shadow:inset 0 0 0 1px var(--color-accent)}.choice.is-locked{cursor:default;opacity:.85}.form-actions{display:flex;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:.375rem;font:inherit;font-size:.8125rem;font-weight:600;padding:.4rem .8rem;border-radius:7px;border:1px solid var(--color-border);background:var(--color-bg-elevated-2);color:var(--color-text);cursor:pointer;text-decoration:none;white-space:nowrap}.btn:hover:not(:disabled){border-color:var(--color-text-muted)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-bg)}.btn-danger{color:var(--status-bad);border-color:var(--status-bad);background:transparent}.icon-btn{font:inherit;font-size:1.25rem;line-height:1;background:transparent;border:0;color:var(--color-text-muted);cursor:pointer;padding:.125rem .375rem}.action-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:9px;background:var(--color-bg-elevated);font-size:.875rem}.action-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.action-error{width:100%}.status-pill{display:inline-block;font-size:.6875rem;font-weight:600;padding:.15rem .55rem;border-radius:999px;white-space:nowrap}.status-pill.tone-ok{color:var(--status-ok);background:var(--status-ok-bg)}.status-pill.tone-wait{color:var(--status-wait);background:var(--status-wait-bg)}.status-pill.tone-run{color:var(--status-run);background:var(--status-run-bg)}.status-pill.tone-bad{color:var(--status-bad);background:var(--status-bad-bg)}.status-pill.tone-idle{color:var(--color-text-muted);background:var(--color-bg-elevated-2)}.checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.375rem}.checks.is-stale{opacity:.6}.check{border:1px solid var(--color-border);border-left:3px solid var(--color-border);border-radius:7px;padding:.45rem .65rem;background:var(--color-bg)}.check-pass{border-left-color:var(--status-ok)}.check-fail{border-left-color:var(--status-bad)}.check-unknown{border-left-color:var(--status-wait)}.check-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.check-title{font-size:.8125rem;font-weight:600}.check-msg,.check-fix{margin:.2rem 0 0;font-size:.75rem;overflow-wrap:anywhere}.check-fix{color:var(--color-text-muted)}.timeline{list-style:none;margin:0;padding:0}.timeline li{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:.6rem;padding:.5rem 0;border-bottom:1px solid var(--color-border);align-items:start}.timeline li:last-child{border-bottom:0}.timeline .dot{width:14px;height:14px;border-radius:50%;margin-top:3px;border:2px solid var(--color-border)}.step-done .dot{background:var(--status-ok);border-color:var(--status-ok)}.step-running .dot{border-color:var(--status-run);box-shadow:0 0 0 3px var(--status-run-bg)}.step-waiting_admin .dot{border-color:var(--status-wait);background:var(--status-wait-bg)}.step-failed .dot{border-color:var(--status-bad);background:var(--status-bad-bg)}.step-skipped .dot{border-style:dashed}.timeline .t1{font-weight:600;font-size:.8125rem}.timeline .t2{color:var(--color-text-muted);font-size:.75rem;overflow-wrap:anywhere}.audit{list-style:none;margin:0;padding:0;font-size:.8125rem}.audit li{display:grid;grid-template-columns:8.5rem minmax(0,1fr) auto;gap:.75rem;padding:.35rem 0;border-bottom:1px solid var(--color-border)}.audit li:last-child{border-bottom:0}.audit time{color:var(--color-text-muted);font-family:var(--font-mono);font-size:.75rem}@media(max-width:720px){.audit li{grid-template-columns:minmax(0,1fr);gap:.125rem}}.table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:9px;background:var(--color-bg-elevated)}.table{width:100%;border-collapse:collapse;font-size:.8125rem}.table th{text-align:left;font-size:.6875rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;padding:.5rem .75rem;border-bottom:1px solid var(--color-border);white-space:nowrap}.table td{padding:.6rem .75rem;border-bottom:1px solid var(--color-border);vertical-align:top}.table tr:last-child td{border-bottom:0}.row-link{cursor:pointer}.row-link:hover td{background:var(--color-bg-elevated-2)}.banner,.note{border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:7px;padding:.6rem .85rem;font-size:.8125rem;background:var(--color-bg-elevated);color:var(--color-text)}.note p{margin:0}.note p+p{margin-top:.25rem}.banner-ok{border-left-color:var(--status-ok);background:var(--status-ok-bg)}.banner-wait{border-left-color:var(--status-wait);background:var(--status-wait-bg)}.banner-bad,.note-bad{border-left-color:var(--status-bad);background:var(--status-bad-bg)}.empty{border:1px dashed var(--color-border);border-radius:9px;padding:1.5rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.5rem}.empty h3{margin:0;font-size:1rem}.empty p{margin:0;max-width:52ch;color:var(--color-text-muted);font-size:.875rem}.skeleton{background:linear-gradient(90deg,var(--color-bg-elevated) 0%,var(--color-bg-elevated-2) 50%,var(--color-bg-elevated) 100%);background-size:200% 100%;animation:shimmer 1.2s ease-in-out infinite;border-radius:7px}.skeleton-rows{display:flex;flex-direction:column;gap:.5rem}.skeleton-row{height:2.75rem}.skeleton-line{height:2.25rem;list-style:none}@keyframes shimmer{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton,.spinner{animation:none}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#06080cb3;display:grid;place-items:center;padding:1rem;z-index:50}.modal{width:min(520px,100%);max-height:calc(100vh - 2rem);overflow:auto;background:var(--color-bg-elevated);color:var(--color-text);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 20px 50px -20px #000000b3}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1rem;border-bottom:1px solid var(--color-border)}.modal-head h2{margin:0;font-size:1rem}.modal-body{padding:1rem;display:flex;flex-direction:column;gap:.875rem;font-size:.875rem}.modal-body p{margin:0}.modal-foot{display:flex;justify-content:flex-end;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--color-border)}
