:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f1f5f9;color:#0f172a}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{border:0;border-radius:6px;background:#334155;color:#fff;cursor:pointer;padding:10px 14px;font-weight:600;transition:background-color .12s ease}button:not([class]):hover:not(:disabled){background:#1e293b}button:disabled{cursor:not-allowed;opacity:.55}.link-btn{width:fit-content;background:transparent;color:#334155;padding:0;font-weight:650}.link-btn:hover{color:#0f172a;text-decoration:underline}input{width:100%;border:1px solid #cbd5e1;border-radius:6px;padding:10px 12px;color:#0f172a;background:#fff}input:focus,select:focus,textarea:focus{outline:none;border-color:#334155;box-shadow:0 0 0 3px #3341551f}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-panel{width:min(420px,100%);display:grid;gap:16px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:24px;box-shadow:0 1px 3px #0f172a14}.login-panel h1,header h1,.panel h2{margin:0;letter-spacing:0}.login-panel p,header p{margin:6px 0 0;color:#64748b}label{display:grid;gap:8px;font-size:14px;font-weight:650}.error{color:#b91c1c;font-size:14px}.app{height:100vh;overflow:hidden;display:grid;grid-template-columns:240px 1fr}aside{background:#1e293b;color:#e2e8f0;padding:20px;display:grid;grid-template-rows:auto 1fr auto;gap:24px;overflow-y:auto}.brand{font-size:20px;font-weight:800}nav{display:grid;align-content:start;gap:8px}nav button,.logout{display:flex;align-items:center;gap:10px;width:100%;background:transparent;color:#cbd5e1;text-align:left}nav button.active,nav button:hover,.logout:hover{background:#334155;color:#f8fafc}main{min-width:0;min-height:0;overflow-y:auto;padding:24px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.view{display:grid;gap:18px}.view>*,.card{min-width:0}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat,.panel{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:16px}.stat{display:grid;gap:8px}.stat span{color:#64748b;font-size:13px}.stat strong{font-size:28px}.grid.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.dot{width:14px;height:14px;border-radius:50%}.chart{height:280px;margin-top:12px}.table,.data-table{display:grid;gap:8px;margin-top:12px;overflow-x:auto}.tr,.thead,.tbody{display:grid;gap:12px;align-items:center}.tr{grid-template-columns:24px 1fr 1.2fr auto;padding:10px 0;border-top:1px solid #edf1f5}.thead,.tbody{min-width:720px;padding:10px 12px;border-radius:6px}.thead{background:#edf2f8;color:#4e5d70;font-size:13px}.tbody{background:#fbfcfe;border:1px solid #edf1f5}.good{color:#047857}.warn{color:#b45309}.bad{color:#b91c1c}.muted{color:#64748b}.quick-form{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr)) auto;gap:10px;align-items:start;margin:14px 0}table{width:100%;border-collapse:collapse;margin-top:12px}th,td{text-align:left;padding:9px 10px;border-bottom:1px solid #edf1f5;font-size:14px;vertical-align:top}th{color:#4e5d70;font-size:12px;text-transform:uppercase;letter-spacing:.02em;background:#edf2f8}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.truncate{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:16px}.card+.card,.card.mb{margin-bottom:18px}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.card-title{font-size:16px;font-weight:700;margin:0}.card-sub{color:#64748b;font-size:13px;margin:4px 0 0}.badge{display:inline-flex;align-items:center;border-radius:6px;padding:3px 8px;font-size:12px;font-weight:700;border:1px solid transparent}.badge.success{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.badge.warning{background:#fffbeb;color:#b45309;border-color:#fde68a}.badge.danger{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.badge.neutral{background:#f1f5f9;color:#475569;border-color:#e2e8f0}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.filter-pill{border:1px solid #cbd5e1;border-radius:6px;padding:4px 9px;font-size:12px;font-weight:700;background:#fff;color:#475569;cursor:pointer}.filter-pill:hover{background:#f1f5f9;border-color:#94a3b8}.filter-pill.active,.filter-pill.active:hover{border-color:#334155;background:#334155;color:#fff}.chart-box{height:280px}.chart-empty{height:280px;display:grid;place-items:center;border:1px dashed #cbd5e1;border-radius:8px;background:#f8fafc;color:#64748b;font-size:14px}.pre-diff{margin-top:12px;overflow:auto;border-radius:6px;background:#0b1220;color:#e2e8f0;padding:12px;font-size:12px;max-height:280px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}.form-grid.one{grid-template-columns:1fr}select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:6px;padding:10px 12px;color:#172033;background:#fff;font:inherit}.checkbox{display:flex;flex-direction:row;align-items:center;gap:8px}.checkbox input{width:16px}.actions{display:flex;flex-wrap:wrap;gap:6px}.btn-xs{padding:4px 9px;font-size:12px;border-radius:6px;font-weight:600;border:1px solid #cbd5e1;background:#fff;color:#334155;cursor:pointer;transition:background-color .12s ease,border-color .12s ease}.btn-xs:hover{background:#f1f5f9;border-color:#94a3b8}.btn-xs.danger{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.btn-xs.danger:hover{background:#fee2e2;border-color:#fca5a5}.btn-xs.primary{border-color:#334155;background:#334155;color:#fff}.btn-xs.primary:hover{background:#1e293b;border-color:#1e293b}.server-link{color:#334155;font-weight:600;cursor:pointer;background:none;border:0;padding:0;font-size:14px}.server-link:hover{color:#1e293b;text-decoration:underline}.subtle{color:#64748b;font-size:12px}.note{color:#64748b;font-size:14px;margin-top:10px}.note.warn{color:#b45309}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.overlay{position:fixed;inset:0;background:#0f172a73;display:grid;place-items:center;padding:24px;z-index:10}.modal{width:min(560px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:10px;padding:20px}.modal.modal-wide{width:min(920px,100%)}.failover-toolbar,.poll-status,.provider-title{display:flex;align-items:center}.failover-toolbar{justify-content:space-between;gap:16px}.failover-toolbar h1{margin:0;font-size:22px}.poll-status{gap:10px;color:#64748b;font-size:12px}.provider-title{gap:8px}.icon-button{width:34px;height:34px;display:inline-grid;place-items:center;padding:0;border:1px solid #cbd5e1;background:#fff;color:#334155}.icon-button:hover{background:#f1f5f9}.icon-button.danger{border-color:#fecaca;color:#b91c1c}.debug-endpoint-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.debug-endpoint-card{display:grid;align-content:start;gap:10px}.debug-result{display:grid;gap:10px;min-width:0}.debug-result-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;color:#64748b;font-size:12px}.debug-url{overflow-wrap:anywhere;color:#475569}.debug-headers{display:grid;gap:4px;margin:0;font-size:12px}.debug-headers>div{display:grid;grid-template-columns:minmax(100px,.35fr) 1fr;gap:10px}.debug-headers dt{color:#64748b}.debug-headers dd{min-width:0;margin:0;overflow-wrap:anywhere}.debug-body{min-height:160px;max-height:460px;margin:0;overflow:auto;border-radius:6px;background:#0b1220;color:#e2e8f0;padding:14px;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.debug-empty{display:grid;min-height:160px;place-items:center;border:1px dashed #cbd5e1;border-radius:6px;color:#64748b;font-size:13px}.debug-error{margin:0;color:#b91c1c;font-size:13px;overflow-wrap:anywhere}.state-list{margin:12px 0 0}.state-list>div{display:grid;grid-template-columns:minmax(120px,1fr) auto;align-items:center;gap:12px;min-height:38px;border-top:1px solid #edf1f5}.state-list dt{color:#64748b;font-size:13px}.state-list dd{margin:0;font-size:13px;font-weight:650;text-align:right}.failover-error{border:1px solid #fecaca;border-radius:6px;background:#fef2f2;color:#991b1b;padding:12px 14px;font-size:14px}.timeline-table{overflow-x:auto}.timeline-table table{min-width:760px}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.obs{--bg: #f1f5f9;--panel: #ffffff;--panel-2: #ffffff;--inset: #eef2f7;--line: #e2e8f0;--line-soft: #eef1f5;--text: #0f172a;--dim: #64748b;--faint: #94a3b8;--ice: #0891b2;--ice-deep: #0e7490;--up: #059669;--warn: #d97706;--down: #e11d48;--unknown: #94a3b8;position:relative;margin:-24px;padding:24px 26px 40px;min-height:calc(100vh - 78px);background:var(--bg);color:var(--text);font-variant-numeric:tabular-nums}.obs *,.obs *:before,.obs *:after{box-sizing:border-box}.obs-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:22px}.obs-eyebrow{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ice);margin:0 0 8px}.obs-bar h1{margin:0;font-size:26px;font-weight:750;letter-spacing:-.01em;color:var(--text)}.obs-bar .obs-sub{margin:6px 0 0;color:var(--dim);font-size:13px}.obs-live{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}.obs-live .pulse{width:8px;height:8px;border-radius:50%;background:var(--up);box-shadow:0 0 #34d39999;animation:obs-pulse 2.4s ease-out infinite}@keyframes obs-pulse{0%{box-shadow:0 0 #34d3998c}70%{box-shadow:0 0 0 9px #34d39900}to{box-shadow:0 0 #34d39900}}.obs-pills{display:flex;flex-wrap:wrap;gap:5px;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:4px}.obs-pill{border:0;background:transparent;color:var(--dim);border-radius:7px;padding:5px 11px;font-size:12px;font-weight:650;cursor:pointer;transition:background .15s ease,color .15s ease}.obs-pill:hover{background:#0891b214;color:var(--text)}.obs-pill.active,.obs-pill.active:hover{background:var(--ice);color:#fff}.obs-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:18px;box-shadow:0 1px 2px #0f172a0a,0 14px 30px -22px #0f172a29}.obs-page{display:block}.obs-page>.card,.obs-page>.obs-card-grid,.obs-page>.obs-stack,.obs-page>.stats-grid{margin-bottom:16px}.obs-page .card,.obs-page .stat{min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:18px;box-shadow:0 1px 2px #0f172a0a,0 14px 30px -22px #0f172a29}.obs-page .card+.card,.obs-page .card.mb{margin-bottom:0}.obs-page .card-head{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}.obs-page .card-head h2,.obs-page .card-title{margin:0;color:var(--text);font-size:15px;font-weight:700;letter-spacing:0}.obs-page .card-head .sub,.obs-page .card-sub,.obs-page .subtle,.obs-page .note{color:var(--faint)}.obs-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.obs-page .chart-box,.obs-page .chart-empty{height:250px}.obs-page .chart-empty{border-color:var(--line);background:var(--inset);color:var(--faint)}.obs-kpi-tiles{gap:14px}.obs-kpi-tiles .stat{display:grid;gap:5px}.obs-kpi-tiles .stat>span:first-child,.obs-health-tile .g-label{color:var(--dim);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.obs-kpi-tiles .stat strong{color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:24px;font-weight:750}.obs-health-tile{display:grid;align-content:center;justify-items:start;gap:10px}.obs-health-tile .g-detail{color:var(--faint);font-size:12px}.obs-page .badge{display:inline-flex;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.obs-page .form-grid{margin:14px 0 18px;padding:14px;border:1px solid var(--line-soft);border-radius:8px;background:#f8fafc}.obs-page label{color:var(--dim);font-size:12px;font-weight:700}.obs-page input,.obs-page select,.obs-page textarea{border-color:var(--line);border-radius:6px;background:var(--panel);color:var(--text)}.obs-page input:focus,.obs-page select:focus,.obs-page textarea:focus{border-color:var(--ice);outline:2px solid rgba(8,145,178,.12);outline-offset:0}.obs-page .btn-xs,.obs-page .form-grid button:not(.obs-icon-btn){border-color:var(--line);background:var(--panel);color:var(--dim)}.obs-page .btn-xs:hover,.obs-page .form-grid button:not(.obs-icon-btn):hover{border-color:var(--ice);background:#0891b20f;color:var(--ice-deep)}.obs-page .btn-xs.primary,.obs-page .form-grid button[type=submit]{border-color:var(--ice-deep);background:var(--ice);color:#fff}.obs-page .btn-xs.danger,.obs-page .icon-button.danger{border-color:#fecaca;background:#fef2f2;color:#be123c}.obs-action-link{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--dim);font-size:12px;font-weight:700;text-decoration:none;white-space:nowrap}.obs-action-link:hover{border-color:var(--ice);color:var(--ice-deep)}.obs-table-link{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:transparent;color:var(--text);font-size:13px;font-weight:700;text-align:left}.obs-table-link:hover{color:var(--ice-deep)}.jenkins-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}.obs-cols.jenkins-build-grid{grid-template-columns:minmax(200px,300px) minmax(0,1fr)}.jenkins-build-grid>.obs-panel{min-width:0}.obs-table.jenkins-parameters{min-width:0}.jenkins-parameters pre{max-width:240px;margin:0;overflow:auto;color:var(--dim);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.jenkins-console-panel{min-width:0}.jenkins-console{min-height:420px;max-height:70vh;margin:0;overflow:auto;border-radius:8px;background:#0b1220;color:#dbeafe;padding:16px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.obs-page table:not(.obs-table){width:100%;min-width:680px;border-collapse:collapse}.obs-page table:not(.obs-table) th{padding:9px 12px;border-bottom:1px solid var(--line);background:transparent;color:var(--faint);font-size:10.5px;letter-spacing:.09em}.obs-page table:not(.obs-table) td{padding:11px 12px;border-bottom:1px solid var(--line-soft);color:var(--text);font-size:13px}.obs-page .card>table,.obs-page .settings-instance>table{display:table;overflow:visible}.settings-instance{padding:14px;border:1px solid var(--line-soft);border-radius:8px;background:#f8fafc}.settings-page .card{overflow-x:auto}.obs-settings-tabs{display:inline-flex;flex-wrap:wrap;gap:3px;padding:4px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.obs-settings-tabs button{border:0;border-radius:6px;background:transparent;color:var(--dim);padding:7px 11px;font-size:12px;font-weight:700;text-transform:capitalize}.obs-settings-tabs button:hover{background:var(--inset);color:var(--text)}.obs-settings-tabs button.active{background:var(--ice);color:#fff}.obs-panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}.obs-panel-title{display:flex;align-items:center;gap:10px;min-width:0}.obs-panel-title h2{margin:0;font-size:15px;font-weight:700;letter-spacing:.01em}.obs-panel-title .sub{font-size:12px;color:var(--faint)}.obs-chip{width:10px;height:10px;border-radius:3px;flex:0 0 auto;box-shadow:0 0 10px currentColor}.obs-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.obs-gauge{display:flex;align-items:center;gap:16px}.obs-gauge svg{flex:0 0 auto}.obs-gauge .g-track{stroke:var(--inset)}.obs-gauge .g-arc{transition:stroke-dashoffset .9s cubic-bezier(.22,1,.36,1),stroke .4s ease;stroke-linecap:round;filter:drop-shadow(0 0 5px currentColor)}.obs-gauge .g-value{font-size:20px;font-weight:750;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:-.02em}.obs-gauge .g-label{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-top:3px}.obs-gauge .g-detail{font-size:12px;color:var(--faint);margin-top:2px}.obs-toggle{display:inline-flex;gap:2px;background:var(--inset);border:1px solid var(--line);border-radius:9px;padding:3px}.obs-toggle button{border:0;background:transparent;color:var(--dim);padding:4px 12px;border-radius:6px;font-size:12px;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:background .15s ease,color .15s ease}.obs-toggle button:hover{color:var(--text)}.obs-toggle button.active{background:#0891b21f;color:var(--ice)}.obs-group{display:grid;grid-template-columns:1.55fr 1fr;gap:18px;align-items:stretch}.obs-chart{height:230px;margin:2px -4px 0 -6px}.obs-chart-empty{height:230px;display:grid;place-items:center;border:1px dashed var(--line);border-radius:10px;color:var(--faint);font-size:13px}.obs-servers{display:grid;align-content:start;gap:3px}.obs-srv{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px 12px;padding:9px 10px;border-radius:9px;border:1px solid transparent;cursor:pointer;text-align:left;background:transparent;color:var(--text);transition:background .14s ease,border-color .14s ease}.obs-srv:hover{background:var(--inset);border-color:var(--line)}.obs-srv .name{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:650;min-width:0}.obs-srv .name .seriesdot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.obs-srv .host{font-size:11px;color:var(--faint);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.obs-srv .meters{grid-column:1 / -1;display:grid;gap:7px;margin-top:2px}.obs-meter{display:grid;grid-template-columns:34px 1fr auto;align-items:center;column-gap:10px;row-gap:2px}.obs-meter .m-label{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--faint)}.obs-meter .m-track{height:6px;border-radius:3px;background:var(--inset);overflow:hidden}.obs-meter .m-fill{height:100%;border-radius:3px;transition:width .8s cubic-bezier(.22,1,.36,1)}.obs-meter .m-val{font-size:12px;font-weight:700;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text);text-align:right;min-width:34px}.obs-meter .m-detail{grid-column:2 / -1;font-size:10px;color:var(--faint);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.obs-statusdot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}.obs-statusdot.up{background:var(--up);box-shadow:0 0 8px var(--up)}.obs-statusdot.degraded{background:var(--warn);box-shadow:0 0 8px var(--warn)}.obs-statusdot.down{background:var(--down);box-shadow:0 0 8px var(--down)}.obs-statusdot.unknown{background:var(--unknown)}.obs-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border:1px solid transparent}.obs-badge.success{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.obs-badge.warning{background:#fffbeb;color:#b45309;border-color:#fde68a}.obs-badge.danger{background:#fef2f2;color:#be123c;border-color:#fecaca}.obs-badge.neutral{background:#f1f5f9;color:#475569;border-color:#e2e8f0}.obs-stack{display:grid;gap:16px}.obs-cols{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;align-items:start}.obs-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid var(--line-soft)}.obs-row:first-of-type{border-top:0}.obs-row .r-name{font-size:13px;font-weight:650}.obs-row .r-sub{font-size:11px;color:var(--faint);margin-top:2px}.obs-icon-btn{width:34px;height:34px;display:inline-grid;place-items:center;padding:0;border-radius:9px;border:1px solid var(--line);background:var(--panel-2);color:var(--dim);cursor:pointer;transition:color .15s ease,border-color .15s ease}.obs-icon-btn:hover{color:var(--ice);border-color:var(--ice-deep)}.obs-recharts-tip{background:#fff!important;border:1px solid var(--line)!important;border-radius:10px!important;box-shadow:0 12px 30px -14px #0f172a4d;font-size:12px;padding:8px 11px!important}.fo-hero{position:relative;overflow:hidden;padding:26px 22px 20px}.fo-stage{position:relative;width:100%;max-width:860px;margin:0 auto}.fo-stage>svg{width:100%;height:auto;display:block}.fo-node-label{font-size:13px;font-weight:700;fill:var(--text)}.fo-node-sub{font-size:10.5px;font-weight:600;letter-spacing:.06em;fill:var(--dim);text-transform:uppercase}.fo-beam{fill:none;stroke-width:3;stroke-linecap:round;stroke-dasharray:5 9;animation:fo-flow 1s linear infinite}@keyframes fo-flow{to{stroke-dashoffset:-28}}.fo-beam.reverse{animation-direction:reverse}.fo-beam.idle{animation:none;stroke-dasharray:none;opacity:.7}.fo-ring{fill:none;stroke-width:2;opacity:0;transform-origin:center}.fo-ring.on{animation:fo-ring 2.2s ease-out infinite}@keyframes fo-ring{0%{opacity:.6;r:44px}to{opacity:0;r:74px}}.fo-switching-banner{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 auto 16px;width:fit-content;padding:7px 16px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#b45309;background:#fffbeb;border:1px solid #fde68a}.fo-legend{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:14px;font-size:11px;color:var(--dim)}.fo-legend span{display:inline-flex;align-items:center;gap:6px}.fo-legend i{width:16px;height:3px;border-radius:2px;display:inline-block}.fo-eta{color:#b45309;font-weight:700;margin-left:6px}.fo-switch-emergency{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;border-radius:9px;font-size:13px;font-weight:600;color:#b45309;background:#fffbeb;border:1px solid #fde68a}.fo-switch-emergency>svg{flex:0 0 auto}.fo-switchtime{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 16px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft);font-size:12px;color:var(--dim)}.fo-switchtime>svg{color:var(--ice)}.fo-switchtime .st-label{font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:11px;color:var(--faint)}.fo-switchtime .st-item{display:inline-flex;align-items:center;gap:6px}.fo-switchtime .st-item b{color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700}.fo-switchtime .st-item i{font-style:normal;font-size:10.5px;color:var(--faint)}.fo-bookmarks{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.fo-bookmark{display:flex;align-items:center;gap:12px;flex:1 1 220px;min-width:200px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--inset);color:var(--text);text-decoration:none;transition:border-color .15s ease,background .15s ease}.fo-bookmark:hover{border-color:var(--ice-deep);background:#0891b20f}.fo-bookmark>svg:first-child{color:var(--ice);flex:0 0 auto}.fo-bookmark .bm-text{display:grid;gap:2px;min-width:0}.fo-bookmark .bm-title{font-size:13px;font-weight:700}.fo-bookmark .bm-sub{font-size:11px;color:var(--faint);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fo-bookmark .bm-ext{margin-left:auto;color:var(--faint);flex:0 0 auto}.fo-clickable{cursor:pointer}.fo-clickable:focus{outline:none}.fo-clickable:focus-visible>circle:last-of-type{stroke:var(--ice-deep)}.fo-select-ring{fill:none;stroke:var(--ice);stroke-width:1.5;stroke-dasharray:4 5;opacity:.8}.fo-breakdown-grid{display:grid;gap:6px}.fo-component{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--line-soft);border-radius:9px;background:var(--inset)}.fo-component .c-name{font-size:13px;font-weight:650;min-width:0}.fo-component .c-type{font-size:10.5px;color:var(--faint);text-transform:uppercase;letter-spacing:.05em}.fo-component .obs-badge{margin-left:auto}.svc-capacity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}.svc-capacity .cap-pct{font-size:20px;font-weight:750;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.svc-capacity .cap-bar{height:8px;border-radius:4px;background:var(--inset);overflow:hidden;margin-bottom:14px}.svc-capacity .cap-fill{height:100%;border-radius:4px;transition:width .8s cubic-bezier(.22,1,.36,1)}.svc-capacity .cap-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.svc-capacity .cap-stats>div{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:9px;background:var(--inset)}.svc-capacity .cap-stats span{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.svc-capacity .cap-stats b{font-size:16px;font-weight:700;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text)}@media(max-width:1040px){.svc-capacity-grid{grid-template-columns:1fr}}.fo-state{display:grid;gap:9px;margin-top:14px}.fo-state>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line-soft);font-size:13px}.fo-state dt{color:var(--dim)}.fo-state dd{margin:0;font-weight:650;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.obs-table-wrap{overflow-x:auto}.obs-table{width:100%;border-collapse:collapse;min-width:720px}.obs-table th{text-align:left;padding:9px 12px;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);border-bottom:1px solid var(--line);background:transparent}.obs-table td{padding:11px 12px;font-size:13px;border-bottom:1px solid var(--line-soft);color:var(--text);vertical-align:middle}.obs-table tr:hover td{background:#0891b20a}.obs-table .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--dim)}.obs-empty{color:var(--faint);font-size:13px;padding:8px 2px}.obs-error{border:1px solid #fecaca;background:#fef2f2;color:#be123c;border-radius:10px;padding:12px 14px;font-size:13px}.fo-switch-control{display:grid;gap:14px}.fo-switch-button{display:inline-flex;align-items:center;gap:8px;min-height:38px}.fo-switch-gate{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.fo-switch-gate>div{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:10px 12px;border:1px solid var(--line-soft);border-radius:6px}.fo-switch-blockers,.fo-switch-message{display:flex;align-items:center;gap:8px;color:#b45309;font-size:13px}.fo-switch-note{margin:0;color:var(--faint);font-size:12px}.fo-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding-top:12px;color:var(--faint);font-size:12px}.fo-pagination>div{display:flex;gap:8px}.obs-enter{animation:obs-rise .5s cubic-bezier(.22,1,.36,1) both}@keyframes obs-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media(max-width:1040px){.obs-group{grid-template-columns:1fr}.obs-cols{grid-template-columns:minmax(0,1fr)}.obs-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.jenkins-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.obs-cols.jenkins-build-grid{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){.obs-enter,.obs-live .pulse,.fo-beam,.fo-ring.on{animation:none}.obs-gauge .g-arc,.obs-meter .m-fill,.obs-srv,.obs-pill{transition:none}}@media(max-width:900px){.app{grid-template-columns:1fr;height:auto;overflow:visible}main{overflow-y:visible}.form-grid,.grid-2,.debug-endpoint-grid,.obs-card-grid{grid-template-columns:1fr}aside{position:sticky;top:0;z-index:2;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto;align-items:center;gap:10px;padding:12px}.brand{font-size:16px;white-space:nowrap}nav{display:flex;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:thin}nav button{flex:0 0 auto;width:auto;padding:8px 10px}.logout{width:36px;padding:8px;gap:0;font-size:0}.stats-grid,.grid.two,.quick-form,.obs-kpis{grid-template-columns:1fr}.jenkins-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.obs{margin:-24px -16px;padding:18px 16px 32px}.failover-toolbar{align-items:flex-start;flex-direction:column}}
