html:has(.obs-root),body:has(.obs-root),#root:has(.obs-root){background:#101514;height:auto;min-height:100%;overflow-y:auto}.obs-root,.obs-pin-gate{color:#ecf2ee;background:linear-gradient(#ffffff06 1px,#0000 1px) 0 0/28px 28px,linear-gradient(90deg,#ffffff05 1px,#0000 1px) 0 0/28px 28px,radial-gradient(circle at 18% 0,#48d7cd29,#0000 34rem),radial-gradient(circle at 92% 10%,#d8a23f1a,#0000 30rem),#101514;min-height:100vh;font-family:IBM Plex Sans,ui-sans-serif,system-ui,sans-serif}.obs-root *,.obs-pin-gate *{box-sizing:border-box}.obs-header{z-index:4;backdrop-filter:blur(18px);background:#101514d6;border-bottom:1px solid #e4eee71a;justify-content:space-between;align-items:center;gap:18px;padding:18px 24px;display:flex;position:sticky;top:0}.obs-header h1,.obs-pin-card h1{letter-spacing:0;margin:0;font-size:24px}.obs-header p,.obs-pin-card p{color:#9aa7a0;margin:5px 0 0;font:13px IBM Plex Mono,ui-monospace,monospace}.obs-controls{align-items:center;gap:10px;display:flex}.obs-controls input,.obs-pin-input{color:#ecf2ee;background:#1d2422;border:1px solid #e4eee71a;border-radius:8px;padding:10px 11px;font:13px IBM Plex Mono,ui-monospace,monospace}.obs-filter-input{min-width:240px}.obs-button{color:#ecf2ee;cursor:pointer;background:#1d2422;border:1px solid #e4eee71a;border-radius:8px;padding:10px 12px;font:600 13px IBM Plex Mono,ui-monospace,monospace}.obs-button-primary{color:#48d7cd;background:#48d7cd24;border-color:#48d7cd47}.obs-layout{grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);gap:18px;max-width:1480px;margin:0 auto;padding:22px 24px 48px;display:grid}.obs-left{gap:14px;display:grid}.obs-card{background:linear-gradient(#ffffff09,#ffffff04),#171d1b;border:1px solid #e4eee71a;border-radius:10px;overflow:hidden}.obs-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.obs-kpi{padding:15px}.obs-kpi span,.obs-section-title,.obs-metric span,.obs-detail-block h3,.obs-pin-kicker{color:#9aa7a0;text-transform:uppercase;letter-spacing:.08em;font:11px IBM Plex Mono,ui-monospace,monospace}.obs-kpi strong{margin-top:9px;font-size:28px;line-height:1.05;display:block}.obs-kpi small{color:#9aa7a0;white-space:nowrap;text-overflow:ellipsis;margin-top:7px;font:12px IBM Plex Mono,ui-monospace,monospace;display:block;overflow:hidden}.obs-section-title{border-bottom:1px solid #e4eee71a;justify-content:space-between;gap:12px;padding:12px 14px;display:flex}.obs-table-wrap{overflow:auto}.obs-table-card table{border-collapse:collapse;width:100%;font-size:13px}.obs-table-card th,.obs-table-card td{text-align:left;vertical-align:top;border-bottom:1px solid #e4eee71a;padding:10px 12px}.obs-table-card th{color:#9aa7a0;text-transform:uppercase;letter-spacing:.06em;font:11px IBM Plex Mono,ui-monospace,monospace}.obs-click-row{cursor:pointer}.obs-click-row:hover td{background:#ffffff06}.obs-query{max-width:430px;line-height:1.35}.obs-query small{color:#9aa7a0;font-family:IBM Plex Mono,ui-monospace,monospace;display:block}.obs-mono{font-family:IBM Plex Mono,ui-monospace,monospace}.obs-muted{color:#9aa7a0}.obs-pill{color:#9aa7a0;background:#ffffff09;border:1px solid #e4eee71a;border-radius:999px;align-items:center;gap:6px;padding:3px 7px;font:12px IBM Plex Mono,ui-monospace,monospace;display:inline-flex}.obs-pill-row{flex-wrap:wrap;gap:8px;display:flex}.obs-pill-teal{color:#48d7cd;background:#48d7cd24;border-color:#48d7cd40}.obs-pill-amber{color:#d8a23f;background:#d8a23f26;border-color:#d8a23f3d}.obs-pill-rose{color:#e06f76;background:#e06f761f;border-color:#e06f763d}.obs-detail{align-self:start;max-height:none;position:sticky;top:84px;overflow:visible}.obs-detail-head,.obs-detail-block{border-bottom:1px solid #e4eee71a;padding:14px}.obs-detail-head h2{margin:0;font-size:19px}.obs-detail-head p{color:#9aa7a0;word-break:break-word;margin:6px 0 0;font:12px IBM Plex Mono,ui-monospace,monospace}.obs-detail-grid{border-bottom:1px solid #e4eee71a;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px;display:grid}.obs-metric{background:#00000029;border:1px solid #e4eee71a;border-radius:8px;padding:10px}.obs-metric strong{word-break:break-word;margin-top:5px;display:block}.obs-detail-block h3{margin:0 0 10px}.obs-source{border-bottom:1px solid #e4eee71a;grid-template-columns:28px 1fr;gap:10px;padding:11px 0;display:grid}.obs-source>span{color:#48d7cd;background:#48d7cd24;border-radius:50%;place-items:center;width:24px;height:24px;font:600 12px IBM Plex Mono,ui-monospace,monospace;display:grid}.obs-source small{color:#9aa7a0;font:12px IBM Plex Mono,ui-monospace,monospace;display:block}.obs-source p{color:#aeb9b3;margin:5px 0 0;line-height:1.4}.obs-pipeline-row{border-bottom:1px solid #e4eee71a;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:10px 0;display:grid}.obs-pipeline-row strong{display:block}.obs-pipeline-row small{color:#9aa7a0;margin-top:3px;font:12px IBM Plex Mono,ui-monospace,monospace;display:block}.obs-pipeline-row>span{color:#d8a23f;font:600 12px IBM Plex Mono,ui-monospace,monospace}.obs-detail a,.obs-link-button{color:#48d7cd;text-decoration:none}.obs-link-button{cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.obs-detail pre{white-space:pre-wrap;word-break:break-word;color:#d7dfda;background:#00000038;border:1px solid #e4eee71a;border-radius:8px;max-height:380px;margin:10px 0 0;padding:12px;font:12px/1.5 IBM Plex Mono,ui-monospace,monospace;overflow:auto}.obs-empty,.obs-error{color:#9aa7a0;text-align:center;padding:24px;font-family:IBM Plex Mono,ui-monospace,monospace}.obs-error{color:#e06f76;background:#e06f761f;border:1px solid #e06f763d;border-radius:10px;max-width:1480px;margin:14px auto 0}.obs-pin-gate{place-items:center;padding:24px;display:grid}.obs-pin-card{background:linear-gradient(#ffffff0a,#ffffff04),#171d1b;border:1px solid #e4eee71a;border-radius:12px;width:min(420px,100%);padding:22px}.obs-pin-input{letter-spacing:.16em;text-align:center;width:100%;margin-top:18px;font-size:22px}.obs-pin-message{color:#e06f76;margin-top:10px;font:12px IBM Plex Mono,ui-monospace,monospace}.obs-pin-card .obs-button{width:100%;margin-top:14px}@media (width<=1050px){.obs-layout{grid-template-columns:1fr}.obs-detail{max-height:none;position:static}.obs-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.obs-header{flex-direction:column;align-items:stretch}}