:root{--bg:#eef1f3;--panel:#fff;--panel-2:#f6f8f9;--line:#d8dee2;--fg:#1b2328;--muted:#5d6b74;--accent:#0f6e78;--accent-fg:#fff;--accent-soft:#d9eef0;--sel:#cfe7ea;--prod:#c4422f;--staging:#b7801a;--dev:#2f8a4c;--qa:#2f7a8a;--uat:#6a5bb0;--kw:#7b3fa6;--str:#9a5b12;--num:#1f6fb5;--font-display:"IBM Plex Sans Condensed", "Arial Narrow", system-ui, sans-serif;--font-body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--fs:13px;--fs-sm:12px;--fs-xs:11px;--row-h:24px;--tree-h:22px;--tab-h:28px;--top-h:32px;--status-h:22px;--pad:6px;--radius:3px}[data-density=comfortable]{--fs:14px;--fs-sm:13px;--row-h:30px;--tree-h:28px;--tab-h:34px;--top-h:40px;--status-h:26px;--pad:9px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1417;--panel:#161d21;--panel-2:#1b2328;--line:#2a353c;--fg:#dde5e9;--muted:#8c9ba4;--accent:#4fb8c3;--accent-fg:#0f1417;--accent-soft:#173238;--sel:#1d3b41;--prod:#e06a55;--staging:#d9a441;--dev:#5cbf7a;--qa:#5cb3c4;--uat:#9d8fe0;--kw:#c792ea;--str:#e0a764;--num:#7fb7ea;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f1417;--panel:#161d21;--panel-2:#1b2328;--line:#2a353c;--fg:#dde5e9;--muted:#8c9ba4;--accent:#4fb8c3;--accent-fg:#0f1417;--accent-soft:#173238;--sel:#1d3b41;--prod:#e06a55;--staging:#d9a441;--dev:#5cbf7a;--qa:#5cb3c4;--uat:#9d8fe0;--kw:#c792ea;--str:#e0a764;--num:#7fb7ea;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--fs)}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}kbd{font-family:var(--font-mono);font-size:var(--fs-xs);border:1px solid var(--line);background:var(--panel-2);border-radius:2px;padding:0 4px}.app{grid-template-rows:var(--top-h) auto minmax(0, 1fr) var(--status-h);background:var(--panel);height:100%;display:grid}.app>.top{grid-row:1}.app>.sections{grid-row:2}.app>.main,.app>.page{grid-row:3}.app>.status{grid-row:4}.main{grid-template-columns:var(--nav-w,240px) 1fr;min-height:0;display:grid}.main.nav-hidden{grid-template-columns:0 1fr}.main.nav-hidden .nav{visibility:hidden}.top{border-bottom:1px solid var(--line);background:var(--panel-2);align-items:center;gap:10px;padding-inline:10px;display:flex}.logo{font-family:var(--font-display);letter-spacing:.02em;font-size:15px;font-weight:600}.logo b{color:var(--accent)}.search{border:1px solid var(--line);border-radius:var(--radius);max-width:380px;color:var(--muted);font-size:var(--fs-sm);background:var(--panel);flex:1;justify-content:space-between;align-items:center;margin-inline:auto;padding:2px 8px;display:flex}.ib{color:var(--muted);border-radius:var(--radius);cursor:pointer;background:0 0;border:0;place-items:center;min-width:22px;height:22px;padding-inline:4px;display:inline-grid}.ib:hover{background:var(--panel-2);color:var(--fg)}.top .ib:hover{background:var(--panel)}.dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.env-prod{background:var(--prod)}.env-staging{background:var(--staging)}.env-dev{background:var(--dev)}.env-qa{background:var(--qa)}.env-uat{background:var(--uat)}.nav{border-right:1px solid var(--line);grid-template-rows:auto 1fr;min-height:0;display:grid;overflow:hidden}.nav-head{padding:5px var(--pad);border-bottom:1px solid var(--line);gap:4px;display:flex}.nav-head input{min-width:0;font-size:var(--fs-sm);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);flex:1;padding:2px 6px}.tree{margin:0;padding:4px 0;list-style:none;overflow:auto}.node{height:var(--tree-h);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding-inline:8px;display:flex}.node:hover{background:var(--panel-2)}.node.active{background:var(--sel)}.node .tag{font-family:var(--font-mono);color:var(--muted);border:1px solid var(--line);border-radius:2px;margin-left:auto;padding:0 3px;font-size:10px}.empty{color:var(--muted);font-size:var(--fs-sm);gap:6px;padding:14px 12px;line-height:1.5;display:grid}.empty strong{color:var(--fg);font-weight:500}.work{grid-template-rows:var(--tab-h) auto minmax(80px, var(--editor-fr,1fr)) 6px minmax(80px, var(--results-fr,1fr));grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;display:grid}.work.results-hidden{grid-template-rows:var(--tab-h) auto 1fr 0 0}.work.results-hidden .results,.work.results-hidden .split{visibility:hidden}.tabs{border-bottom:1px solid var(--line);background:var(--panel-2);display:flex;overflow-x:auto}.tab{border:0;border-right:1px solid var(--line);color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;align-items:center;gap:6px;padding-inline:10px;display:flex;position:relative}.tab.on{background:var(--panel);color:var(--fg)}.tab.on:after{content:"";background:var(--accent);height:2px;position:absolute;inset:0 0 auto}.tab .x{opacity:.5;font-size:var(--fs-xs);border-radius:2px;padding-inline:2px}.tab .x:hover{opacity:1;background:var(--line)}.tools{padding-inline:var(--pad);border-bottom:1px solid var(--line);align-items:center;gap:2px;display:flex}.tb{font-size:var(--fs-sm);border-radius:var(--radius);cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;height:22px;padding-inline:7px;display:inline-flex}.tb:hover:not(:disabled){background:var(--panel-2)}.tb:disabled{opacity:.45;cursor:default}.tb.primary{background:var(--accent);color:var(--accent-fg);font-weight:600}.sep{background:var(--line);width:1px;height:16px;margin-inline:4px}.tools .right{font-size:var(--fs-xs);color:var(--muted);align-items:center;gap:8px;margin-left:auto;display:flex}.editor{min-height:0;overflow:hidden}.editor .cm-editor{height:100%;font-size:var(--fs);background:var(--panel);color:var(--fg)}.editor .cm-scroller{font-family:var(--font-mono);line-height:1.6}.editor .cm-gutters{background:var(--panel-2);color:var(--muted);border-right:1px solid var(--line)}.editor .cm-activeLine{background:color-mix(in srgb, var(--accent-soft) 45%, transparent)}.editor .cm-activeLineGutter{background:var(--accent-soft)}.editor .cm-cursor{border-left-color:var(--fg)}.editor .cm-selectionBackground,.editor .cm-focused .cm-selectionBackground{background:var(--sel)!important}.split{background:var(--panel-2);border-block:1px solid var(--line);cursor:row-resize;place-items:center;display:grid}.split:before{content:"";background:var(--line);border-radius:1px;width:28px;height:2px}.results{grid-template-rows:var(--tab-h) 1fr;min-height:0;display:grid}.rtabs{border-bottom:1px solid var(--line);font-size:var(--fs-sm);align-items:center;padding-inline:4px;display:flex}.rtabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;height:100%;padding-inline:9px}.rtabs button.on{color:var(--fg);border-bottom-color:var(--accent)}.rtabs .meta{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;padding-right:6px}.results .body{min-height:0;overflow:auto}.status{border-top:1px solid var(--line);background:var(--panel-2);font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;align-items:center;gap:14px;padding-inline:10px;display:flex;overflow:hidden}.status .r{gap:14px;margin-left:auto;display:flex}.node .tw{width:12px;color:var(--muted);text-align:center;flex:none;font-size:9px}.node .label{text-overflow:ellipsis;overflow:hidden}.node .cnt{color:var(--muted);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;margin-left:auto;padding-left:8px}.node .ro{color:var(--prod);border:1px solid;border-radius:2px;padding:0 3px;font-size:9px;font-weight:600}.node.muted{color:var(--muted);cursor:default;font-style:italic}.node.error{color:var(--prod);cursor:default;white-space:nowrap;text-overflow:ellipsis;line-height:var(--tree-h);display:block;overflow:hidden}.node .actions{align-items:center;gap:1px;margin-left:auto;display:none}.node .actions .ib{min-width:18px;height:18px;font-size:var(--fs-xs)}.node:hover .actions,.node .actions.show{display:inline-flex}.node:hover .actions+.tag,.node .actions.show+.tag{display:none}.node:hover .actions~.cnt{margin-left:4px}.node .actions~.tag{margin-left:auto}.ico{text-align:center;width:14px;color:var(--muted);flex:none;font-size:11px}.ico-table,.ico-view{color:var(--accent)}.ico-folder:before{content:"";border:1.5px solid var(--muted);border-radius:1px 2px 2px;width:11px;height:8px;display:inline-block}.danger-text{color:var(--prod);font-size:var(--fs-xs);padding-inline:2px}.ib.danger{color:var(--prod)}.ib:disabled{opacity:.4;cursor:default}.btn{font-size:var(--fs-sm);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);cursor:pointer;height:26px;padding-inline:12px}.btn:hover:not(:disabled){background:var(--panel-2)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);font-weight:600}.btn.primary:hover:not(:disabled){background:var(--accent);filter:brightness(1.08)}.btn.danger{background:var(--prod);border-color:var(--prod);color:#fff;font-weight:600}.empty .btn{justify-self:start;margin-top:4px}.conn-select,.tools select{font-size:var(--fs-sm);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);height:22px;padding-inline:4px}.conn-select{max-width:200px}.chip{font-size:var(--fs-xs);border:1px solid var(--line);border-radius:2px;padding:0 6px}.chip.ro{color:var(--prod);border-color:var(--prod)}.bad{color:var(--prod)}.overlay{background:color-mix(in srgb, var(--fg) 30%, transparent);z-index:50;place-items:start center;padding:10vh 16px 16px;display:grid;position:fixed;inset:0}.dialog{background:var(--panel);border:1px solid var(--line);border-radius:6px;width:min(480px,100%);display:grid;box-shadow:0 18px 50px -20px #00000080}.dialog header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.dialog h2{font-family:var(--font-display);margin:0;font-size:15px;font-weight:600}.dialog .form{grid-template-columns:110px minmax(0,1fr);align-items:center;gap:8px 12px;padding:14px;display:grid}.dialog .form label,.dialog .form .label{color:var(--muted);font-size:var(--fs-sm)}.dialog .form input:not([type=checkbox]),.dialog .form select{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);min-width:0;height:26px;padding-inline:7px}.dialog .form .span{color:var(--fg);grid-column:2;align-items:center;gap:6px;display:flex}.req{color:var(--prod)}.seg{border:1px solid var(--line);border-radius:var(--radius);justify-self:start;display:inline-flex;overflow:hidden}.seg button{background:var(--panel);font-size:var(--fs-sm);cursor:pointer;border:0;align-items:center;gap:5px;padding:3px 10px;display:inline-flex}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:var(--sel)}.notice{border-radius:var(--radius);background:var(--panel-2);font-size:var(--fs-sm);overflow-wrap:anywhere;margin:0 14px 12px;padding:7px 10px}.notice.good{background:color-mix(in srgb, var(--dev) 14%, transparent);color:var(--dev)}.notice.bad{background:color-mix(in srgb, var(--prod) 12%, transparent);color:var(--prod)}.dialog footer{border-top:1px solid var(--line);background:var(--panel-2);border-radius:0 0 6px 6px;gap:6px;padding:10px 14px;display:flex}.grow{flex:1}.confirm{z-index:5;background:color-mix(in srgb, var(--prod) 14%, var(--panel));border-bottom:1px solid var(--prod);font-size:var(--fs-sm);align-items:center;gap:8px;padding:6px 10px;display:flex;position:absolute;inset:0 0 auto}.confirm span{flex:1}.confirm .btn{height:22px}.grid{height:100%;font-size:var(--fs);font-variant-numeric:tabular-nums;outline:none;position:relative;overflow:auto}.grid-head{z-index:2;background:var(--panel-2);display:grid;position:sticky;top:0}.gh{height:var(--row-h);line-height:var(--row-h);border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-weight:500;font-size:var(--fs-sm);white-space:nowrap;text-overflow:ellipsis;padding-inline:8px;overflow:hidden}.gh small{color:var(--muted);font-family:var(--font-mono);margin-left:5px;font-size:10px;font-weight:400}.gr{display:grid;position:absolute;top:0;left:0}.gr:hover .gc{background:var(--panel-2)}.gc{line-height:var(--row-h);border-right:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;background:var(--panel);cursor:cell;padding-inline:8px;overflow:hidden}.gc.num,.gh.num{text-align:right;font-family:var(--font-mono);font-size:calc(var(--fs) - .5px)}.gh.num{font-family:var(--font-body)}.gc.null{color:var(--muted);font-style:italic}.gr .gc.sel{background:var(--accent-soft);outline:1px solid var(--accent);outline-offset:-1px}.idx{z-index:1;color:var(--muted);text-align:right;font-size:var(--fs-xs);position:sticky;left:0;background:var(--panel-2)!important}.grid-head .idx{z-index:3}pre.err{white-space:pre-wrap;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--fg);margin:0}.rtabs .meta.bad{color:var(--prod)}.rtabs .tb{margin-left:6px}.log{font-size:var(--fs-sm);margin:0;padding:4px 0;list-style:none}.log li{border-bottom:1px solid var(--line);grid-template-columns:auto auto 1fr;align-items:baseline;gap:10px;padding:3px 10px;display:grid}.log li.error>span{color:var(--prod)}.log time{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);white-space:nowrap}.log code{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.history .log li{grid-template-columns:auto 1fr auto}.history .log code{color:var(--fg);cursor:pointer}.history .log code:hover{color:var(--accent);text-decoration:underline}.history .log .num{color:var(--muted);font-size:var(--fs-xs);white-space:nowrap}.history .log li.error .num{color:var(--prod)}.history-head{border-bottom:1px solid var(--line);background:var(--panel);gap:6px;padding:5px 8px;display:flex;position:sticky;top:0}.history-head input{max-width:320px;font-size:var(--fs-sm);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);flex:1;padding:2px 6px}.structure{align-content:start;gap:10px;padding:8px 10px;display:grid}table.cols{border-collapse:collapse;font-size:var(--fs-sm);width:max-content;min-width:50%}table.cols th,table.cols td{text-align:left;border-bottom:1px solid var(--line);height:var(--row-h);padding:3px 12px 3px 6px}table.cols th{color:var(--muted);font-weight:500}.mono{font-family:var(--font-mono);font-size:var(--fs-xs)}pre.ddl{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);font-family:var(--font-mono);font-size:var(--fs-sm);margin:0;padding:10px;overflow:auto}.editor-area{min-height:0;display:grid;position:relative}.tree ul{margin:0;padding:0;list-style:none}.node .label{flex:0 auto;min-width:3ch}.node .cnt{text-overflow:ellipsis;white-space:nowrap;flex:0 1000 auto;min-width:0;overflow:hidden}.empty{align-content:start}.editor .cm-matchingBracket{background:var(--accent-soft);color:inherit}.editor .cm-tooltip{background:var(--panel);border:1px solid var(--line);color:var(--fg);font-size:var(--fs-sm)}.editor .cm-tooltip-autocomplete ul li[aria-selected]{background:var(--accent);color:var(--accent-fg)}.editor .cm-foldPlaceholder{background:var(--panel-2);border-color:var(--line);color:var(--muted)}.dialog{max-height:calc(100% - 12vh)}.dialog>.form,.dialog>.dialog-body{min-height:0;overflow:auto}.dialog .form textarea{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);font-family:var(--font-mono);font-size:var(--fs-xs);resize:vertical;min-width:0;padding:5px 7px}.url-row{gap:6px;min-width:0;display:flex}.url-row input{min-width:0;font-family:var(--font-mono);font-size:var(--fs-sm);flex:1}.url-row .btn{height:26px}.field-error{color:var(--prod);font-size:var(--fs-sm)}.dialog .group{border-top:1px solid var(--line);grid-column:1/-1;padding-top:6px}.dialog .group summary{cursor:pointer;color:var(--muted);font-size:var(--fs-sm);-webkit-user-select:none;user-select:none;padding-block:2px;font-weight:500}.dialog .group summary:hover{color:var(--fg)}.dialog .group>.form{padding:8px 0 2px}.dialog{grid-template-rows:auto minmax(0,1fr) auto auto;max-height:calc(100dvh - 14vh)}.overlay{padding-bottom:4vh}.nav-switch{border-bottom:1px solid var(--line);background:var(--panel-2);display:flex}.nav-switch button{color:var(--muted);font-size:var(--fs-sm);height:var(--tab-h);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:1}.nav-switch button.on{color:var(--fg);border-bottom-color:var(--accent);background:var(--panel)}.nav-panel{grid-template-rows:auto 1fr;min-height:0;display:grid;overflow:hidden}.tab .dirty{background:var(--accent);border-radius:50%;width:6px;height:6px}.results{flex-direction:column;min-height:0;display:flex}.results .rtabs{min-height:var(--tab-h);flex:none}.results .body{flex:1;min-height:0}.rtabs .edit-tools{border-left:1px solid var(--line);align-items:center;gap:2px;margin-left:6px;padding-left:6px;display:inline-flex}.rtabs .tb.primary{background:var(--accent);color:var(--accent-fg)}.filter-bar{padding:4px var(--pad);border-bottom:1px solid var(--line);background:var(--panel-2);flex:none;align-items:center;gap:6px;display:flex}.filter-bar label{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--kw);font-weight:500}.filter-bar input{min-width:0;font-family:var(--font-mono);font-size:var(--fs-sm);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);flex:1;height:22px;padding-inline:6px}.gh.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.gh.sortable:hover{color:var(--accent)}.gh .sort{color:var(--accent);margin-left:4px;font-size:9px}.gr .gc.changed{background:color-mix(in srgb, var(--staging) 18%, var(--panel))}.gr.new .gc{background:color-mix(in srgb, var(--dev) 12%, var(--panel))}.gr.new .gc.null{color:var(--muted)}.gr.deleted .gc:not(.idx){color:var(--prod);background:color-mix(in srgb, var(--prod) 8%, var(--panel));text-decoration:line-through}.gc.editing{padding:0;overflow:visible}.gc.editing input{border:2px solid var(--accent);background:var(--panel);width:100%;height:100%;color:var(--fg);font:inherit;outline:none;padding-inline:6px;font-family:inherit}.menu{display:inline-block;position:relative}.menu-list{z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:150px;padding:4px;display:grid;position:absolute;top:calc(100% + 2px);right:0;box-shadow:0 8px 24px -12px #0006}.menu-list button{text-align:left;font-size:var(--fs-sm);cursor:pointer;background:0 0;border:0;border-radius:2px;padding:5px 8px}.menu-list button:hover{background:var(--sel)}.dialog.wide{width:min(760px,100%)}.review{gap:8px;min-height:0;padding:12px 14px;display:grid;overflow:auto}.review p{color:var(--muted);font-size:var(--fs-sm);margin:0}.review pre{white-space:pre-wrap;word-break:break-word;max-height:50vh}.plan,.plan ol{margin:0;padding:0;list-style:none}.plan{font-size:var(--fs-sm);padding:6px 10px}.plan ol{border-left:1px dashed var(--line);margin-left:14px;padding-left:8px}.plan-row{min-height:var(--row-h);grid-template-columns:minmax(0,1fr) auto 180px;align-items:center;gap:12px;display:grid}.plan-label{font-family:var(--font-mono);font-size:var(--fs-xs);overflow-wrap:anywhere}.plan-num{color:var(--muted);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.plan-cost{font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--muted);grid-template-columns:1fr auto;align-items:center;gap:6px;display:grid}.plan-cost .bar{background:var(--accent);opacity:.7;border-radius:3px;height:6px;display:block}.work.er-work{grid-template-rows:var(--tab-h) 1fr}.er{grid-template-rows:var(--tab-h) 1fr;min-height:0;display:grid}.er-tools{padding-inline:var(--pad);border-bottom:1px solid var(--line);font-size:var(--fs-xs);color:var(--muted);align-items:center;gap:4px;display:flex}.er-tools span{margin-right:auto}.er-canvas{cursor:grab;background:var(--panel-2);touch-action:none;width:100%;height:100%}.er-canvas:active{cursor:grabbing}.er-box{fill:var(--panel);stroke:var(--line)}.er-head{fill:var(--accent-soft);stroke:var(--line)}.er-title{fill:var(--fg);font-family:var(--font-display);font-size:12px;font-weight:600}.er-col{fill:var(--fg);font-family:var(--font-mono);font-size:11px}.er-col.pk{fill:var(--accent);font-weight:600}.er-type{fill:var(--muted);font-family:var(--font-mono);font-size:10px}.er-edge{fill:none;stroke:var(--muted);stroke-width:1.4px}.er-arrowhead{fill:var(--muted)}.nav{grid-template-rows:auto minmax(0,1fr)}.nav-slot{min-height:0;display:grid}[hidden]{display:none!important}.signin{background:var(--bg);place-items:center;min-height:100dvh;padding:16px;display:grid}.signin-card{background:var(--panel);border:1px solid var(--line);border-radius:6px;gap:6px;width:min(360px,100%);padding:22px 22px 18px;display:grid;box-shadow:0 18px 50px -24px #00000073}.signin-card h1{font-family:var(--font-display);margin:6px 0 4px;font-size:17px;font-weight:600}.signin-card p,.signin-card .hint{color:var(--muted);font-size:var(--fs-sm);margin:0 0 4px}.signin-card label{color:var(--muted);font-size:var(--fs-sm);margin-top:6px}.signin-card input{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);height:30px;padding-inline:8px}.signin-card .btn{text-align:center;justify-content:center;margin-top:10px;text-decoration:none}.signin-card .notice{margin:8px 0 0}.signin-card .or{text-align:center;color:var(--muted);font-size:var(--fs-xs);margin-top:8px}.logo.big{font-size:22px}.user-btn{align-items:center;gap:6px;display:inline-flex}.avatar{background:var(--accent);width:18px;height:18px;color:var(--panel);border-radius:50%;place-items:center;font-size:10px;font-weight:600;display:inline-grid}.chip.role-admin{color:var(--accent);border-color:var(--accent)}.chip.role-viewer{color:var(--muted)}.dialog.admin{grid-template-rows:auto minmax(0,1fr);width:min(860px,100%);max-height:calc(100dvh - 14vh)}.dialog.admin header .seg{margin-inline:12px auto}.admin-body{min-height:0;padding-bottom:12px;overflow:auto}.admin-body>.notice{margin-top:10px}.admin-body .history-head{border-bottom:1px solid var(--line);gap:6px;padding:8px 10px;display:flex}.admin-body .history-head input{flex:1}table.users{width:100%}table.users td{vertical-align:middle}table.users tr.off td{color:var(--muted)}table.users .mono{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted)}table.users .chip{margin-left:4px}.row-actions{text-align:right;white-space:nowrap}.add-user{margin:10px 10px 0}.dialog .inline-form{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);margin:10px 10px 0}.dialog .inline-form .buttons{justify-content:flex-end}.field-error{font-size:var(--fs-sm);color:var(--prod)!important}.audit-log li{grid-template-columns:auto 90px 110px 1fr}.audit-log .who{text-overflow:ellipsis;font-weight:600;overflow:hidden}.audit-log .action{color:var(--muted)}.audit-log li.error .action,.audit-log li.error code{color:var(--prod)}button.search{font:inherit;font-size:var(--fs-sm);cursor:pointer;text-align:left}button.search:hover{border-color:var(--accent)}.palette-overlay{padding-top:12vh}.palette{background:var(--panel);border:1px solid var(--line);border-radius:6px;grid-template-rows:auto minmax(0,1fr);width:min(620px,100%);max-height:64vh;display:grid;overflow:hidden;box-shadow:0 24px 60px -20px #0000008c}.palette input{border:0;border-bottom:1px solid var(--line);background:0 0;outline:none;padding:11px 14px;font-size:14px}.palette ul{margin:0;padding:4px;list-style:none;overflow:auto}.palette .pgroup{font-size:var(--fs-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:8px 10px 3px}.palette [role=option]{cursor:pointer;border-radius:3px;grid-template-columns:74px minmax(0,1fr) auto;align-items:baseline;gap:10px;padding:5px 10px;display:grid}.palette [role=option].on{background:var(--sel)}.palette .kind{font-size:var(--fs-xs);color:var(--muted)}.palette .plabel{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.palette .phint{font-size:var(--fs-xs);color:var(--muted);font-family:var(--font-mono)}.palette .none{color:var(--muted);padding:14px}.dialog.shortcuts{width:min(680px,100%)}.keys{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:6px 22px;max-height:70vh;padding:12px 16px 16px;display:grid;overflow:auto}.keys h3{font-size:var(--fs-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:6px 0 4px}.keys dl{margin:0}.keys dl>div{font-size:var(--fs-sm);border-bottom:1px solid var(--line);grid-template-columns:130px 1fr;gap:8px;padding:3px 0;display:grid}.keys dd{margin:0}.dialog.assistant{grid-template-rows:auto auto minmax(0,1fr);width:min(720px,100%);max-height:calc(100dvh - 14vh)}.dialog.assistant header{gap:8px}.ai-ask{border-bottom:1px solid var(--line);gap:6px;padding:12px 14px;display:grid}.ai-ask label{font-size:var(--fs-sm);color:var(--muted)}.ai-ask textarea{resize:vertical;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);font:inherit;padding:6px 8px}.ai-buttons{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ai-buttons .hint,.ai-ask .hint{color:var(--muted);font-size:var(--fs-xs)}.ai-answer{align-content:start;gap:10px;padding:12px 14px;display:grid;overflow:auto}.ai-answer .notice{margin:0}.ai-text{white-space:pre-wrap;line-height:1.5;font-size:var(--fs-sm)}.ai-sql{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);font-family:var(--font-mono);font-size:var(--fs-sm);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:10px}.dialog header .url-toggle{margin-left:auto;margin-right:6px}.url-import{border-bottom:1px solid var(--line);background:var(--panel-2);gap:6px;padding:10px 14px;display:grid}.url-import label{font-size:var(--fs-sm);color:var(--muted)}.dialog-body>.notice{margin-top:12px}.dialog-body>.notice div+div{margin-top:4px}.rtabs .seg{margin-left:6px}.rtabs .seg button{height:20px;color:var(--muted);border-bottom:0;padding:0 8px}.rtabs .seg button.on{color:var(--fg)}.dv{font-family:var(--font-mono);font-size:var(--fs-sm);padding:4px 0 8px}.dv ul{margin:0;padding-left:16px;list-style:none}.dv>ul{padding-left:0}.dv li{white-space:nowrap;line-height:20px}.dv-doc{border-bottom:1px solid var(--line)}.dv-head{padding-inline:var(--pad);align-items:center;display:flex}.dv-copy{opacity:.55;flex:none;margin-left:auto}.dv-head:hover .dv-copy,.dv-copy:focus-visible{opacity:1}.dv-doc>ul{padding-left:calc(var(--pad) + 16px);padding-bottom:4px}.dv-toggle{-webkit-user-select:text;user-select:text;font:inherit;color:var(--fg);cursor:pointer;text-align:left;text-overflow:ellipsis;background:0 0;border:0;min-width:0;padding:0;overflow:hidden}.dv-idx{color:var(--muted);min-width:3ch;display:inline-block}.dv-key{color:var(--accent)}.dv-meta{color:var(--muted)}.dv-string{color:var(--str)}.dv-number,.dv-boolean{color:var(--num)}.dv-null{color:var(--muted);font-style:italic}.dv-more{margin:8px var(--pad)}.tools,.rtabs{min-width:0;min-height:var(--tab-h);flex-wrap:wrap}.tools>*,.rtabs>*{flex:none}.rtabs>button{height:var(--tab-h)}.filter-bar,.results .body{min-width:0}.cell-menu{z-index:40;min-width:220px}.cell-menu button{align-items:baseline;gap:8px;display:flex}.cell-menu button:focus-visible{background:var(--sel);outline:none}.cell-menu button.divider{border-top:1px solid var(--line);border-radius:0;margin-top:3px;padding-top:7px}.cell-menu .detail{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:180px;margin-left:auto;overflow:hidden}.filter-bar .chip-btn{border:1px solid var(--line);text-overflow:ellipsis;white-space:nowrap;border-radius:10px;max-width:240px;overflow:hidden}.tree li[role=treeitem]:focus{outline:none}.tree li[role=treeitem]:focus-visible>.node{outline:2px solid var(--accent);outline-offset:-2px}.link{font:inherit;color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.link:hover{text-decoration:underline}.link.small{font-size:var(--fs-sm);justify-self:center}.chip-link{white-space:nowrap;margin-right:8px}.node .ro.write-on{color:var(--prod);border-color:var(--prod)}.dialog .form .access{align-items:start;gap:6px;min-width:0;display:grid}.access-list li>select,.access-add select{max-width:220px}table.cols.teams{width:100%}.access-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.access-list li{align-items:center;gap:8px;min-height:26px;display:flex}.access-list li>span:first-child,.access-list li>.link:first-child{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.access-list li>select{flex:none;width:96px}.access-list select,.access-add select{height:24px;font-size:var(--fs-sm)}.access-add{flex-wrap:wrap;gap:6px;display:flex}.access .hint{font-size:var(--fs-xs);color:var(--muted)}table.cols tr.on td,table.cols tr.detail td,table.cols tr.focus td{background:var(--panel-2)}table.cols tr.detail td{padding:8px 10px 12px}.team-group,.team-add{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.team-group input{flex:1;min-width:220px;height:24px}.team-members{flex-wrap:wrap;gap:6px 14px;margin-bottom:8px;display:flex}.team-members .member{align-items:center;gap:4px;display:inline-flex}.confirm-inline{color:var(--prod);align-items:center;gap:6px;display:inline-flex}.elevations{margin:0;padding:0;list-style:none}.elevations li{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;display:flex}.elevations li.off{opacity:.6}.elevations q{font-style:italic}.confirm.write-banner{position:static}.editor-area:has(>.write-banner){grid-template-rows:auto minmax(0,1fr)}.dialog .form .label-top{align-self:start;padding-top:5px}.good-text{color:var(--dev)}.warn-text{color:var(--staging)}.gitlab-link{align-items:flex-start!important}.gitlab-link>.grow{overflow-wrap:anywhere;min-width:0}.branch-status{font-size:var(--fs-sm);margin:2px 0 0;padding:0;list-style:none}.gitlab-add{flex-direction:column;position:relative}.gitlab-add input{height:24px}.gitlab-found{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);max-height:160px;margin:0;padding:4px 6px;list-style:none;overflow:auto}.gitlab-banner{position:static}table.branches td.status{text-align:center;white-space:nowrap}.admin-body .section-title{font-size:var(--fs-sm);margin:14px 10px 6px;font-weight:600}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.main[hidden]{display:none}.sections{border-bottom:1px solid var(--line);background:var(--panel-2);font-size:var(--fs-sm);align-items:center;gap:2px;padding-inline:8px;display:flex;overflow-x:auto}.sections:empty{display:none}.sections button{color:var(--fg);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:5px 10px}.sections button.on{border-bottom-color:var(--accent);color:var(--accent)}.sections .count{background:var(--accent);color:var(--accent-fg);font-size:var(--fs-xs);border-radius:8px;margin-left:6px;padding:0 5px}.sections-label{color:var(--muted);margin-left:14px}.page{background:var(--panel);grid-row:3;min-height:0;overflow:auto}.page-body{max-width:1200px;padding:12px 16px 24px}.page-body h2{font-size:var(--fs);margin:18px 0 6px}.page-body h3{font-size:var(--fs-sm);color:var(--muted);margin:16px 0 6px}.page-body .notice{margin:8px 0}.page-body table.cols{width:100%}.page-head{align-items:center;gap:8px;display:flex}.page-head h1{font-family:var(--font-display);margin:0 auto 0 0;font-size:18px;font-weight:600}.page-tools{gap:6px;display:flex}.muted{color:var(--muted)}.small{font-size:var(--fs-xs)}.pad{padding:6px 0}.row-actions{white-space:nowrap;text-align:right}.row-actions>*+*{margin-left:6px}.row-actions.inline{font-size:var(--fs-xs);margin-left:10px}table.cols tr.sel td{background:var(--sel)}.inline-add{flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 10px;display:flex}.plain-list{margin:0;padding:0;list-style:none}.plain-list li{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:3px 0;display:flex}.card{border:1px solid var(--line);border-radius:var(--radius);margin:8px 0;padding:8px 10px}.card.sel{border-color:var(--accent)}.card>header{align-items:center;gap:8px;display:flex}.split-page{grid-template-rows:auto 1fr;grid-template-columns:240px 1fr;gap:0 16px;display:grid}.split-page .page-head{grid-column:1/-1}.resource-list ul{margin:8px 0;padding:0;list-style:none}.resource-list button{text-align:left;width:100%;font:inherit;font-size:var(--fs-sm);cursor:pointer;color:var(--fg);overflow-wrap:anywhere;background:0 0;border:0;padding:3px 6px;display:block}.resource-list button.on{background:var(--sel)}.resource-list .res-product,.resource-list .res-org{font-weight:600}.resource-detail{min-width:0}table.matrix td.yes{color:var(--dev);text-align:center}table.matrix td.dormant{color:var(--staging);text-align:center}table.matrix td{text-align:center}table.matrix td:first-child,table.matrix td.because{text-align:left}.because{color:var(--muted);font-size:var(--fs-xs)}.role-editor{border:1px solid var(--line);border-radius:var(--radius);margin-top:14px;padding:0 0 8px}.role-editor>header,.role-editor>footer{align-items:center;gap:6px;padding:8px 12px;display:flex}.role-editor h2{margin:0 auto 0 0}.scope-group{border:0;border-top:1px solid var(--line);flex-wrap:wrap;gap:4px 14px;margin:0 12px;padding:8px 0;display:flex}.scope-group legend{font-size:var(--fs-xs);color:var(--muted);padding-right:6px}.scope-list{font-family:var(--font-mono);font-size:var(--fs-xs)}.parsed{font-size:var(--fs-xs);color:var(--muted);flex-direction:column;gap:2px;display:flex}.parsed .masked{font-family:var(--font-mono)}.why{font-size:var(--fs-xs);display:inline-block}.why summary{cursor:pointer;color:var(--accent);list-style:none}.why ul{z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);text-align:left;max-width:520px;margin:4px 0 0;padding:6px 10px;list-style:none;position:absolute;right:12px;box-shadow:0 4px 14px #0000001f}.tree-group{list-style:none}.node.group-head{width:100%;font:inherit;color:var(--fg);cursor:pointer;text-align:left;background:0 0;border:0;font-weight:600}.node.env-head{color:var(--muted);font-size:var(--fs-xs);padding-left:18px}.env-group>ul{margin:0;padding:0 0 0 12px;list-style:none}.guarded{color:var(--prod);margin-left:4px}.scope-badge{font-family:var(--font-mono)}.menu-note{font-size:var(--fs-xs);color:var(--muted);padding:4px 10px;display:block}tr.inv-product th{color:var(--fg);padding-top:10px;font-weight:600}.access-asof{font-size:var(--fs-xs);white-space:nowrap;margin-left:auto;padding-left:12px}.sections:has(.access-asof){display:flex}.new-rule input{min-width:14ch}.connector-settings footer{gap:6px;padding:8px 0;display:flex}table.cols tr.yes td{color:var(--dev)}
