:root{--paper: #faf6ef;--night: #14382b;--night-deep: #0d2820;--emerald: #1e4d3b;--gold: #d4a94e;--gold-deep: #b08a35;--gold-bright: #ffe9b8;--ink: #22312b;--ink-soft: #4a5a52;--serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans: "Avenir Next", Avenir, "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:.9375rem;line-height:1.55}::selection{background:var(--gold);color:var(--night-deep)}a{color:var(--gold-deep)}.shell{display:flex;min-height:100vh}.sidebar{width:232px;flex-shrink:0;background:var(--night);color:#faf6efe0;padding:16px 0 24px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}.wordmark{display:flex;align-items:center;gap:10px;padding:8px 20px 20px;font-family:var(--serif);letter-spacing:.32em;text-transform:uppercase;font-size:.85rem;color:var(--gold)}.wordmark svg{width:26px;height:auto}.navgroup{margin-bottom:14px}.navgroup .eyebrow{padding:6px 20px 2px;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:#faf6ef73}.navitem{display:block;padding:6px 20px;color:#faf6efd9;text-decoration:none;font-size:.875rem;border-left:2px solid transparent}.navitem:hover{background:var(--night-deep)}.navitem.active{background:var(--night-deep);border-left-color:var(--gold);color:var(--gold-bright)}.navitem .op-tag{font-size:.62rem;letter-spacing:.14em;color:var(--gold);text-transform:uppercase;margin-left:6px}.sidebar .foot{margin-top:auto;padding:12px 20px 0;font-size:.75rem;color:#faf6ef8c}.sidebar .foot button{background:none;border:1px solid rgba(250,246,239,.35);border-radius:2px;padding:4px 12px;margin-top:8px;display:inline-block;color:#faf6efd9;font:inherit;font-size:.75rem;cursor:pointer}.sidebar .foot button:hover{border-color:var(--gold);color:var(--gold-bright)}.content{flex:1;padding:32px 40px;max-width:72rem}.content h1{font-family:var(--serif);font-weight:500;font-size:1.7rem;margin:0 0 4px}.content .sub{color:var(--ink-soft);margin:0 0 24px}.stub{border:1px solid rgba(34,49,43,.16);border-radius:2px;padding:24px;color:var(--ink-soft);background:#fff;max-width:34rem}.btn{display:inline-block;background:var(--gold);color:var(--night-deep);font-weight:600;border:none;border-radius:2px;padding:9px 22px;font:inherit;cursor:pointer}.btn:focus-visible{outline:3px solid var(--night);outline-offset:2px}.btn:disabled{opacity:.6;cursor:default}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(100vmax 70vmax at 50% 30%,#1b4a37 0%,var(--night) 50%,var(--night-deep) 100%);color:var(--paper)}.login-card{width:20rem;text-align:center;padding:0 16px}.login-card .star-wrap{width:96px;margin:0 auto 8px}.login-card .word{font-family:var(--serif);letter-spacing:.38em;text-transform:uppercase;font-size:.8rem;color:var(--gold);margin-bottom:20px}.login-card h1{font-family:var(--serif);font-weight:500;font-size:1.3rem;margin:0 0 18px}.login-card label{display:block;text-align:left;font-size:.8rem;margin:12px 0 4px;color:#faf6efcc}.login-card input{width:100%;padding:8px 10px;border-radius:2px;border:1px solid rgba(250,246,239,.25);background:#0d28208c;color:var(--paper);font:inherit}.login-card input:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.login-card .btn{width:100%;margin-top:20px}.login-card .err{color:#e8a1a1;font-size:.85rem;min-height:1.2em;margin:12px 0 0}.breathe{animation:breathe 6.5s ease-in-out infinite alternate;transform-origin:50% 50%}@keyframes breathe{0%{opacity:.82;transform:scale(.97)}to{opacity:1;transform:scale(1.015)}}@media (prefers-reduced-motion: reduce){.breathe{animation:none}}.section-title{font-family:var(--serif);font-weight:500;font-size:1.15rem;margin:32px 0 12px}.data-table{border-collapse:collapse;width:100%;font-size:.875rem;background:#fff}.data-table th{text-align:left;padding:8px 12px;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid rgba(34,49,43,.2)}.data-table td{padding:8px 12px;border-bottom:1px solid rgba(34,49,43,.1);vertical-align:top}.mono{font-family:ui-monospace,Menlo,monospace;font-size:.8rem}.badge{display:inline-block;margin-left:6px;padding:1px 7px;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;background:var(--night);color:var(--gold-bright);border-radius:2px}.badge.ok{background:#1e4d3b24;color:var(--emerald)}.badge.no{background:#a33a3a1f;color:#a33a3a}a.badge{text-decoration:none}.linkish{background:none;border:none;padding:0;font:inherit;color:var(--gold-deep);text-decoration:underline;cursor:pointer}.panel{background:#fff;border:1px solid rgba(34,49,43,.16);border-radius:2px;padding:20px 24px;max-width:36rem}.panel label{display:block;font-size:.8rem;color:var(--ink-soft);margin:12px 0 4px}.panel input:not([type=radio]):not([type=checkbox]),.panel select,.panel textarea{display:block;width:100%;padding:7px 9px;margin-top:3px;border:1px solid rgba(34,49,43,.25);border-radius:2px;background:var(--paper);color:var(--ink);font:inherit;font-size:.875rem}.panel input:focus-visible,.panel select:focus-visible,.panel textarea:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.panel fieldset{border:1px solid rgba(34,49,43,.16);border-radius:2px;margin:14px 0 0;padding:10px 12px}.panel legend{font-size:.75rem;color:var(--ink-soft);padding:0 4px}.radio{display:flex;gap:8px;align-items:baseline;margin:6px 0;font-size:.875rem;color:var(--ink)}.radio input{margin:0}.panel .btn{margin-top:18px}.caveat{margin-top:16px;padding:12px 14px;border-radius:2px;background:#d4a94e1f;border:1px solid rgba(176,138,53,.4);font-size:.85rem}.caveat p{margin:0 0 8px}.error-line{color:#a33a3a;font-size:.875rem}.confirm-card{margin:14px 0;padding:14px 16px;max-width:36rem;border:1px solid rgba(176,138,53,.5);border-radius:2px;background:#fff;font-size:.9rem}.legend{display:flex;flex-direction:column;gap:2px;margin:0 0 16px;font-size:.8rem;color:var(--ink-soft)}.matrix .th-sub{font-size:.6rem;letter-spacing:.06em;color:var(--ink-soft);text-transform:none}.cell{background:none;border:1px solid rgba(34,49,43,.18);border-radius:2px;padding:4px 8px;font:inherit;font-size:.8rem;cursor:pointer;color:var(--ink)}.cell:hover{border-color:var(--gold-deep)}.linkish.small{font-size:.72rem;margin-left:6px}.tool-picker{margin-top:6px;padding:8px 10px;border:1px solid rgba(34,49,43,.16);border-radius:2px;background:var(--paper)}.tabs{display:flex;gap:4px;margin:0 0 18px;border-bottom:1px solid rgba(34,49,43,.2)}.tab{background:none;border:none;border-bottom:2px solid transparent;padding:6px 14px;font:inherit;font-size:.875rem;cursor:pointer;color:var(--ink-soft)}.tab.active{color:var(--ink);border-bottom-color:var(--gold)}.panel.wide{max-width:46rem;margin-bottom:14px}.panel h3{font-family:var(--serif);font-weight:500;margin:0 0 6px;font-size:1rem}.test-result{margin-top:12px;padding:10px 12px;background:var(--paper);border:1px solid rgba(34,49,43,.16);border-radius:2px;font-size:.78rem;overflow-x:auto;max-height:16rem}.inline-input{padding:6px 9px;border:1px solid rgba(34,49,43,.25);border-radius:2px;background:#fff;font:inherit;font-size:.875rem}.pre-line{white-space:pre-line}.small-btn{padding:5px 12px;font-size:.8rem}tr.selected td{background:#d4a94e14}.status{padding:1px 7px;border-radius:2px;font-size:.78rem}.status-ok{background:#1e4d3b24;color:var(--emerald)}.status-running,.status-pending{background:#d4a94e2e;color:var(--gold-deep)}.status-awaiting_approval{background:#d4a94e4d;color:var(--night)}.status-failed,.status-rejected,.status-interrupted{background:#a33a3a1f;color:#a33a3a}.status-degraded{background:#4a5a5226;color:var(--ink-soft)}.graph-well{position:relative;height:calc(100vh - 235px);min-height:420px;max-width:1100px;background:#161b22;border:1px solid #2a313c;border-radius:14px;overflow:hidden}.graph-well canvas{display:block;width:100%;height:100%;cursor:grab}.graph-well canvas.dragging{cursor:grabbing}.graph-legend{position:absolute;left:12px;bottom:10px;display:flex;flex-wrap:wrap;gap:10px;font-size:11px;color:#8b95a5;pointer-events:none}.graph-legend .gi{display:flex;align-items:center;gap:5px}.graph-legend .sw{width:9px;height:9px;border-radius:50%;display:inline-block}.graph-legend .sw.sq{border-radius:2px}.graph-cap{color:var(--ink-soft);font-size:12px;margin:10px 2px 0}.graph-cap .deny{color:#a33a3a}.refusal{min-height:100vh;display:flex;align-items:center;justify-content:center}.refusal .card{max-width:26rem;text-align:center}
