@font-face{font-family:Poppins;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/Poppins-Light.ttf)format("truetype")}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Poppins-Regular.ttf)format("truetype")}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/Poppins-Medium.ttf)format("truetype")}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/Poppins-SemiBold.ttf)format("truetype")}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/Poppins-Bold.ttf)format("truetype")}:root{--purple-0:#f4ecff;--purple-1:#e3d7fb;--purple-2:#c2aeee;--purple-3:#a183e2;--purple-4:#835bd9;--purple-5:#784dd6;--purple-6:#6737d2;--purple-7:#5729ba;--purple-8:#4c24a8;--purple-9:#421c94;--mint-0:#e7fffa;--mint-1:#b9e7df;--mint-2:#a9f4e8;--mint-3:#59ead0;--mint-4:#36e6c6;--mint-5:#15bfa3;--mint-6:#0f9c85;--mint-7:#0f7c6a;--mint-8:#0a5e50;--mint-9:#064036;--sky-0:#e2fbff;--sky-1:#d0f2fd;--sky-2:#a4e2f6;--sky-3:#88d8f1;--sky-4:#4fc4e9;--sky-5:#36bbe6;--sky-6:#23b7e5;--sky-7:#0aa0cc;--sky-8:#008fb7;--sky-9:#007da2;--gray-0:#f2f2f2;--gray-1:#e6e6e6;--gray-2:#d9d9d9;--gray-3:#cdcdcd;--gray-4:#b2b2b2;--gray-5:#999;--gray-6:#8b8b8b;--gray-7:#666;--gray-8:#5c5557;--gray-9:#333;--red-0:#ffe9e9;--red-1:#fddede;--red-2:#faa1a2;--red-3:#f45a5a;--red-4:#f14343;--red-5:#f02827;--red-6:#f01919;--red-7:#d60a0d;--red-8:#bf020a;--red-9:#a80005;--yellow-0:#fffae1;--yellow-1:#fef3cc;--yellow-2:#fce79d;--yellow-3:#f8da69;--yellow-4:#f6ce3f;--yellow-5:#f5c722;--yellow-6:#f4c30f;--yellow-7:#d9ac00;--yellow-8:#c19900;--yellow-9:#a78300;--brand-primary:var(--purple-5);--brand-secondary:var(--mint-5);--fg-default:var(--gray-9);--fg-body:var(--gray-8);--fg-dimmed:var(--gray-6);--border-default:var(--gray-4);--border-subtle:var(--gray-2);--bg-app:#fff;--bg-nav-active:#efeafa;--bg-hover:var(--gray-0);--font-family:"Poppins",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-family-mono:"JetBrains Mono","Fira Code",Consolas,monospace;--shadow-xs:0 1px 3px rgba(0,0,0,.05),0 1px 2px rgba(0,0,0,.1);--shadow-md:0 1px 3px rgba(0,0,0,.05),0 20px 25px -5px rgba(0,0,0,.05),0 10px 10px -5px rgba(0,0,0,.04)}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0;overflow:hidden}body{font-family:var(--font-family);color:var(--gray-9);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fbfafd;font-size:14px}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}a{color:inherit;text-decoration:none}.tabular{font-variant-numeric:tabular-nums}.app{grid-template-rows:48px 1fr;height:100vh;display:grid}.appbar{border-bottom:1px solid var(--gray-2);background:#fff;align-items:center;gap:16px;height:48px;padding:0 16px;display:flex}.appbar__brand{border-right:1px solid var(--gray-2);align-items:center;gap:10px;height:100%;padding-right:14px;display:flex}.appbar__brand img{height:14px;display:block}.appbar__brand .badge-internal{letter-spacing:.06em;text-transform:uppercase;color:var(--gray-7);font-size:10px;font-weight:600}.appbar__nav{gap:4px;display:flex}.appbar__nav a{color:var(--gray-7);border-radius:4px;padding:6px 10px;font-size:13px;font-weight:500}.appbar__nav a.is-active{background:var(--bg-nav-active);color:var(--purple-7);font-weight:600}.appbar__right{color:var(--gray-6);align-items:center;gap:12px;margin-left:auto;font-size:12px;display:flex}.appbar__user{color:var(--gray-8);align-items:center;gap:8px;font-size:13px;display:flex}.appbar__user .avatar{background:var(--purple-1);width:24px;height:24px;color:var(--purple-7);border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.workspace{grid-template-columns:240px 1fr;min-height:0;display:grid}.workspace.rail-collapsed{grid-template-columns:44px 1fr}.workspace.rail-collapsed .filter-rail__body,.workspace.rail-collapsed .filter-rail__head .toggle-label{display:none}.filter-rail{border-right:1px solid var(--gray-2);background:#fff;min-height:0;overflow-y:auto}.filter-rail__head{z-index:1;border-bottom:1px solid var(--gray-2);background:#fff;justify-content:space-between;align-items:center;padding:10px 14px;display:flex;position:-webkit-sticky;position:sticky;top:0}.filter-rail__head .toggle-label{text-transform:uppercase;letter-spacing:.06em;color:var(--gray-7);font-size:11px;font-weight:600}.filter-rail__body{padding:8px 0 24px}.filter-group{border-bottom:1px solid var(--gray-1);padding:10px 14px}.filter-group:last-child{border-bottom:0}.filter-group__head{color:var(--gray-9);-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;font-weight:600;display:flex}.filter-group__head .count{color:var(--gray-6);font-size:11px;font-weight:500}.filter-group__head .chev{color:var(--gray-5);font-size:10px;transition:transform .15s}.filter-group.collapsed .chev{transform:rotate(-90deg)}.filter-group.collapsed .filter-group__body{display:none}.chip-cloud{flex-wrap:wrap;gap:4px;display:flex}.chip{border:1px solid var(--gray-2);color:var(--gray-8);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-variant-numeric:tabular-nums;background:#fff;border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-size:11px;line-height:1.55;display:inline-flex}.chip:hover{background:var(--gray-0)}.chip.is-on{background:var(--purple-0);border-color:var(--purple-3);color:var(--purple-7);font-weight:600}.chip .n{color:var(--gray-5);font-size:10px;font-weight:400}.chip.is-on .n{color:var(--purple-5)}.facet-list{max-height:200px;overflow-y:auto}.facet-list__row{cursor:pointer;align-items:center;gap:8px;padding:4px 0;font-size:12px;display:flex}.facet-list__row:hover{background:var(--gray-0)}.facet-list__row .name{color:var(--gray-9);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.facet-list__row .count{color:var(--gray-5);font-variant-numeric:tabular-nums;font-size:11px}.facet-list__row input{accent-color:var(--purple-5);margin:0}.facet-search{border:1px solid var(--gray-2);border-radius:4px;outline:none;width:100%;height:26px;margin-bottom:6px;padding:0 8px;font-size:12px}.facet-search:focus{border-color:var(--purple-3)}.bool-grid{grid-template-columns:1fr;gap:4px;display:grid}.bool-grid label{color:var(--gray-9);cursor:pointer;align-items:center;gap:8px;padding:3px 0;font-size:12px;display:flex}.bool-grid input{accent-color:var(--purple-5);margin:0}.seg-pills{flex-wrap:wrap;gap:4px;display:flex}.seg-pill{border:1px solid var(--gray-2);color:var(--gray-8);cursor:pointer;background:#fff;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:500}.seg-pill.is-on{background:var(--purple-5);color:#fff;border-color:var(--purple-5)}.content{background:#fbfafd;grid-template-rows:auto auto auto 1fr auto;min-height:0;display:grid}.topbar{border-bottom:1px solid var(--gray-2);background:#fff;align-items:center;gap:16px;padding:12px 20px;display:flex}.search{flex:1;max-width:520px;position:relative}.search input{border:1px solid var(--gray-2);background:#fff;border-radius:6px;outline:none;width:100%;height:34px;padding:0 12px 0 34px;font-size:13px}.search input:focus{border-color:var(--purple-4);box-shadow:0 0 0 3px var(--purple-0)}.search .icon{color:var(--gray-5);pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.pipeline-strip{gap:8px;margin-left:auto;display:flex}.pipe-pill{border:1px solid var(--gray-2);background:#fff;border-radius:6px;align-items:center;gap:8px;min-width:160px;padding:6px 10px;font-size:12px;display:flex}.pipe-pill__dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.pipe-pill__dot.ok{background:var(--mint-5);box-shadow:0 0 0 2px var(--mint-0)}.pipe-pill__dot.idle{background:var(--gray-4)}.pipe-pill__dot.err{background:var(--red-5);box-shadow:0 0 0 2px var(--red-0)}.pipe-pill__name{color:var(--gray-9);font-size:11px;font-weight:600}.pipe-pill__meta{color:var(--gray-6);font-size:11px}.pipe-pill__meta.err{color:var(--red-7)}.stats-row{border-bottom:1px solid var(--gray-2);background:#fff;gap:0;padding:14px 20px;display:flex}.stat{border-right:1px solid var(--gray-1);flex-direction:column;gap:2px;padding:0 20px;display:flex}.stat:first-child{padding-left:0}.stat:last-child{border-right:0}.stat__label{color:var(--gray-6);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:500}.stat__value{color:var(--gray-9);font-variant-numeric:tabular-nums;font-size:22px;font-weight:600;line-height:1.2}.stat__value .pct{color:var(--gray-6);margin-left:6px;font-size:11px;font-weight:500}.stat.is-zero .stat__value{color:var(--gray-6)}.toolbar{border-bottom:1px solid var(--gray-2);background:#fff;align-items:center;gap:12px;padding:10px 20px;display:flex}.toolbar .results{color:var(--gray-7);font-size:12px}.toolbar .results b{color:var(--gray-9);font-weight:600}.toolbar .spacer{flex:1}.tool-btn{border:1px solid var(--gray-2);height:28px;color:var(--gray-8);cursor:pointer;background:#fff;border-radius:4px;align-items:center;gap:6px;padding:0 10px;font-size:12px;display:inline-flex}.tool-btn:hover{background:var(--gray-0)}.tool-btn.is-on{background:var(--purple-0);border-color:var(--purple-3);color:var(--purple-7);font-weight:600}.table-wrap{background:#fff;min-height:0;position:relative;overflow:auto}table.programs{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;font-size:13px}table.programs thead th{z-index:1;text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--gray-7);border-bottom:1px solid var(--gray-2);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;background:#fff;padding:8px 10px;font-size:11px;font-weight:600;position:-webkit-sticky;position:sticky;top:0}table.programs thead th:hover{color:var(--gray-9)}table.programs thead th .sort{color:var(--gray-4);margin-left:4px;font-size:9px;display:inline-block}table.programs thead th.sorted .sort{color:var(--purple-5)}table.programs tbody td{height:var(--row-h,32px);border-bottom:1px solid var(--gray-1);white-space:nowrap;text-overflow:ellipsis;color:var(--gray-9);vertical-align:middle;font-variant-numeric:tabular-nums;padding:0 10px;overflow:hidden}table.programs.striped tbody tr:nth-child(2n) td{background:#fafafc}table.programs tbody tr{cursor:pointer}table.programs tbody tr:hover td{background:var(--purple-0)!important}table.programs tbody tr.is-selected td{background:var(--bg-nav-active)!important}table.programs td.muted,.muted{color:var(--gray-5)}table.programs td.name{color:var(--gray-9);font-weight:600}table.programs td.provider{color:var(--gray-7);font-weight:400}table.programs td .actions{opacity:0;transition:opacity .1s}table.programs tbody tr:hover td .actions{opacity:1}.row-action{color:var(--gray-6);background:0 0;border:0;border-radius:3px;justify-content:center;align-items:center;width:22px;height:22px;margin-left:2px;padding:4px;display:inline-flex}.row-action:hover{background:var(--gray-1);color:var(--gray-9)}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-size:11px;font-weight:500;line-height:1.5;display:inline-flex}.badge .dot{border-radius:50%;width:5px;height:5px}.badge--draft{background:var(--gray-1);color:var(--gray-8)}.badge--draft .dot{background:var(--gray-5)}.badge--published{background:var(--sky-1);color:var(--sky-8)}.badge--published .dot{background:var(--sky-7)}.badge--verified{background:var(--mint-2);color:var(--mint-7)}.badge--verified .dot{background:var(--mint-5)}.badge--retired{background:var(--yellow-1);color:var(--yellow-8)}.badge--retired .dot{background:var(--yellow-6)}.badge--claimed{background:var(--purple-0);color:var(--purple-7)}.badge--claimed .dot{background:var(--purple-5)}.src-count{background:var(--gray-1);min-width:20px;height:18px;color:var(--gray-8);border-radius:999px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:600;display:inline-flex}.tag-mini{background:var(--gray-1);color:var(--gray-7);vertical-align:middle;border-radius:3px;padding:1px 5px;font-size:10px;font-weight:500;display:inline-block}.tag-mini.union{background:var(--purple-0);color:var(--purple-7)}.pagination{border-top:1px solid var(--gray-2);color:var(--gray-7);background:#fff;align-items:center;gap:8px;padding:10px 20px;font-size:12px;display:flex}.pagination .spacer{flex:1}.pag-btn{border:1px solid var(--gray-2);min-width:26px;height:26px;color:var(--gray-8);background:#fff;border-radius:4px;padding:0 8px;font-size:12px}.pag-btn:hover{background:var(--gray-0)}.pag-btn.is-on{background:var(--purple-5);color:#fff;border-color:var(--purple-5);font-weight:600}.pag-btn:disabled{opacity:.4;cursor:not-allowed}.empty{text-align:center;color:var(--gray-6);padding:80px 20px}.empty h3{color:var(--gray-9);margin:0 0 4px;font-size:16px}.empty p{margin:0 0 12px;font-size:13px}.scrim{z-index:50;opacity:0;pointer-events:none;background:rgba(20,16,40,.18);transition:opacity .2s;position:fixed;top:0;bottom:0;left:0;right:0}.scrim.is-open{opacity:1;pointer-events:auto}.detail-panel{z-index:60;background:#fff;flex-direction:column;width:640px;transition:transform .22s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-8px 0 32px rgba(40,30,80,.1)}.detail-panel.is-open{transform:translate(0)}.dp-head{border-bottom:1px solid var(--gray-2);align-items:flex-start;gap:12px;padding:16px 20px;display:flex}.dp-head__title{flex:1;min-width:0}.dp-head h2{color:var(--gray-9);margin:0 0 2px;font-size:18px;font-weight:600;line-height:1.3}.dp-head .provider{color:var(--gray-6);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.dp-head .provider .type{text-transform:uppercase;letter-spacing:.04em;color:var(--purple-7);font-size:10px;font-weight:600}.dp-head__actions{align-items:center;gap:6px;display:flex}.icon-btn{color:var(--gray-6);background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.icon-btn:hover{background:var(--gray-0);color:var(--gray-9)}.dp-meta{border-bottom:1px solid var(--gray-1);flex-wrap:wrap;align-items:center;gap:14px;padding:10px 20px;font-size:12px;display:flex}.dp-meta .claim{color:var(--gray-7);align-items:center;gap:6px;display:flex}.dp-meta .claim b{color:var(--gray-9);font-weight:600}.dp-body{flex:1;padding:16px 20px;overflow-y:auto}.dp-section{margin-bottom:22px}.dp-section h4{text-transform:uppercase;letter-spacing:.04em;color:var(--gray-6);margin:0 0 8px;font-size:11px;font-weight:600}.kv-row{border-bottom:1px dashed var(--gray-1);grid-template-columns:130px 1fr;gap:12px;padding:6px 0;font-size:12.5px;display:grid}.kv-row:last-child{border-bottom:0}.kv-row .k{color:var(--gray-6);font-weight:500}.kv-row .v{color:var(--gray-9);font-variant-numeric:tabular-nums;word-break:break-word}.kv-row .v.dim{color:var(--gray-5);font-style:italic}.kv-row .v.mono{font-family:var(--font-family-mono);font-size:11.5px}.chip-list{flex-wrap:wrap;gap:4px;display:flex}.chip-list .chip{cursor:default;background:var(--gray-0);border-color:var(--gray-1);color:var(--gray-8);padding:2px 7px;font-size:11px}.source-list{flex-direction:column;gap:8px;display:flex}.source{border:1px solid var(--gray-2);background:#fff;border-radius:6px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.src-kind{text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:4px;padding:3px 8px;font-size:10px;font-weight:600}.src-kind.apprenticeship{background:var(--sky-1);color:var(--sky-8)}.src-kind.helix{background:var(--purple-0);color:var(--purple-7)}.src-kind.scrape{background:var(--yellow-1);color:var(--yellow-8)}.src-kind.web{background:var(--gray-1);color:var(--gray-8)}.source .src-url{color:var(--gray-9);text-overflow:ellipsis;font-size:12px;overflow:hidden}.source .src-url small{color:var(--gray-6);font-size:11px;display:block}.dp-footer{border-top:1px solid var(--gray-2);background:#fff;gap:8px;padding:12px 20px;display:flex}.btn{cursor:pointer;border:1px solid transparent;border-radius:4px;align-items:center;gap:6px;height:32px;padding:0 14px;font-size:13px;font-weight:500;display:inline-flex}.btn--primary{background:var(--purple-5);color:#fff}.btn--primary:hover{background:var(--purple-6)}.btn--secondary{border-color:var(--gray-2);color:var(--gray-9);background:#fff}.btn--secondary:hover{background:var(--gray-0)}.btn--mint{background:var(--mint-5);color:#fff}.btn--mint:hover{background:var(--mint-6)}.btn--ghost{color:var(--gray-7);background:0 0}.btn--ghost:hover{background:var(--gray-0)}.login-stage{z-index:100;background:#fbfafd;place-items:center;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.login-card{flex-direction:column;gap:20px;width:360px;margin:auto;padding:32px;display:flex}.login-card .logo img{height:18px}.login-card .subtitle{color:var(--gray-6);font-size:13px}.login-card label{color:var(--gray-9);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.login-card input[type=password]{border:1px solid var(--gray-2);background:#fff;border-radius:4px;outline:none;width:100%;height:36px;padding:0 12px;font-size:14px}.login-card input.has-error{border-color:var(--red-3);background:var(--red-0)}.login-card input:focus{border-color:var(--purple-5);box-shadow:0 0 0 3px var(--purple-0)}.login-card .submit{background:var(--mint-5);color:#fff;cursor:pointer;border:0;border-radius:4px;height:38px;font-size:14px;font-weight:600}.login-card .submit:hover{background:var(--mint-6)}.login-card .err-msg{color:var(--red-7);align-items:center;gap:6px;margin-top:-12px;font-size:12px;display:flex}.login-card .version-tag{color:var(--purple-7);background:var(--purple-0);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;align-self:flex-start;padding:2px 7px;font-size:10px;font-weight:600}.toast{background:var(--gray-9);color:#fff;box-shadow:var(--shadow-md);z-index:200;border-radius:6px;align-items:center;gap:8px;padding:10px 16px;font-size:13px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--gray-2);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--gray-3)}::-webkit-scrollbar-track{background:0 0}
