:root{--harita: #3e6b53;--harita-deep: #305340;--harita-deeper: #244233;--shyama-pale: #a9c6b4;--harita-wash: rgba(62, 107, 83, .1);--pitha: #c79a33;--pitha-deep: #9c7722;--pitha-wash: rgba(199, 154, 51, .12);--raktha: #a8432f;--raktha-wash: rgba(168, 67, 47, .1);--indigo: #3c4a6b;--indigo-wash: rgba(60, 74, 107, .07);--svetha: #f8f5ed;--paper: #fdfcf8;--surface: #ffffff;--sunken: #f1ece0;--krshna: #1f1b18;--ink: #2c2f33;--text-strong: #2c2f33;--text-body: #34383d;--text-muted: #5e636b;--text-subtle: #8a8f97;--border-subtle: rgba(31, 27, 24, .08);--border-default: rgba(31, 27, 24, .14);--border-strong: rgba(31, 27, 24, .28);--scrim: rgba(31, 27, 24, .42);--focus-ring: rgba(62, 107, 83, .42);--font-body: "PT Serif", Georgia, serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--rail: 56px;--topbar: 48px;--tabbar: 38px;--statusbar: 26px;--nav-w: 264px;--dock-w: 320px;--nav-open: 1;--dock-open: 1;--z-canvas: 0;--z-doc: 10;--z-canvasui: 20;--z-chrome: 30;--z-panel: 40;--z-popover: 50;--z-scrim: 60;--z-modal: 70;--z-toast: 80;--r-sm: 4px;--r-md: 7px;--r-lg: 11px;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--sh-1: 0 1px 2px rgba(31, 27, 24, .05);--sh-2: 0 4px 14px rgba(31, 27, 24, .08);--sh-3: 0 18px 48px rgba(31, 27, 24, .16);--dur: .15s;--ease: cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}html,body,#root{height:100%}body{font-family:var(--font-body);color:var(--text-body);background:var(--svetha);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--r-sm)}.mono{font-family:var(--font-mono)}.muted{color:var(--text-muted)}.subtle{color:var(--text-subtle)}.btn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:var(--r-md);border:1px solid var(--border-default);background:var(--surface);color:var(--text-strong);font-family:var(--font-mono);font-size:12px;letter-spacing:.02em;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease);white-space:nowrap}.btn:hover{background:var(--sunken)}.btn.primary{background:var(--harita);border-color:var(--harita);color:#fff}.btn.primary:hover{background:var(--harita-deep)}.btn.gold{background:var(--pitha);border-color:var(--pitha-deep);color:var(--krshna);font-weight:600}.btn.gold:hover{background:var(--pitha-deep);color:#fff}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-muted)}.btn.ghost:hover{background:var(--border-subtle);color:var(--text-strong)}.btn.danger{border-color:var(--raktha);color:var(--raktha)}.btn.danger:hover{background:var(--raktha-wash)}.btn.sm{height:24px;padding:0 8px;font-size:11px}.btn.icon{width:30px;padding:0;justify-content:center}.btn.sm.icon{width:24px}.btn.icon svg,.omni>svg,.status-item>svg,.oauth>svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.btn[disabled]{opacity:.45;pointer-events:none}.chip{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 8px;border-radius:999px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;background:var(--border-subtle);color:var(--text-muted)}.chip.ok{background:var(--harita-wash);color:var(--harita-deep)}.chip.warn{background:var(--pitha-wash);color:var(--pitha-deep)}.chip.err{background:var(--raktha-wash);color:var(--raktha)}.chip.info{background:var(--indigo-wash);color:var(--indigo)}.dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:var(--s4)}.field>label{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-subtle)}.field input,.field select,.field textarea{height:34px;padding:0 10px;border:1px solid var(--border-default);border-radius:var(--r-md);background:var(--surface);font-size:13.5px;width:100%}.field textarea{height:auto;padding:8px 10px;resize:vertical;min-height:72px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--harita);outline:none;box-shadow:0 0 0 3px var(--harita-wash)}.field .hint{font-size:11.5px;color:var(--text-subtle)}.eyebrow{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-subtle)}.card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--s4);box-shadow:var(--sh-1)}.rule{height:1px;background:var(--border-subtle);margin:var(--s4) 0}.shell{position:fixed;inset:0;display:grid;grid-template-columns:var(--rail) calc(var(--nav-w) * var(--nav-open)) minmax(0,1fr) calc(var(--dock-w) * var(--dock-open));grid-template-rows:var(--topbar) var(--tabbar) minmax(0,1fr) var( --statusbar );grid-template-areas:"rail topbar topbar topbar" "rail nav    tabbar dock" "rail nav    stage  dock" "rail status status status";background:var(--svetha);transition:grid-template-columns var(--dur) var(--ease)}.screen[hidden]{display:none!important}.rail{grid-area:rail;z-index:var(--z-chrome);display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--s3) 0;background:var(--paper);border-right:1px solid var(--border-subtle)}.rail-logo{width:32px;height:32px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--harita);color:#fff;font-family:var(--font-mono);font-weight:600;margin-bottom:var(--s3)}.rail-btn{position:relative;width:38px;height:38px;border-radius:var(--r-md);display:grid;place-items:center;color:var(--text-muted);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.rail-btn:hover{background:var(--border-subtle);color:var(--text-strong)}.rail-btn.active{background:var(--harita-wash);color:var(--harita-deep)}.rail-btn.active:before{content:"";position:absolute;left:-12px;top:9px;bottom:9px;width:3px;border-radius:0 2px 2px 0;background:var(--harita)}.rail-btn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.rail-btn .tip{position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);z-index:var(--z-popover);padding:4px 8px;border-radius:var(--r-sm);background:var(--krshna);color:#fff;font-family:var(--font-mono);font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease)}.rail-btn:hover .tip{opacity:1}.rail-spacer{flex:1}.rail-avatar{width:30px;height:30px;border-radius:50%;background:var(--indigo);color:#fff;display:grid;place-items:center;font-family:var(--font-mono);font-size:12px;margin-top:var(--s2)}.rail-badge{position:absolute;top:5px;right:5px;min-width:15px;height:15px;padding:0 4px;border-radius:999px;background:var(--raktha);color:#fff;font-family:var(--font-mono);font-size:9px;display:grid;place-items:center;border:2px solid var(--paper)}.topbar{grid-area:topbar;z-index:var(--z-chrome);display:flex;align-items:center;gap:var(--s3);padding:0 var(--s4) 0 var(--s3);background:var(--paper);border-bottom:1px solid var(--border-subtle)}.crumbs{display:flex;align-items:center;gap:2px;min-width:0}.crumb{display:flex;align-items:center;gap:6px;height:28px;padding:0 9px;border-radius:var(--r-md);font-family:var(--font-mono);font-size:12px;color:var(--text-strong);transition:background var(--dur) var(--ease);max-width:200px}.crumb:hover{background:var(--border-subtle)}.crumb .caret{color:var(--text-subtle);width:12px;height:12px;stroke-width:1.6}.crumb .kind{color:var(--text-subtle);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.crumb-sep{color:var(--border-strong);font-size:13px;opacity:.55}.topbar-spacer{flex:1}.omni{display:flex;align-items:center;gap:8px;width:min(420px,34vw);height:30px;padding:0 10px;border:1px solid var(--border-default);border-radius:var(--r-md);background:var(--svetha);color:var(--text-subtle);font-family:var(--font-mono);font-size:12px;transition:border-color var(--dur) var(--ease)}.omni:hover{border-color:var(--harita);color:var(--text-muted)}.omni kbd{margin-left:auto;padding:1px 5px;border:1px solid var(--border-default);border-radius:3px;font-size:10px;background:var(--paper)}.nav{grid-area:nav;z-index:var(--z-panel);overflow:hidden auto;background:var(--paper);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column}.shell.nav-closed{--nav-open: 0}.shell.nav-closed .nav{border-right:none}.nav-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);padding:var(--s3) var(--s3) var(--s2);position:sticky;top:0;background:var(--paper);z-index:1}.nav-head h2{font-size:14px;font-weight:700;color:var(--text-strong)}.nav-section{padding:0 var(--s2) var(--s3)}.nav-section>.eyebrow{padding:var(--s2) var(--s2) var(--s1);display:block}.nav-item{display:flex;align-items:center;gap:var(--s2);width:100%;height:30px;padding:0 var(--s2);border-radius:var(--r-md);color:var(--text-body);font-size:13px;text-align:left;transition:background var(--dur) var(--ease);position:relative}.nav-item:hover{background:var(--border-subtle)}.nav-item.active{background:var(--harita-wash);color:var(--harita-deep);font-weight:700}.nav-item.active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:0 2px 2px 0;background:var(--harita)}.nav-item .meta{margin-left:auto;font-family:var(--font-mono);font-size:10.5px;color:var(--text-subtle)}.nav-item svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;flex:none}.tree-child{padding-left:26px;font-size:12.5px}.nav-foot{margin-top:auto;padding:var(--s3);border-top:1px solid var(--border-subtle)}.tabbar{grid-area:tabbar;z-index:var(--z-chrome);display:flex;align-items:stretch;gap:1px;padding:0 var(--s2);background:var(--svetha);border-bottom:1px solid var(--border-subtle);overflow-x:auto;scrollbar-width:thin}.tab{display:flex;align-items:center;gap:6px;padding:0 4px 0 10px;border-radius:var(--r-md) var(--r-md) 0 0;color:var(--text-muted);font-family:var(--font-mono);font-size:11.5px;white-space:nowrap;border-bottom:2px solid transparent;transition:background var(--dur) var(--ease)}.tab:hover{background:var(--border-subtle)}.tab.active{background:var(--paper);color:var(--harita-deep);border-bottom-color:var(--harita)}.tab.pinned{padding-right:10px}.tab svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6}.tab-x{width:16px;height:16px;border-radius:3px;display:grid;place-items:center;font-size:11px;color:var(--text-subtle);opacity:0}.tab-x svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}.tab:hover .tab-x,.tab.active .tab-x{opacity:1}.tab-x:hover{background:var(--border-default);color:var(--text-strong)}.tab .dirty{width:6px;height:6px;border-radius:50%;background:var(--pitha)}.stage{grid-area:stage;position:relative;overflow:hidden;background:var(--paper)}.doc{position:absolute;inset:0;z-index:var(--z-doc);overflow:auto;background:var(--paper)}.doc[hidden]{display:none!important}.canvas{position:absolute;inset:0;z-index:var(--z-canvas);background:radial-gradient(ellipse 80% 60% at 50% 40%,rgba(253,252,248,.95) 0%,transparent 65%),radial-gradient(120% 100% at 78% 10%,rgba(60,74,107,.1) 0%,transparent 70%),var(--svetha)}.canvas-grid{position:absolute;inset:0;opacity:.5;background-image:radial-gradient(circle,rgba(31,27,24,.1) 1px,transparent 1px);background-size:26px 26px}.canvas-ui{position:absolute;z-index:var(--z-canvasui);display:flex;gap:var(--s2)}.canvas-ui.tl{top:var(--s3);left:var(--s3)}.canvas-ui.br{bottom:var(--s3);right:var(--s3)}.toolgroup{display:flex;align-items:center;gap:2px;padding:3px;border-radius:var(--r-lg);background:color-mix(in srgb,var(--paper) 92%,transparent);border:1px solid var(--border-subtle);box-shadow:var(--sh-2);backdrop-filter:blur(8px)}.toolbtn{width:28px;height:28px;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--text-muted);font-family:var(--font-mono);font-size:12px}.toolbtn:hover{background:var(--border-subtle);color:var(--text-strong)}.toolbtn.active{background:var(--harita-wash);color:var(--harita-deep)}.toolbtn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}.toolbtn.wide{width:auto;padding:0 9px;gap:5px;font-size:11px;letter-spacing:.02em}.ds-head .seg button>svg,.ds-head>.btn>svg{width:15px;height:15px;vertical-align:-3px}#graphLayer{position:absolute;inset:0}#graphLayer[hidden]{display:none!important}.listview{position:absolute;inset:52px 0 0;z-index:var(--z-doc);display:flex;flex-direction:column;background:var(--paper)}.listview[hidden]{display:none!important}.lv-head{display:flex;align-items:center;gap:var(--s3);height:40px;padding:0 var(--s4);border-bottom:1px solid var(--border-subtle);background:var(--paper);flex:none}.lv-spacer{flex:1}.lv-seg{border:none;padding:0;gap:1px}.lv-seg button{padding:5px 9px;font-size:11px}.lv-check{display:flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:11px;color:var(--text-muted);cursor:pointer}.lv-body{flex:1;overflow:auto;padding:var(--s2) 0 var(--s5)}.lv-group{display:flex;align-items:center;gap:var(--s2);padding:var(--s4) var(--s4) 6px;position:sticky;top:0;background:var(--paper);z-index:1;max-width:1020px}.lv-group .eyebrow{letter-spacing:.12em}.lv-group .n{font-family:var(--font-mono);font-size:10px;color:var(--text-subtle);background:var(--sunken);padding:1px 6px;border-radius:999px}.lv-group .line{flex:1;height:1px;background:var(--border-subtle)}.lv-row{display:grid;grid-template-columns:18px 20px minmax(160px,1fr) 92px 92px 96px 64px;align-items:center;gap:var(--s2);padding:0 var(--s4);height:32px;cursor:pointer;border-left:3px solid transparent;max-width:1020px}.lv-row:hover{background:var(--sunken)}.lv-row.sel{background:var(--harita-wash);border-left-color:var(--harita)}.lv-row .tw{color:var(--text-subtle);font-size:9px;text-align:center;transition:transform var(--dur) var(--ease)}.lv-row.open .tw{transform:rotate(90deg)}.lv-row .gl{width:14px;height:14px;border-radius:50%;border:2px solid var(--harita);justify-self:center}.lv-row .gl.datastore,.lv-row .gl.queue{border-color:var(--indigo);border-radius:3px}.lv-row .gl.external{border-color:var(--border-strong);border-style:dashed}.lv-row .gl.ui{border-color:var(--pitha-deep);border-radius:3px}.lv-row .gl.job{border-color:var(--harita);border-radius:3px}.lv-row .nm{font-size:13px;color:var(--text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lv-row.sel .nm{font-weight:700;color:var(--harita-deep)}.lv-row .mt{font-family:var(--font-mono);font-size:10.5px;color:var(--text-subtle);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lv-row .deg{font-family:var(--font-mono);font-size:10.5px;color:var(--text-subtle);text-align:right}.lv-row .gr{justify-self:center}.lv-rels{padding:2px 0 8px 62px;max-width:1020px;background:color-mix(in srgb,var(--sunken) 45%,transparent)}.lv-rel{display:grid;grid-template-columns:16px 104px minmax(0,1fr);align-items:center;gap:var(--s2);height:24px;font-family:var(--font-mono);font-size:11px;color:var(--text-muted);cursor:pointer;padding-right:var(--s4)}.lv-rel:hover{color:var(--text-strong)}.lv-rel .dir{text-align:center;color:var(--harita)}.lv-rel .dir.in{color:var(--indigo)}.lv-rel .rt{color:var(--text-subtle)}.lv-rel .to{color:var(--text-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lv-empty{padding:6px 0 10px 62px;font-size:11.5px;color:var(--text-subtle);font-style:italic}.tbl{width:100%;max-width:1120px;border-collapse:collapse;font-size:12.5px}.tbl th{position:sticky;top:0;background:var(--paper);text-align:left;padding:8px var(--s3);font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-subtle);border-bottom:1px solid var(--border-default);white-space:nowrap;z-index:1}.tbl th:first-child{padding-left:var(--s4)}.tbl td{padding:7px var(--s3);border-bottom:1px solid var(--border-subtle);vertical-align:middle}.tbl td:first-child{padding-left:var(--s4)}.tbl tr{cursor:pointer}.tbl tbody tr:hover{background:var(--sunken)}.tbl tbody tr.sel{background:var(--harita-wash)}.tbl tbody tr.sel td:first-child{box-shadow:inset 3px 0 var(--harita)}.tbl .nm{color:var(--text-strong)}.tbl tr.sel .nm{font-weight:700;color:var(--harita-deep)}.tbl .mono-sm{font-family:var(--font-mono);font-size:11px;color:var(--text-subtle)}.tbl .num{text-align:right;font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.ds-head{display:flex;align-items:center;gap:var(--s2);height:44px;padding:0 var(--s4);min-width:0;border-bottom:1px solid var(--border-subtle);background:var(--paper);flex:none}.ds-mode{border:none;gap:2px;background:var(--sunken);border-radius:var(--r-md);padding:3px}.ds-mode button{padding:5px 12px;border-radius:var(--r-sm);border:none;font-size:11.5px;color:var(--text-muted)}.ds-mode button.active{background:var(--surface);color:var(--harita-deep);font-weight:600;box-shadow:var(--sh-1);border:none}.ds-ctl{display:flex;align-items:center;gap:var(--s2)}.ds-ctl[hidden]{display:none!important}.ds-head .chip{white-space:nowrap}.ds-ctl .seg{border:none;padding:0}.ds-ctl .seg button{padding:5px 9px;font-size:11px}.ds-canvas{position:absolute;inset:44px 0 0;overflow:hidden;background:radial-gradient(circle,rgba(31,27,24,.07) 1px,transparent 1px) 0 0 / 22px 22px,var(--svetha)}.ds-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.hd{position:absolute;transform:translate(-50%,-50%);padding:9px 15px;background:var(--surface);border:2px solid var(--krshna);border-radius:255px 15px 225px/15px 225px 15px 255px;font-family:Architects Daughter,cursive;font-size:14px;color:var(--krshna);white-space:nowrap;cursor:pointer;box-shadow:2px 3px #1f1b1812}.hd:nth-child(2n){border-radius:15px 225px 15px 255px/225px 15px 255px}.hd .bind{display:block;font-family:var(--font-mono);font-size:9px;letter-spacing:.06em;color:var(--harita-deep);margin-top:2px}.hd.ext{border-style:dashed;color:var(--text-muted);background:var(--sunken)}.hd.new{border-color:var(--harita);background:var(--harita-wash)}.hd.new .bind{color:var(--harita-deep)}.hd.unbound{border-color:var(--pitha-deep);border-style:dotted;background:var(--pitha-wash)}.hd.unbound .bind{color:var(--pitha-deep)}.hd.sel{box-shadow:0 0 0 4px var(--pitha-wash),2px 3px #1f1b1812}.hd-group{position:absolute;border:2px dashed var(--indigo);border-radius:12px;opacity:.45;pointer-events:none}.hd-group span{position:absolute;top:-9px;left:12px;background:var(--svetha);padding:0 6px;font-family:Architects Daughter,cursive;font-size:12px;color:var(--indigo)}.ds-note{position:absolute;left:var(--s4);bottom:var(--s4);display:flex;gap:var(--s2);align-items:center;font-family:var(--font-mono);font-size:10.5px;color:var(--text-subtle);background:color-mix(in srgb,var(--paper) 88%,transparent);padding:6px 10px;border-radius:var(--r-md);border:1px solid var(--border-subtle)}.uml{border:1px solid var(--border-subtle);border-radius:var(--r-md);overflow:hidden;background:var(--svetha);margin-bottom:var(--s3)}.uml-canvas{position:relative;height:184px;background:radial-gradient(circle,rgba(31,27,24,.06) 1px,transparent 1px) 0 0 / 20px 20px}.uml-n{position:absolute;transform:translate(-50%,-50%);padding:5px 11px;border-radius:var(--r-md);background:var(--surface);border:1.5px solid var(--border-strong);font-family:var(--font-mono);font-size:10.5px;color:var(--text-body);white-space:nowrap}.uml-n.add{border-color:var(--harita);background:color-mix(in srgb,var(--harita-wash) 100%,var(--surface));color:var(--harita-deep);font-weight:600}.uml-n.del{border-color:var(--raktha);background:color-mix(in srgb,var(--raktha-wash) 100%,var(--surface));color:var(--raktha);border-style:dashed;text-decoration:line-through;opacity:.75}.uml-n.chg{border-color:var(--pitha-deep);background:color-mix(in srgb,var(--pitha-wash) 100%,var(--surface));color:var(--pitha-deep)}.uml-legend{display:flex;gap:var(--s3);padding:7px var(--s3);border-top:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:10px;color:var(--text-subtle);background:var(--paper);flex-wrap:wrap;align-items:center}.uml-legend b{font-weight:400}.uml-key{display:inline-flex;align-items:center;gap:4px}.uml-key i{width:9px;height:9px;border-radius:2px;border:1.5px solid}.uml-key.add i{border-color:var(--harita);background:var(--harita-wash)}.uml-key.del i{border-color:var(--raktha);background:var(--raktha-wash);border-style:dashed}.uml-key.chg i{border-color:var(--pitha-deep);background:var(--pitha-wash)}.uml-files{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);margin-bottom:6px;display:flex;flex-direction:column;gap:2px}.uml-files span b{color:var(--harita-deep);font-weight:600}details.uml-src{margin-top:6px}details.uml-src summary{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);cursor:pointer;padding:4px 0}details.uml-src summary:hover{color:var(--text-strong)}.gnode{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer}.gnode .bubble{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:2px solid var(--harita);box-shadow:var(--sh-2);font-family:var(--font-mono);font-size:11px;color:var(--harita-deep)}.gnode.sel .bubble{border-color:var(--pitha);box-shadow:0 0 0 5px var(--pitha-wash),var(--sh-2)}.gnode.svc .bubble{border-color:var(--indigo);color:var(--indigo)}.gnode.ext .bubble{border-color:var(--border-strong);color:var(--text-muted);border-style:dashed}.gnode .lbl{font-family:var(--font-mono);font-size:10.5px;color:var(--text-muted);background:color-mix(in srgb,var(--paper) 85%,transparent);padding:1px 5px;border-radius:3px}.gedge{position:absolute;height:1.5px;background:var(--border-strong);opacity:.4;transform-origin:0 50%}.dock{grid-area:dock;z-index:var(--z-panel);background:var(--paper);border-left:1px solid var(--border-subtle);display:flex;flex-direction:column;overflow:hidden}.shell.dock-closed{--dock-open: 0}.shell.dock-closed .dock{border-left:none}.dock-head{display:flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);border-bottom:1px solid var(--border-subtle)}.dock-head h3{font-size:13px;font-weight:700;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seg{display:flex;gap:1px;padding:0 var(--s3) 0;border-bottom:1px solid var(--border-subtle)}.seg button{padding:7px 10px;font-family:var(--font-mono);font-size:11px;color:var(--text-muted);border-bottom:2px solid transparent;transition:color var(--dur) var(--ease)}.seg button:hover{color:var(--text-strong)}.seg button.active{color:var(--harita-deep);border-bottom-color:var(--harita);font-weight:600}.dock-body{flex:1;overflow:auto;padding:var(--s3)}.kv{display:grid;grid-template-columns:82px 1fr;gap:6px var(--s2);font-size:12.5px;margin-bottom:var(--s3)}.kv dt{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle);padding-top:2px}.kv dd{color:var(--text-body);word-break:break-word}.status{grid-area:status;z-index:var(--z-chrome);display:flex;align-items:center;gap:var(--s3);padding:0 var(--s3);background:var(--paper);border-top:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.status-item{display:flex;align-items:center;gap:5px;height:100%;padding:0 6px;border-radius:var(--r-sm)}.status-item:hover{background:var(--border-subtle)}.status-spacer{flex:1}.pulse{width:6px;height:6px;border-radius:50%;background:var(--harita);animation:pulse 1.6s var(--ease) infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.75)}}.scrim{position:fixed;inset:0;z-index:var(--z-scrim);background:var(--scrim);backdrop-filter:blur(2px);animation:fade var(--dur) var(--ease)}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{position:fixed;z-index:var(--z-modal);left:50%;transform:translate(-50%);background:var(--surface);border:1px solid var(--border-default);border-radius:var(--r-lg);box-shadow:var(--sh-3);animation:rise var(--dur) var(--ease)}@keyframes rise{0%{opacity:0;transform:translate(-50%) translateY(8px)}}.palette{top:14vh;width:min(620px,92vw);overflow:hidden}.palette-input{display:flex;align-items:center;gap:var(--s2);padding:var(--s3) var(--s4);border-bottom:1px solid var(--border-subtle)}.palette-input>svg{width:16px;height:16px;flex:none}.palette-input input{border:none;outline:none;flex:1;font-family:var(--font-mono);font-size:15px;background:none;height:auto}.palette-list{max-height:46vh;overflow:auto;padding:var(--s2)}.palette-group{padding:var(--s2) var(--s2) var(--s1)}.palette-item{display:flex;align-items:center;gap:var(--s3);width:100%;padding:8px var(--s2);border-radius:var(--r-md);text-align:left;font-size:13px}.palette-item:hover,.palette-item.on{background:var(--harita-wash);color:var(--harita-deep)}.palette-item .k{margin-left:auto;font-family:var(--font-mono);font-size:10.5px;color:var(--text-subtle)}.palette-item .ic{width:24px;height:24px;border-radius:var(--r-sm);display:grid;place-items:center;background:var(--sunken);font-size:12px;flex:none}.palette-item .ic svg,.palette-item .k svg{width:16px;height:16px}.palette-foot{display:flex;gap:var(--s4);padding:var(--s2) var(--s4);border-top:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:10.5px;color:var(--text-subtle)}.dialog{top:50%;transform:translate(-50%,-50%);width:min(560px,92vw)}.dialog-head{padding:var(--s4) var(--s5) var(--s3);border-bottom:1px solid var(--border-subtle)}.dialog-body{padding:var(--s4) var(--s5);max-height:60vh;overflow:auto}.dialog-foot{display:flex;gap:var(--s2);justify-content:flex-end;padding:var(--s3) var(--s5);border-top:1px solid var(--border-subtle);background:var(--svetha);border-radius:0 0 var(--r-lg) var(--r-lg)}.toasts{position:fixed;right:var(--s4);bottom:calc(var(--statusbar) + var(--s3));z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--s2);width:320px}.toast{display:flex;gap:var(--s3);padding:var(--s3);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border-subtle);border-left:3px solid var(--harita);box-shadow:var(--sh-2);font-size:12.5px;animation:rise var(--dur) var(--ease)}.toast.warn{border-left-color:var(--pitha)}.toast.err{border-left-color:var(--raktha)}.diff{border:1px solid var(--border-subtle);border-radius:var(--r-md);overflow:hidden;font-family:var(--font-mono);font-size:11.5px;background:var(--svetha)}.diff-row{display:flex;gap:var(--s2);padding:3px var(--s3)}.diff-row.add{background:var(--harita-wash)}.diff-row.add:before{content:"+";color:var(--harita-deep)}.diff-row.del{background:var(--raktha-wash)}.diff-row.del:before{content:"−";color:var(--raktha)}.diff-row.ctx:before{content:" ";color:transparent}.auth{position:fixed;inset:0;display:grid;grid-template-columns:1fr 1fr;background:var(--svetha);overflow:auto}.auth-art{background:radial-gradient(120% 110% at 50% 120%,rgba(62,107,83,.24) 0%,transparent 72%),radial-gradient(100% 80% at 20% 0%,rgba(199,154,51,.2) 0%,transparent 66%),var(--krshna);color:#fff;padding:var(--s6);display:flex;flex-direction:column;justify-content:space-between}.auth-art h1{font-size:34px;line-height:1.2;font-weight:400;max-width:15ch;margin-bottom:var(--s4)}.auth-art .lede{font-size:15px;opacity:.8;max-width:38ch}.auth-form{display:grid;place-items:center;padding:var(--s6)}.auth-form>div{width:min(360px,100%)}.steps{display:flex;gap:var(--s2);margin-bottom:var(--s5)}.step{flex:1;height:3px;border-radius:2px;background:var(--border-default)}.step.done{background:var(--harita)}.step.on{background:var(--pitha)}.oauth{display:flex;align-items:center;justify-content:center;gap:var(--s2);width:100%;height:38px;border:1px solid var(--border-default);border-radius:var(--r-md);background:var(--surface);font-size:13px;margin-bottom:var(--s2)}.oauth:hover{background:var(--sunken)}.pick{display:flex;align-items:center;gap:var(--s3);width:100%;padding:var(--s3);text-align:left;border:1px solid var(--border-default);border-radius:var(--r-md);background:var(--surface);margin-bottom:var(--s2)}.pick:hover{border-color:var(--harita);background:var(--harita-wash)}.pick.on{border-color:var(--harita);background:var(--harita-wash);box-shadow:0 0 0 3px var(--harita-wash)}.pick .ic{width:32px;height:32px;border-radius:var(--r-md);background:var(--sunken);display:grid;place-items:center;flex:none}.pick strong{display:block;font-size:13.5px;color:var(--text-strong)}.pick small{color:var(--text-muted);font-size:11.5px}.product-view{display:flex;min-height:0;flex-direction:column;gap:12px;padding:18px}.product-view-header{display:flex;flex-wrap:wrap;gap:16px;align-items:center;color:var(--text-muted);font-family:var(--font-mono);font-size:11px}.product-view-graph{position:relative;min-height:440px;overflow:hidden;border:1px solid var(--border-default);background:var(--paper)}.product-view-svg,.product-view-nodes{position:absolute;inset:0;width:100%;height:100%}.product-view-svg{z-index:0;overflow:visible;pointer-events:none}.product-view-edge{fill:none;stroke-width:.8}.product-view-edge.soft{stroke-dasharray:4 3}.product-view-edge.unknown{stroke:#52627a;stroke-dasharray:2 2}.product-view-nodes{z-index:1;pointer-events:none}.product-view-nodes button{position:absolute;min-width:110px;transform:translate(-50%,-50%);pointer-events:auto;border:1px solid var(--border-strong);border-radius:6px;padding:8px 10px;background:var(--paper);color:var(--text-strong);box-shadow:var(--sh-1);font-size:12px}.product-view-nodes button[aria-pressed=true]{border-color:var(--harita);outline:2px solid color-mix(in srgb,var(--harita) 25%,transparent)}.product-view-relation text{fill:var(--text-muted);font-family:var(--font-mono);font-size:2.5px;text-anchor:middle}.product-view-tabs{display:flex;gap:4px;padding:8px 18px 0}.product-view-tabs button[aria-selected=true]{background:var(--harita);color:#fff}.product-view-tree,.product-view-table{padding:18px}.product-view-tree [role=treeitem]{cursor:pointer;padding:8px}.product-view-tree [role=treeitem]:focus-visible,.product-view-table tr:focus-visible{outline:2px solid var(--harita);outline-offset:-2px}.canonical-view-unavailable,[data-testid=canonical-view-unavailable]{margin:8px 18px;color:var(--text-muted);font-family:var(--font-mono);font-size:11px}@media(max-width:1100px){:root{--dock-w: 280px;--nav-w: 230px}}@media(max-width:860px){.shell{grid-template-columns:var(--rail) 0 minmax(0,1fr) 0}.nav,.dock{position:fixed;top:calc(var(--topbar));bottom:var(--statusbar);width:290px;box-shadow:var(--sh-3);z-index:var(--z-panel)}.nav{left:var(--rail)}.dock{right:0}.shell.nav-closed .nav,.shell.dock-closed .dock{display:none}.auth{grid-template-columns:1fr}.auth-art{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
