@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/archivo-vietnamese-wght-normal.3cb37nm8mowb2.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/archivo-latin-ext-wght-normal.3m-fabn93du09.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/archivo-latin-wght-normal.1_q0qa17ptz5n.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/ibm-plex-mono-cyrillic-ext-400-normal.09jq5v9-1wf71.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-ext-400-normal.2iaubq2jy0rx3.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/ibm-plex-mono-cyrillic-400-normal.0m1ahpdxrpokj.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-400-normal.2-z93d2j9-3s0.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/ibm-plex-mono-vietnamese-400-normal.3a7fs2yw914a9.woff2)format("woff2"),url(../media/ibm-plex-mono-vietnamese-400-normal.2kzc8ichkozg5.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/ibm-plex-mono-latin-ext-400-normal.1hjaitcyq2e2r.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-ext-400-normal.0nrwft7nlo5oa.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/ibm-plex-mono-latin-400-normal.3xdfs0-p_zi4c.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-400-normal.2lhng2ntocry9.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/ibm-plex-mono-cyrillic-ext-500-normal.28wp48yubenc3.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-ext-500-normal.41yczc5zdkwdh.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/ibm-plex-mono-cyrillic-500-normal.26ox_itp_alxp.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-500-normal.1eaan1mch682e.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/ibm-plex-mono-vietnamese-500-normal.0s1z3n-ysad7w.woff2)format("woff2"),url(../media/ibm-plex-mono-vietnamese-500-normal.2g79xp9gzp1kn.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/ibm-plex-mono-latin-ext-500-normal.1cuq9_67cn48n.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-ext-500-normal.1tdw_l2v4yhc_.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/ibm-plex-mono-latin-500-normal.11q3guvgd1r20.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-500-normal.1fgk-kmy-32_a.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(../media/ibm-plex-mono-cyrillic-ext-600-normal.0lqep3bw7v3wl.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-ext-600-normal.18owfse_hsbuz.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(../media/ibm-plex-mono-cyrillic-600-normal.0qipn60581k5b.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-600-normal.2so0eecqstp1p.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(../media/ibm-plex-mono-vietnamese-600-normal.1xowhcc_d3c84.woff2)format("woff2"),url(../media/ibm-plex-mono-vietnamese-600-normal.3o6zfpml9w8yy.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(../media/ibm-plex-mono-latin-ext-600-normal.1h4gkbs1bbtv3.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-ext-600-normal.2j6z_fq1740ug.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(../media/ibm-plex-mono-latin-600-normal.30e0eqd5fxn92.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-600-normal.0d95tbzh5g6jj.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--ink-0:#0a0c0f;--ink-1:#0f1216;--ink-2:#14181e;--ink-3:#1a2028;--line-0:#232a33;--line-1:#2e3742;--text-0:#eef2f6;--text-1:#aab4c0;--text-2:#6e7a88;--amber:#ffb454;--amber-soft:#ffb45424;--amber-line:#ffb45473;--ok:#7ee787;--ok-soft:#7ee7871f;--danger:#f97583;--danger-soft:#f975831f;--info:#79c0ff;--info-soft:#79c0ff1f;--hue-users:#79c0ff;--hue-groups:#d2a8ff;--hue-vaults:#ffb454;--hue-devices:#7ee787;--font-ui:"Archivo Variable", "Archivo", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;--radius-s:6px;--radius-m:10px;--radius-l:14px;--shadow-panel:0 1px 0 #ffffff08 inset, 0 0 0 1px var(--line-0);--shadow-pop:0 24px 60px #04080e99, 0 0 0 1px var(--line-1)}*{box-sizing:border-box}html,body{height:100%}body{background:radial-gradient(1100px 500px at 75% -10%, #ffb4540d, transparent 60%), radial-gradient(900px 600px at -10% 110%, #79c0ff0a, transparent 55%), var(--ink-0);color:var(--text-0);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.45}body:after{content:"";pointer-events:none;opacity:.05;z-index:999;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E");position:fixed;inset:0}button{font-family:inherit;font-size:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}button:disabled{cursor:not-allowed;opacity:.45}code,pre,time{font-family:var(--font-mono)}svg{flex-shrink:0}button svg,.detail-kind-icon svg,.topo-node-icon svg{width:15px;height:15px}::selection{background:var(--amber-soft);color:var(--amber)}:focus-visible{outline:2px solid var(--amber-line);outline-offset:1px;border-radius:var(--radius-s)}.shell{flex-direction:column;height:100vh;display:flex;overflow:hidden}.shell-body{flex:1;grid-template-columns:264px minmax(0,1fr) 312px;min-height:0;display:grid}.stage{border-inline:1px solid var(--line-0);background:var(--ink-1);flex-direction:column;min-width:0;display:flex}.topbar{background:var(--ink-1);border-bottom:1px solid var(--line-0);align-items:center;gap:20px;height:52px;padding:0 16px;display:flex}.brand{align-items:center;gap:10px;min-width:230px;display:flex}.brand-mark{border-radius:var(--radius-s);background:linear-gradient(160deg, var(--amber), #e08e2b);color:#1a1206;place-items:center;width:28px;height:28px;font-size:17px;font-weight:700;display:grid;box-shadow:0 0 18px #ffb45459}.brand-name{letter-spacing:.01em;font-size:15px;font-weight:650}.brand-name em{color:var(--amber);font-style:normal;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin-left:6px;font-size:12px;font-weight:500}.topbar-status{flex:1;justify-content:center;gap:8px;min-width:0;display:flex}.status-pill{border:1px solid var(--line-0);background:var(--ink-2);color:var(--text-1);border-radius:999px;align-items:center;gap:7px;max-width:280px;padding:5px 11px;font-size:12px;display:inline-flex}.status-pill svg{width:12px;height:12px;color:var(--text-2)}.status-pill-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-2);font-size:10px}.status-pill code{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.status-dot{background:var(--text-2);border-radius:50%;width:7px;height:7px}.status-pill-ok .status-dot{background:var(--ok);box-shadow:0 0 8px var(--ok)}.status-pill-warn .status-dot{background:var(--danger);box-shadow:0 0 8px var(--danger)}.topbar-refresh{justify-content:center;min-width:110px}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.accent-button,.ghost-button,.danger-button{border-radius:var(--radius-s);justify-content:center;align-items:center;gap:8px;height:34px;padding:0 14px;font-size:13px;font-weight:560;line-height:1;text-decoration:none;transition:background .14s,border-color .14s,transform .14s;display:inline-flex}.accent-button:active:not(:disabled),.ghost-button:active:not(:disabled),.danger-button:active:not(:disabled){transform:scale(.98)}.accent-button{background:var(--amber);color:#1a1206;box-shadow:0 0 0 1px #ffb45466,0 4px 18px #ffb4542e}.accent-button:hover:not(:disabled){background:#ffc375;transform:translateY(-1px)}.ghost-button{border:1px solid var(--line-1);background:var(--ink-2);color:var(--text-1)}.ghost-button:hover:not(:disabled){border-color:var(--amber-line);color:var(--text-0)}.danger-button{background:var(--danger-soft);color:var(--danger);border:1px solid #0000}.danger-button:hover:not(:disabled){border-color:#f9758380}.danger-armed{background:var(--danger);color:#1c0a0d;animation:1s ease-in-out infinite pulse-armed}@keyframes pulse-armed{50%{box-shadow:0 0 0 5px #f975832e}}.ghost-icon-button,.accent-icon-button{border-radius:var(--radius-s);place-items:center;width:32px;height:32px;transition:background .14s,color .14s,transform .14s;display:grid}.ghost-icon-button:active:not(:disabled),.accent-icon-button:active:not(:disabled){transform:scale(.94)}.ghost-icon-button{color:var(--text-2)}.ghost-icon-button:hover:not(:disabled){background:var(--ink-3);color:var(--text-0)}.accent-icon-button{background:var(--amber-soft);color:var(--amber);border:1px solid var(--amber-line)}.accent-icon-button:hover:not(:disabled){background:var(--amber);color:#1a1206}.link-button{color:var(--amber);align-items:center;gap:6px;font-size:12.5px;font-weight:550;display:inline-flex}.link-button:hover{text-underline-offset:3px;text-decoration:underline}.link-button svg{width:12px;height:12px}.doc-link{color:var(--text-2);align-items:center;gap:7px;min-width:0;margin-top:8px;font-size:11.5px;text-decoration:none;transition:color .14s;display:inline-flex}.doc-link svg{flex-shrink:0;width:12px;height:12px}.doc-link span:not(.external-mark){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.doc-link:hover{color:var(--amber)}.external-mark{font-family:var(--font-mono);opacity:.7;font-size:10px}.navigator{background:var(--ink-1);flex-direction:column;min-height:0;display:flex}.navigator-tabs{grid-template-columns:1fr 1fr;gap:6px;padding:12px 12px 8px;display:grid}.nav-tab{border-radius:var(--radius-s);color:var(--text-1);border:1px solid #0000;align-items:center;gap:7px;padding:8px 10px;font-size:12.5px;font-weight:540;transition:all .14s;display:flex}.nav-tab svg{width:13px;height:13px;color:var(--text-2)}.nav-tab strong{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text-2);margin-left:auto;font-size:11px;font-weight:500}.nav-tab:hover{background:var(--ink-2);color:var(--text-0)}.nav-tab-active{background:var(--ink-3);border-color:var(--line-1);color:var(--text-0)}.nav-tab-active svg,.nav-tab-active strong{color:var(--amber)}.navigator-toolbar{gap:8px;padding:4px 12px 10px;display:flex}.search-field{border-radius:var(--radius-s);border:1px solid var(--line-0);background:var(--ink-0);flex:1;align-items:center;gap:8px;min-width:0;height:32px;padding:0 10px;display:flex}.search-field svg{width:12px;height:12px;color:var(--text-2)}.search-field input{min-width:0;color:var(--text-0);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:12.5px}.search-field input::placeholder{color:var(--text-2)}.navigator-list{flex-direction:column;flex:1;gap:2px;padding:0 8px 12px;display:flex;overflow-y:auto}.navigator-row{text-align:left;border-radius:var(--radius-s);border-left:2px solid #0000;align-items:center;gap:8px;width:100%;padding:8px 10px;transition:background .12s;display:flex}.navigator-row:hover{background:var(--ink-2)}.navigator-row-active{background:var(--ink-3);border-left-color:var(--amber)}.navigator-row-copy{flex-direction:column;gap:1px;min-width:0;display:flex}.navigator-row-copy strong{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:560;overflow:hidden}.navigator-row-copy small{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.revoked-flag{font-style:normal;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--danger);background:var(--danger-soft);border-radius:999px;margin-left:auto;padding:2px 7px;font-size:10px}.navigator-empty{text-align:center;color:var(--text-2);flex-direction:column;align-items:center;gap:8px;padding:28px 14px;font-size:12.5px;display:flex}.topology-wrap{flex:1;min-height:0;display:flex;position:relative}.canvas-control{z-index:10;border-radius:var(--radius-s);border:1px solid var(--line-1);width:32px;height:32px;color:var(--text-1);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f1216d9;place-items:center;transition:color .14s,border-color .14s;display:grid;position:absolute;top:12px;right:14px}.canvas-control:hover{color:var(--amber);border-color:var(--amber-line)}.canvas-control svg{width:14px;height:14px}.topology{cursor:grab;background-image:radial-gradient(var(--line-0) 1px, transparent 1px);background-position:13px 13px;background-size:26px 26px;flex:1;min-width:0;min-height:0;position:relative;overflow:auto}.topology-panning{cursor:grabbing;-webkit-user-select:none;user-select:none}.shell-body-focus{grid-template-columns:1fr}.shell-body-focus .stage{border-inline:none}.topology-canvas{min-width:100%;margin:0 auto;position:relative}.topology-columns{height:44px;position:absolute;inset:0 0 auto}.topology-column-label{align-items:baseline;gap:8px;padding-left:2px;display:flex;position:absolute;top:10px}.topology-column-label span{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-1);font-size:11px;font-weight:600}.topology-column-label small{color:var(--text-2);font-size:10.5px}.topology-edges{pointer-events:none;position:absolute;left:0}.edge{fill:none;stroke-width:1.4px;stroke:var(--line-1);transition:stroke .2s,opacity .2s}.edge-owns{stroke:#7ee78761}.edge-member{stroke:#d2a8ff61}.edge-grant{stroke:#ffb4546b}.edge-dim{opacity:.16}.edge-lit{stroke-width:1.8px}.edge-lit.edge-owns{stroke:var(--hue-devices)}.edge-lit.edge-member{stroke:var(--hue-groups)}.edge-lit.edge-grant{stroke:var(--hue-vaults)}.edge-pulse{fill:none;stroke:var(--text-0);stroke-width:1.8px;stroke-dasharray:5 90;stroke-linecap:round;opacity:.85;animation:1.6s linear infinite edge-flow}@keyframes edge-flow{0%{stroke-dashoffset:95px}to{stroke-dashoffset:0}}.topo-node{text-align:left;border-radius:var(--radius-m);background:var(--ink-2);box-shadow:var(--shadow-panel);align-items:center;gap:10px;padding:0 12px;transition:transform .16s,box-shadow .16s,opacity .2s;animation:.32s ease-out backwards node-enter;display:flex;position:absolute}@keyframes node-enter{0%{opacity:0;transform:translateY(6px)scale(.97)}}.topo-node:hover{z-index:2;transform:translateY(-2px)}.topo-node-dim{opacity:.3}.topo-node-icon{border-radius:var(--radius-s);flex-shrink:0;place-items:center;width:30px;height:30px;display:grid}.topo-node-users .topo-node-icon{color:var(--hue-users);background:var(--info-soft)}.topo-node-groups .topo-node-icon{color:var(--hue-groups);background:#d2a8ff1f}.topo-node-vaults .topo-node-icon{color:var(--hue-vaults);background:var(--amber-soft)}.topo-node-devices .topo-node-icon{color:var(--hue-devices);background:var(--ok-soft)}.topo-node-copy{flex-direction:column;gap:0;min-width:0;display:flex}.topo-node-copy strong{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:580;overflow:hidden}.topo-node-copy small{font-family:var(--font-mono);color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.topo-node-selected{box-shadow:0 0 0 1.5px var(--amber), 0 8px 30px #ffb45433;z-index:3}.topo-node-revoked{border:1px dashed #f9758380}.topo-node-revoked .topo-node-icon{color:var(--danger);background:var(--danger-soft)}.topo-node-revoked .topo-node-copy small{color:var(--danger)}.topology-legend{border:1px solid var(--line-0);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f1216d9;border-radius:999px;gap:14px;width:fit-content;margin:0 0 10px 14px;padding:6px 12px;display:inline-flex;position:sticky;bottom:10px;left:14px}.legend-item{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);align-items:center;gap:6px;font-size:10px;display:inline-flex}.legend-item:before{content:"";border-radius:2px;width:14px;height:2px}.legend-owns:before{background:var(--hue-devices)}.legend-member:before{background:var(--hue-groups)}.legend-grant:before{background:var(--hue-vaults)}.topology-empty{cursor:default;place-items:center;padding:40px;display:grid}.empty-panel-hero{border-radius:var(--radius-l);background:linear-gradient(180deg, var(--ink-2), var(--ink-1));max-width:480px;box-shadow:var(--shadow-panel);flex-direction:column;gap:14px;padding:36px;animation:.42s ease-out backwards node-enter;display:flex}.empty-eyebrow{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--amber);font-size:11px}.empty-panel-hero h2{text-wrap:balance;letter-spacing:-.01em;margin:0;font-size:26px;font-weight:680;line-height:1.15}.empty-panel-hero h2 em{color:var(--text-2);font-style:normal}.empty-panel-hero p{color:var(--text-1);margin:0;font-size:13.5px}.empty-steps{counter-reset:step;flex-direction:column;gap:8px;margin:0;padding:0 0 0 2px;list-style:none;display:flex}.empty-steps li{counter-increment:step;color:var(--text-1);align-items:baseline;gap:10px;font-size:13px;display:flex}.empty-steps li:before{content:counter(step, decimal-leading-zero);font-family:var(--font-mono);color:var(--amber);font-size:11px}.empty-panel-hero .accent-button{align-self:flex-start;margin-top:6px}.empty-footnote{color:var(--text-2);font-size:11.5px}.console{border-top:1px solid var(--line-0);background:var(--ink-0);flex-direction:column;flex-shrink:0;height:236px;transition:height .2s;display:flex}.console-collapsed{height:38px}.console-header{height:38px;color:var(--text-1);flex-shrink:0;align-items:center;gap:14px;padding:0 14px;display:flex}.console-header:hover{color:var(--text-0)}.console-title{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:8px;font-size:11px;font-weight:600;display:inline-flex}.console-title svg{width:13px;height:13px;color:var(--amber)}.console-live-dot{background:var(--ok);border-radius:50%;width:6px;height:6px;animation:2.4s ease-in-out infinite blink}@keyframes blink{50%{opacity:.25}}.console-meta{text-align:left;font-variant-numeric:tabular-nums;color:var(--text-2);flex:1;font-size:11.5px}.console-stream{flex-direction:column;flex:1;gap:1px;padding:0 8px 10px;display:flex;overflow-y:auto}.console-empty{font-family:var(--font-mono);color:var(--text-2);margin:10px 8px;font-size:12px}.console-prompt{color:var(--amber);margin-right:8px}.console-row{border-radius:var(--radius-s)}.console-row-failed{background:var(--danger-soft)}.console-line{border-radius:var(--radius-s);text-align:left;grid-template-columns:72px 58px minmax(0,1.2fr) minmax(0,1fr) 44px;align-items:center;gap:12px;width:100%;padding:5px 8px;font-size:12px;display:grid}.console-line:hover{background:var(--ink-2)}.console-line time{color:var(--text-2);font-size:11px}.method{text-align:center;letter-spacing:.04em;border-radius:4px;padding:2px 0;font-size:10.5px;font-weight:600}.method-get{color:var(--info);background:var(--info-soft)}.method-post{color:var(--ok);background:var(--ok-soft)}.method-put{color:var(--amber);background:var(--amber-soft)}.method-delete{color:var(--danger);background:var(--danger-soft)}.method-local{color:var(--text-2);background:var(--ink-3)}.console-path{font-family:var(--font-mono);color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.console-action{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.status{text-align:right;font-size:11px}.status-ok{color:var(--ok)}.status-failed{color:var(--danger)}.console-detail{flex-direction:column;gap:10px;padding:6px 10px 12px;display:flex}.console-error-line{font-family:var(--font-mono);color:var(--danger);margin:0;font-size:12px}.console-json-pair{grid-template-columns:1fr 1fr;gap:10px;display:grid}.console-json{flex-direction:column;gap:4px;min-width:0;display:flex}.console-json span{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);font-size:10px}.console-json pre{border-radius:var(--radius-s);background:var(--ink-1);border:1px solid var(--line-0);color:var(--text-1);max-height:180px;margin:0;padding:10px;font-size:11px;line-height:1.5;overflow:auto}.detail-panel{background:var(--ink-1);flex-direction:column;min-height:0;display:flex;overflow-y:auto}.detail-placeholder{text-align:center;color:var(--text-2);flex-direction:column;align-items:center;gap:8px;margin:auto;padding:30px;display:flex}.detail-placeholder svg{width:26px;height:26px;color:var(--text-2)}.detail-placeholder h2{color:var(--text-1);margin:0;font-size:15px}.detail-placeholder p{max-width:220px;margin:0;font-size:12.5px}.detail-header{border-bottom:1px solid var(--line-0);flex-direction:column;gap:5px;padding:18px 16px 14px;display:flex;position:relative}.detail-header:before{content:"";width:3px;position:absolute;inset:0 auto 0 0}.detail-header-users:before{background:var(--hue-users)}.detail-header-groups:before{background:var(--hue-groups)}.detail-header-vaults:before{background:var(--hue-vaults)}.detail-header-devices:before{background:var(--hue-devices)}.detail-kind-icon{border-radius:var(--radius-s);background:var(--ink-3);place-items:center;width:32px;height:32px;margin-bottom:4px;display:grid}.detail-header-users .detail-kind-icon{color:var(--hue-users)}.detail-header-groups .detail-kind-icon{color:var(--hue-groups)}.detail-header-vaults .detail-kind-icon{color:var(--hue-vaults)}.detail-header-devices .detail-kind-icon{color:var(--hue-devices)}.detail-eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);font-size:10px}.detail-header h2{letter-spacing:-.01em;margin:0;font-size:18px;font-weight:660}.detail-header p{color:var(--text-1);margin:0;font-size:12.5px}.copy-chip{border:1px solid var(--line-0);background:var(--ink-0);border-radius:999px;align-self:flex-start;align-items:center;gap:8px;margin-top:4px;padding:3px 9px;transition:border-color .14s;display:inline-flex}.copy-chip:hover{border-color:var(--amber-line)}.copy-chip code{color:var(--text-1);font-size:10.5px}.copy-chip-state{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--amber);font-size:9.5px}.detail-body{flex-direction:column;flex:1;padding:6px 16px 16px;display:flex}.relation-section{border-bottom:1px solid var(--line-0);padding:12px 0}.relation-section:last-child{border-bottom:none}.relation-section h3{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-2);margin:0 0 8px;font-size:10px;font-weight:600}.relation-empty{color:var(--text-2);margin:0;font-size:12.5px}.relation-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.relation-row{align-items:center;gap:4px;display:flex}.relation-jump{text-align:left;border-radius:var(--radius-s);flex:1;align-items:center;gap:9px;min-width:0;padding:6px 8px;transition:background .12s;display:flex}.relation-jump:hover{background:var(--ink-2)}.relation-jump svg{width:13px;height:13px;color:var(--text-2)}.relation-jump span{flex-direction:column;min-width:0;display:flex}.relation-jump strong{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:550;overflow:hidden}.relation-jump small{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.fact-grid{grid-template-columns:auto 1fr;gap:6px 16px;margin:12px 0 0;padding-top:12px;display:grid}.fact-grid dt{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);align-self:baseline;font-size:10px}.fact-grid dd{color:var(--text-1);margin:0;font-size:12.5px}.token-line{align-items:baseline;gap:10px;margin:0;display:flex}.token-line code{color:var(--ok);background:var(--ok-soft);border-radius:var(--radius-s);padding:3px 9px;font-size:13px}.token-line span{color:var(--text-2);font-size:11.5px}.token-revoked code{color:var(--danger);background:var(--danger-soft);text-decoration:line-through}.verify-button{width:100%}.check-result{border-radius:var(--radius-s);flex-direction:column;gap:3px;margin:10px 0 0;padding:10px 12px;font-size:12.5px;animation:.24s ease-out backwards node-enter;display:flex}.check-result strong{font-weight:600}.check-result ul{color:var(--text-1);margin:6px 0 0;padding-left:16px}.check-ok{background:var(--ok-soft);color:var(--ok)}.check-ok span,.check-warn span{color:var(--text-1);font-size:11.5px}.check-warn{background:var(--amber-soft);color:var(--amber)}.check-error{background:var(--danger-soft);color:var(--danger)}.detail-actions{border-top:1px solid var(--line-0);background:var(--ink-1);flex-direction:column;gap:8px;padding:14px 16px 18px;display:flex;position:sticky;bottom:0}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#06080ab3;place-items:center;padding:24px;animation:.16s fade-in;display:grid;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.modal-panel{border-radius:var(--radius-l);background:var(--ink-2);width:min(440px,100%);box-shadow:var(--shadow-pop);animation:.22s cubic-bezier(.2,.9,.3,1.2) modal-enter}@keyframes modal-enter{0%{opacity:0;transform:translateY(10px)scale(.97)}}.modal-header{justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 20px 0;display:flex}.modal-header h2{letter-spacing:-.01em;margin:0;font-size:17px;font-weight:660}.modal-header p{color:var(--text-1);margin:5px 0 0;font-size:12.5px}.dialog-form{flex-direction:column;gap:14px;padding:18px 20px 20px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--text-1);align-items:baseline;gap:8px;font-size:12px;font-weight:580;display:flex}.field-optional{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-2);font-size:9.5px}.field input,.field select{border-radius:var(--radius-s);border:1px solid var(--line-1);background:var(--ink-0);height:36px;color:var(--text-0);padding:0 11px;font-family:inherit;font-size:13px;transition:border-color .14s,box-shadow .14s}.field input:focus,.field select:focus{border-color:var(--amber-line);box-shadow:0 0 0 3px var(--amber-soft);outline:none}.field input::placeholder{color:var(--text-2)}.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='m1 1 4 4 4-4' stroke='%236e7a88' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat}.field input[aria-invalid=true]{border-color:var(--danger)}.field-with-button{align-items:center;gap:6px;display:flex}.field-with-button input{flex:1;min-width:0}.field-hint{color:var(--text-2);margin:0;font-size:11.5px}.field-error{color:var(--danger);margin:0;font-size:11.5px}.dialog-advanced{border-radius:var(--radius-s);border:1px dashed var(--line-1);padding:10px 12px}.dialog-advanced summary{cursor:pointer;color:var(--text-2);-webkit-user-select:none;user-select:none;font-size:12px}.dialog-advanced[open] summary{color:var(--text-1);margin-bottom:10px}.dialog-footer{justify-content:flex-end;padding-top:2px;display:flex}.toast-stack{z-index:60;flex-direction:column;gap:8px;max-width:360px;display:flex;position:fixed;bottom:18px;right:18px}.toast{border-radius:var(--radius-m);background:var(--ink-2);box-shadow:var(--shadow-pop);border-left:3px solid var(--text-2);align-items:flex-start;gap:12px;padding:11px 13px;animation:.26s cubic-bezier(.2,.9,.3,1.15) toast-enter;display:flex}@keyframes toast-enter{0%{opacity:0;transform:translate(16px)}}.toast-ok{border-left-color:var(--ok)}.toast-error{border-left-color:var(--danger)}.toast-info{border-left-color:var(--info)}.toast-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.toast-copy strong{font-size:13px;font-weight:600}.toast-copy span{color:var(--text-1);overflow-wrap:anywhere;font-size:12px}.toast-dismiss{color:var(--text-2);border-radius:4px;flex-shrink:0;place-items:center;width:22px;height:22px;margin-left:auto;display:grid}.toast-dismiss:hover{color:var(--text-0);background:var(--ink-3)}.toast-dismiss svg{width:12px;height:12px}@media (max-width:1100px){.shell-body{grid-template-columns:224px minmax(0,1fr) 272px}.topbar-status .status-pill code{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.drive-view{background:var(--ink-1);flex-direction:column;flex:1;min-height:0;display:flex}.drive-bar{border-bottom:1px solid var(--line-0);flex-wrap:wrap;align-items:center;gap:14px;padding:10px 14px;display:flex}.drive-scope{flex:1;gap:10px;min-width:0;display:flex}.drive-scope-field{align-items:center;gap:8px;min-width:0;display:inline-flex}.drive-scope-field>span{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-2);white-space:nowrap;font-size:10px}.drive-scope-field select{border-radius:var(--radius-s);border:1px solid var(--line-1);background:var(--ink-0);max-width:220px;height:32px;color:var(--text-0);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='m1 1 4 4 4-4' stroke='%236e7a88' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding:0 28px 0 10px;font-family:inherit;font-size:12.5px}.drive-tools{align-items:center;gap:8px;display:flex}.drive-crumbs{border-bottom:1px solid var(--line-0);align-items:center;gap:4px;padding:10px 16px;display:flex;overflow-x:auto}.drive-crumbs>svg{width:13px;height:13px;color:var(--hue-vaults);margin-right:6px}.drive-crumb{align-items:center;gap:4px;display:inline-flex}.drive-crumb svg{width:11px;height:11px;color:var(--text-2)}.crumb{font-family:var(--font-mono);color:var(--text-1);white-space:nowrap;border-radius:4px;padding:2px 6px;font-size:12px}.crumb:hover{background:var(--ink-2);color:var(--text-0)}.crumb-current{color:var(--amber);font-weight:600}.drive-seq{color:var(--text-2);background:var(--ink-0);border:1px solid var(--line-0);white-space:nowrap;border-radius:999px;margin-left:auto;padding:2px 8px;font-size:10px}.drive-body{flex:1;min-height:0;overflow-y:auto}.drive-hint{font-family:var(--font-mono);color:var(--text-2);margin:24px 16px;font-size:12.5px}.drive-rows{flex-direction:column;gap:1px;margin:0;padding:8px 10px 16px;list-style:none;display:flex}.drive-row{border-radius:var(--radius-s);align-items:center;gap:12px;padding:4px 8px;animation:.2s ease-out backwards node-enter;display:flex}.drive-row:hover{background:var(--ink-2)}.drive-row-icon{flex-shrink:0;width:16px;height:16px}.drive-icon-folder{color:var(--hue-vaults)}.drive-icon-file{color:var(--text-1)}.drive-row-name{text-align:left;flex:1;align-items:baseline;gap:12px;min-width:0;padding:6px 0;display:flex}.drive-row-name strong{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:550;overflow:hidden}.drive-row-name small{font-family:var(--font-mono);color:var(--text-2);white-space:nowrap;font-size:10.5px}.drive-row-actions{opacity:0;gap:2px;transition:opacity .12s;display:inline-flex}.drive-row:hover .drive-row-actions,.drive-row:focus-within .drive-row-actions{opacity:1}.drive-delete-armed{color:var(--danger);background:var(--danger-soft);animation:1s ease-in-out infinite pulse-armed}.drive-inline-form{flex:1;min-width:0}.drive-inline-form input{border-radius:var(--radius-s);border:1px solid var(--amber-line);background:var(--ink-0);width:min(320px,100%);height:30px;color:var(--text-0);outline:none;padding:0 10px;font-family:inherit;font-size:13px}.drive-empty{border:1px dashed var(--line-1);border-radius:var(--radius-m);color:var(--text-2);text-align:center;margin:22px 8px;padding:18px;font-size:12.5px}.drive-denied,.drive-error{border-radius:var(--radius-l);text-align:center;flex-direction:column;align-items:center;gap:10px;max-width:420px;margin:40px auto;padding:26px;animation:.24s ease-out backwards node-enter;display:flex}.drive-denied{background:var(--danger-soft);border:1px dashed #f9758380}.drive-error{background:var(--ink-2);box-shadow:var(--shadow-panel)}.drive-denied svg,.drive-error svg{width:24px;height:24px;color:var(--danger)}.drive-denied h3,.drive-error h3{margin:0;font-size:16px;font-weight:650}.drive-denied h3{color:var(--danger)}.drive-denied p,.drive-error p{color:var(--text-1);margin:0;font-size:12.5px}.canvas-loading{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-2);margin:0;font-size:12px;animation:2s ease-in-out infinite blink}.drive-body{position:relative}.drive-drop-active{outline:2px dashed var(--amber-line);outline-offset:-8px;border-radius:var(--radius-m)}.drive-drop-hint{z-index:5;pointer-events:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:var(--amber);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;background:#0a0c0fd1;flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:12px;display:flex;position:absolute;inset:0}.drive-drop-hint svg{width:26px;height:26px;animation:1.2s ease-in-out infinite drop-bounce}@keyframes drop-bounce{50%{transform:translateY(-5px)}}.drive-root{padding:14px 16px 20px}.drive-root-note{color:var(--text-2);max-width:520px;margin:0 0 14px;font-size:12.5px}.drive-tree{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.drive-container{border-left:1px solid var(--line-0);padding:4px 0;animation:.22s ease-out backwards node-enter}.drive-container-row{align-items:baseline;gap:10px;padding:5px 10px;display:flex}.drive-container-row strong{font-family:var(--font-mono);color:var(--text-0);font-size:13px;font-weight:600}.drive-container-row small{color:var(--text-2);font-size:11px}.drive-container-row .drive-row-icon{align-self:center}.drive-container-empty{opacity:.45}.drive-container-empty .drive-container-row strong{color:var(--text-2)}.drive-tree-vaults{flex-direction:column;gap:1px;margin:0;padding:0 0 2px 26px;list-style:none;display:flex}.drive-tree-vault{border-radius:var(--radius-s);font-family:var(--font-mono);color:var(--text-1);align-items:center;gap:9px;padding:5px 10px;font-size:12.5px;transition:background .12s,color .12s;display:inline-flex}.drive-tree-vault:hover{background:var(--ink-2);color:var(--amber)}.drive-tree-vault svg{width:13px;height:13px;color:var(--hue-vaults)}.crumb-static{cursor:default;color:var(--text-2)}.drive-root-empty{max-width:420px;margin:30px auto}
