:root{--ink: #101319;--ink-2: #1A1F28;--paper: #F7F7F5;--surface: #FFFFFF;--line: #E2E3DF;--line-strong: #CDCFC9;--text: #171A21;--text-2: #5E6470;--text-3: #8A909C;--flux: #1B44E8;--flux-soft: #EBEEFE;--cert: #00845C;--cert-soft: #E4F3EE;--amber: #B87503;--amber-soft: #FBF0DC;--red: #C24A4A;--red-soft: #F6E7E7;--r: 10px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 18px;--sp-6: 26px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--paper);color:var(--text);font-family:Inter Tight,system-ui,sans-serif;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}.mono{font-family:IBM Plex Mono,ui-monospace,monospace}button{font:inherit}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--flux);outline-offset:2px;border-radius:4px}:focus:not(:focus-visible){outline:none}.frame{height:100vh;display:flex;flex-direction:column}.topbar{height:48px;flex:0 0 48px;background:var(--ink);display:flex;align-items:center;gap:var(--sp-4);padding:0 var(--sp-3);color:#fff}.brand{display:flex;align-items:center;gap:var(--sp-2);font-weight:600;letter-spacing:-.02em}.brand-logo{height:20px;width:auto;display:block}.omni{flex:1;max-width:460px;height:30px;border-radius:7px;background:#22262f;border:1px solid #2E333D;color:#c7cbd3;display:flex;align-items:center;padding:0 10px;gap:8px;font:inherit;font-size:12.5px}.omni::placeholder{color:#9aa0ac}.me{margin-left:auto;width:26px;height:26px;border-radius:50%;background:#3a414d;color:#fff;font-size:11px;font-weight:600;display:grid;place-items:center}.body{flex:1;display:flex;min-height:0}.rail{width:68px;flex:0 0 68px;background:var(--ink-2);display:flex;flex-direction:column;align-items:center;padding:8px 0;gap:2px}.rail button{width:56px;padding:7px 0 5px;border:0;background:none;color:#8a909c;border-radius:8px;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;font-size:10px}.rail button svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.rail button:hover{color:#d6d9de;background:#242932}.rail button[aria-pressed=true]{color:#fff;background:#2e3540;box-shadow:inset 2px 0 0 var(--flux)}.list{width:274px;flex:0 0 274px;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.list-head{padding:14px 14px 10px;border-bottom:1px solid var(--line)}.list-head h2{font-size:15px;font-weight:600;letter-spacing:-.02em}.list-head p{font-size:11.5px;color:var(--text-3);margin-top:2px}.newws{margin-top:10px;width:100%;height:30px;border:1px dashed var(--line-strong);background:none;border-radius:7px;color:var(--text-2);font-size:12.5px;font-weight:500;cursor:pointer}.newws:hover{border-color:var(--flux);color:var(--flux);background:var(--flux-soft)}.scroll{overflow-y:auto;padding:6px 8px 12px;flex:1}.grp{font-size:10px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--text-3);padding:12px 6px 5px}.ws{width:100%;text-align:left;border:0;background:none;cursor:pointer;padding:7px 8px;border-radius:8px;display:flex;gap:9px;align-items:flex-start}.ws:hover{background:#f4f4f2}.ws[aria-pressed=true]{background:var(--flux-soft)}.ws[aria-pressed=true] .ws-name{color:var(--flux)}.sq{width:26px;height:26px;flex:0 0 26px;border-radius:7px;display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff;letter-spacing:-.02em;margin-top:1px}.ws-name{font-size:13.5px;font-weight:600;letter-spacing:-.01em;display:flex;align-items:center;gap:5px}.ws-sub{font-size:11.5px;color:var(--text-3);display:block}.st-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.st-dot.ready{background:var(--cert)}.st-dot.degraded{background:var(--amber)}.st-dot.error{background:var(--red)}.st-dot.pending,.st-dot.reconciling,.st-dot.disabled{background:var(--text-3)}.poolbar{padding:9px 14px;border-top:1px solid var(--line);font-size:11px;color:var(--text-2)}.poolbar b{color:var(--text)}.poolbar .track{height:5px;background:#ededea;border-radius:3px;margin:4px 0;overflow:hidden}.poolbar .fill{height:5px;border-radius:3px;background:var(--cert)}.poolbar.warn .fill{background:var(--amber)}.main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--paper)}.ws-head{background:var(--surface);border-bottom:1px solid var(--line);padding:12px 18px 0}.ws-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ws-title h1{font-size:17px;font-weight:600;letter-spacing:-.025em}.code{font-size:11px;color:var(--text-3);background:#f2f2f0;border:1px solid var(--line);border-radius:5px;padding:1px 6px}.faces{margin-left:auto;display:flex}.faces span{width:24px;height:24px;border-radius:50%;border:2px solid #fff;margin-left:-7px;font-size:9.5px;font-weight:600;display:grid;place-items:center;color:#fff}.compose{display:flex;gap:6px;margin:11px 0 0;padding-bottom:11px;overflow-x:auto}.res{border:1px solid var(--line);border-radius:8px;padding:6px 10px 6px 8px;background:#fcfcfb;display:flex;align-items:center;gap:7px;white-space:nowrap}.res .st{width:15px;height:15px;flex:0 0 15px;border-radius:50%;display:grid;place-items:center}.res .st svg{width:9px;height:9px;stroke-width:2.8;fill:none;stroke-linecap:round;stroke-linejoin:round}.res .k{font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);font-weight:600}.res .v{font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500}.res.ready{border-color:#bfe3d7}.res.ready .st{background:var(--cert)}.res.ready .st svg{stroke:#fff}.res.ready .v{color:var(--cert)}.res.degraded{border-color:#ead6a6;background:var(--amber-soft)}.res.degraded .st{background:var(--amber)}.res.degraded .v{color:var(--amber)}.res.error{border-color:var(--red);background:var(--red-soft)}.res.error .st{background:var(--red)}.res.error .v{color:var(--red)}.res.pending .st,.res.reconciling .st,.res.disabled .st{background:var(--text-3)}.res.pending .v,.res.reconciling .v,.res.disabled .v{color:var(--text-3)}.tabs{display:flex;gap:2px;border-top:1px solid var(--line);margin:0 -18px;padding:0 18px}.tabs button{border:0;background:none;font-size:13px;font-weight:500;color:var(--text-2);padding:9px 11px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button:hover{color:var(--text)}.tabs button[aria-pressed=true]{color:var(--flux);border-bottom-color:var(--flux);font-weight:600}.pane{flex:1;overflow-y:auto;padding:var(--sp-5)}.pane .state-line{margin-bottom:12px;font-size:12.5px}.pane .err{color:var(--red)}.linkbtn{display:inline-flex;align-items:center;gap:7px;background:var(--flux);color:#fff;border:1px solid var(--flux);border-radius:var(--r);padding:9px 14px;font-size:13px;font-weight:600;cursor:pointer}.linkbtn:hover{filter:brightness(1.06)}.hint{color:var(--text-3);font-size:12.5px;margin-top:8px}.meetframe{width:100%;height:68vh;border:1px solid var(--line);border-radius:var(--r)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;max-width:480px;margin:var(--sp-5);overflow:hidden}.panel-h{padding:11px 15px;border-bottom:1px solid var(--line);background:#fcfcfb;display:flex;align-items:center}.panel-h b{font-size:12.5px}.panel-b{padding:15px;display:grid;gap:10px}.panel-b input,.panel-b select{border:1px solid var(--line-strong);border-radius:7px;padding:8px 10px;font:inherit;font-size:13px}.panel-b label{font-size:13px}.primary{background:var(--flux);color:#fff;border:1px solid var(--flux);border-radius:var(--r);padding:9px;font-weight:600;cursor:pointer}.empty{flex:1;display:grid;place-items:center;color:var(--text-3);font-size:13.5px;padding:24px;text-align:center}.files{position:relative}.ftoolbar{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.crumb{flex:1;font-size:13px}.crumb a{color:var(--flux)}.ftoolbar button{border:1px solid var(--line-strong);background:#fff;border-radius:7px;padding:6px 12px;font-size:12px;cursor:pointer}.ferr{background:var(--red-soft);border:1px solid var(--red);color:var(--red);border-radius:8px;padding:9px 12px;font-size:13px;margin-bottom:12px}.fdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;background:#1b44e80f;border:2px dashed var(--flux);border-radius:12px;display:grid;place-items:center;color:var(--flux);font-weight:600}.ftable{width:100%;border-collapse:collapse;font-size:13px}.ftable th{text-align:left;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--line)}.ftable td{padding:8px;border-bottom:1px solid #F0F0EE;vertical-align:middle}.fname a{color:var(--text);font-weight:500}.fname a:hover{color:var(--flux)}.fact{text-align:right;white-space:nowrap}.fact button{border:0;background:none;cursor:pointer;font-size:14px;padding:2px 5px;border-radius:5px}.fact button:hover{background:#f0f0ee}.ficon{width:30px;height:30px;flex:0 0 30px;border-radius:7px;background:var(--flux-soft);display:grid;place-items:center;font-family:IBM Plex Mono,monospace;font-size:8.5px;font-weight:600;color:var(--flux);text-transform:uppercase}.fthumb{width:30px;height:30px;flex:0 0 30px;border-radius:6px;object-fit:cover;background:var(--line)}.fname{display:flex;align-items:center;gap:9px}.fname .fn{min-width:0;overflow:hidden;text-overflow:ellipsis}.ftable th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.ftable th.sortable:hover{color:var(--text)}.sortarrow{color:var(--flux);font-size:9px}.dropzone{border:1.5px dashed var(--line-strong);border-radius:8px;padding:10px;text-align:center;color:var(--text-3);font-size:12px;margin-bottom:12px;transition:border-color .1s,background .1s}.dropzone.over{border-color:var(--flux);background:var(--flux-soft);color:var(--flux)}.home{flex:1;overflow-y:auto;padding:22px}.home-wrap{max-width:900px;margin:0 auto}.home h1{font-size:22px;font-weight:600;letter-spacing:-.03em;margin-bottom:2px}.home .lede{color:var(--text-2);font-size:13.5px;margin-bottom:18px}.home h3{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin:22px 0 8px}.hcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.hcard{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:12px;cursor:pointer}.hcard:hover{border-color:var(--line-strong)}.hcard .h-top{display:flex;align-items:center;gap:9px;margin-bottom:8px}.hcard .h-name{font-size:14px;font-weight:600;letter-spacing:-.01em}.hcard .h-svcs{display:flex;gap:5px}.hpool{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:12px 14px;margin-bottom:4px}.hpool .track{height:6px;background:#ededea;border-radius:3px;margin:6px 0;overflow:hidden}.hpool .fill{height:6px;border-radius:3px;background:var(--cert)}.hpool.warn .fill{background:var(--amber)}.hlist{border:1px solid var(--line);background:var(--surface);border-radius:10px;overflow:hidden}.hrow{display:flex;align-items:center;gap:10px;padding:9px 12px;border-top:1px solid var(--line);cursor:pointer;font-size:13px}.hrow:first-child{border-top:0}.hrow:hover{background:var(--flux-soft)}.hrow .meta{margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--text-3);text-align:right}@media (prefers-color-scheme: dark){:root{--paper: #0B0E13;--ink: #12161D;--ink-2: #0F131A;--surface: #161C24;--line: #262D37;--line-strong: #38414D;--text: #E6E9ED;--text-2: #9AA2AE;--text-3: #6A7280;--flux: #5877FF;--flux-soft: #17203A;--cert: #35B57D;--cert-soft: #10241B;--amber: #D89B2E;--amber-soft: #2A2010;--red: #E37373;--red-soft: #2C1717}input,select,textarea{background:#12161d;color:var(--text);border-color:var(--line-strong)}.ws:hover,.hrow:hover{background:#1c2431}.code,.poolbar .track,.hpool .track{background:#232a34}.res{background:#1a212b}.res.ready{border-color:#1e4636}.res.degraded{border-color:#463916}.panel-h,.ftoolbar button{background:#12161d}.ftable td{border-bottom-color:#1e242e}.fact button:hover,.fthumb{background:#232a34}}@media (max-width: 900px){.rail{width:52px;flex:0 0 52px}.rail button{width:44px;font-size:0;gap:0;padding:9px 0}.list{width:220px;flex:0 0 220px}.omni,.faces{display:none}}@media (max-width: 640px){.list{display:none}.ws-title{gap:6px}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
