pinecall 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist/cli/config.d.ts.map +1 -1
  2. package/dist/cli/config.js +43 -12
  3. package/dist/cli/config.js.map +1 -1
  4. package/dist/cli/env.d.ts +22 -6
  5. package/dist/cli/env.d.ts.map +1 -1
  6. package/dist/cli/env.js +56 -14
  7. package/dist/cli/env.js.map +1 -1
  8. package/dist/cli/gateway.d.ts +12 -0
  9. package/dist/cli/gateway.d.ts.map +1 -0
  10. package/dist/cli/gateway.js +67 -0
  11. package/dist/cli/gateway.js.map +1 -0
  12. package/dist/cli/index.js +6 -6
  13. package/dist/cli/index.js.map +1 -1
  14. package/dist/cli/login.d.ts +1 -1
  15. package/dist/cli/login.d.ts.map +1 -1
  16. package/dist/cli/login.js +87 -10
  17. package/dist/cli/login.js.map +1 -1
  18. package/dist/cli/profiles.d.ts +57 -5
  19. package/dist/cli/profiles.d.ts.map +1 -1
  20. package/dist/cli/profiles.js +111 -9
  21. package/dist/cli/profiles.js.map +1 -1
  22. package/dist/cli/ui/console/assets/index-DhcpHPdk.js +102 -0
  23. package/dist/cli/ui/console/assets/index-iylvEP0_.css +1 -0
  24. package/dist/cli/ui/console/favicon.png +0 -0
  25. package/dist/cli/ui/console/index.html +4 -4
  26. package/dist/cli/ui/console/pinecall-logo.png +0 -0
  27. package/dist/cli/ui/console/pinecall-mark.png +0 -0
  28. package/dist/cli/world.d.ts.map +1 -1
  29. package/dist/cli/world.js +2 -1
  30. package/dist/cli/world.js.map +1 -1
  31. package/package.json +2 -2
  32. package/dist/cli/signup.d.ts +0 -25
  33. package/dist/cli/signup.d.ts.map +0 -1
  34. package/dist/cli/signup.js +0 -122
  35. package/dist/cli/signup.js.map +0 -1
  36. package/dist/cli/ui/admin/assets/index-BlHXSYVz.css +0 -1
  37. package/dist/cli/ui/admin/assets/index-BpdIOuyO.js +0 -58
  38. package/dist/cli/ui/admin/index.html +0 -20
  39. package/dist/cli/ui/browser.d.ts +0 -10
  40. package/dist/cli/ui/browser.d.ts.map +0 -1
  41. package/dist/cli/ui/browser.js +0 -30
  42. package/dist/cli/ui/browser.js.map +0 -1
  43. package/dist/cli/ui/console/assets/index-BUlGAwqn.css +0 -1
  44. package/dist/cli/ui/console/assets/index-D9StTnoH.js +0 -102
  45. package/dist/cli/ui/index.d.ts +0 -15
  46. package/dist/cli/ui/index.d.ts.map +0 -1
  47. package/dist/cli/ui/index.js +0 -117
  48. package/dist/cli/ui/index.js.map +0 -1
  49. package/dist/cli/ui/refused.d.ts +0 -8
  50. package/dist/cli/ui/refused.d.ts.map +0 -1
  51. package/dist/cli/ui/refused.js +0 -11
  52. package/dist/cli/ui/refused.js.map +0 -1
  53. package/dist/cli/ui/server.d.ts +0 -22
  54. package/dist/cli/ui/server.d.ts.map +0 -1
  55. package/dist/cli/ui/server.js +0 -211
  56. package/dist/cli/ui/server.js.map +0 -1
@@ -0,0 +1 @@
1
+ :root{--ink:#101014;--ink-2:#3c3a47;--ink-3:#6b6975;--ink-4:#8a8895;--ink-5:#9d9baa;--ink-6:#a3a1ad;--ink-7:#c0bdc9;--line:#eeedf2;--line-2:#f2f1f5;--line-3:#f7f6fa;--line-control:#e8e6ee;--line-field:#e4e2ea;--line-hover:#d6d3df;--line-hover-2:#cfccd8;--line-muted:#d8d4e4;--ground:#fff;--ground-side:#fbfafc;--ground-3:#f7f6fa;--ground-4:#f4f3f7;--ground-5:#f1f0f5;--ground-tint:#faf9ff;--accent:#5b3df5;--on-accent:#fff;--accent-hover:#4c2fe0;--accent-soft:#ede9fe;--accent-selected:#efeafe;--accent-2:#8b6bff;--accent-3:#c4b5fd;--accent-line:#cfc7fb;--accent-tint-line:#e6e0fd;--accent-ink:#6b5fd0;--accent-ring:0 0 0 3px #5b3df51f;--selection:#ddd6fe;--green:#15803d;--green-dot:#16a34a;--green-soft:#dcfce7;--amber:#a16207;--amber-dot:#f59e0b;--amber-soft:#fef3c7;--amber-tint:#fffdf5;--red:#b91c1c;--red-soft:#fee2e2;--red-line:#f3c8c8;--indigo:#4338ca;--indigo-soft:#e0e7ff;--pink:#be185d;--pink-soft:#fce7f3;--teal:#0f766e;--shadow-pop:0 16px 40px -16px #10101442, 0 2px 6px #1010140d;--shadow-card:0 1px 2px #1010140a;--shadow-raised:0 1px 2px #10101414;--shadow-talk:0 10px 24px -12px #5b3df5e6;--shadow-preview:0 8px 20px -14px #1010144d;--face:Inter, system-ui, -apple-system, sans-serif;--face-fixed:ui-monospace, SFMono-Regular, Menlo, monospace;--side:244px;--side-folded:62px;--head:54px}*{box-sizing:border-box}html,body,#root{margin:0;padding:0}body{background:var(--ground);color:var(--ink);font-family:var(--face);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11", "ss01";font-size:14px;line-height:normal}a{color:var(--ink);text-decoration:none}a:hover{color:var(--accent)}input,select,button,textarea{font-family:inherit;font-size:inherit}input:focus,textarea:focus{outline:none}::placeholder{color:var(--ink-6)}::selection{background:var(--selection)}.ui-fixed{font-family:var(--face-fixed)}.ui-page{flex-direction:column;flex:1;gap:18px;max-width:1180px;min-height:0;padding:26px 22px 48px;display:flex;overflow:auto}.ui-page>*{flex:none}.ui-page-tight{gap:16px}.ui-page-1060{max-width:1060px}.ui-page-900{max-width:900px}.ui-page-760{max-width:760px}.ui-head{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.ui-head-words{min-width:0}.ui-head-actions{gap:8px;margin-left:auto;display:flex}.ui-title{letter-spacing:-.6px;margin:0 0 4px;font-size:23px;font-weight:650}.ui-lede{color:var(--ink-3);margin:0;font-size:13.5px}.ui-lede-long{line-height:1.6}.ui-back{color:var(--ink-4);font-size:12.5px}.ui-card{border:1px solid var(--line);background:var(--ground);border-radius:12px;overflow:hidden}.ui-card-pad{padding:14px 16px}.ui-card-head{border-bottom:1px solid var(--line-2);align-items:center;gap:10px;padding:13px 16px;display:flex}.ui-card-title{font-size:13.5px;font-weight:600}.ui-card-meta{color:var(--ink-4);font-size:12px}.ui-card-action{color:var(--accent);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0;font-size:12.5px;font-weight:500}.ui-card-action:hover{color:var(--accent-hover)}.ui-card-foot{color:var(--ink-4);align-items:center;gap:10px;padding:11px 16px;font-size:12.5px;display:flex}.ui-card-body{padding:14px 16px}.ui-card-list{padding:6px 8px 10px}.ui-note{color:var(--ink-4);font-size:12.5px;line-height:1.6}.ui-empty{color:var(--ink-4);padding:18px 16px;font-size:13px;line-height:1.6}.ui-refused{color:var(--red);font-size:12.5px;line-height:1.55}.ui-row{border-bottom:1px solid var(--line-3);color:var(--ink);align-items:center;gap:12px;padding:13px 16px;display:flex}.ui-row-link{cursor:pointer}.ui-row-link:hover{background:var(--ground-side);color:var(--ink)}.ui-row-main{flex:1;min-width:0}.ui-row-line{align-items:center;gap:7px;display:flex}.ui-row-name{font-size:13.5px;font-weight:550}.ui-row-sub{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.ui-row-end{text-align:right;flex:none}.ui-row-end-1{color:var(--ink-4);font-size:12px}.ui-row-end-2{color:var(--ink-6);font-size:11.5px}.ui-item{color:var(--ink);border-radius:9px;align-items:center;gap:10px;padding:9px;display:flex}.ui-item:hover{background:var(--ground-side)}.ui-item-name{font-size:13px;font-weight:500}.ui-item-sub{color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.ui-section-label{color:var(--ink-6);letter-spacing:.06em;text-transform:uppercase;padding:13px 15px 9px;font-size:11px;font-weight:600}.ui-section-label-ruled{border-top:1px solid var(--line);padding-top:10px}.ui-kv{align-items:baseline;gap:10px;display:flex}.ui-kv-key{width:104px;color:var(--ink-4);flex:none;font-size:12px}.ui-kv-value{min-width:0;color:var(--ink);word-break:break-word;flex:1;font-size:12.5px}.ui-stats{gap:12px;display:grid}.ui-stat{border:1px solid var(--line);background:var(--ground);border-radius:12px;min-width:0;padding:14px 16px}.ui-stat-label{color:var(--ink-4);margin-bottom:7px;font-size:12.5px}.ui-stat-value{letter-spacing:-.7px;font-size:22px;font-weight:600;line-height:1}.ui-stat-of{color:var(--ink-4);font-size:13px;font-weight:450}.ui-stat-big{padding:15px 16px}.ui-stat-big .ui-stat-label{margin-bottom:8px}.ui-stat-big .ui-stat-value{letter-spacing:-.8px;font-size:25px}.ui-stat-line{align-items:flex-end;gap:7px;display:flex}.ui-stat-delta{color:var(--ink-4);padding-bottom:2px;font-size:12px;font-weight:500}.ui-stat-delta-up{color:var(--green)}.ui-stat-delta-down{color:var(--red)}.ui-stat-small{padding:13px 15px}.ui-stat-small .ui-stat-label{margin-bottom:6px;font-size:11.5px}.ui-stat-small .ui-stat-value{letter-spacing:-.6px;font-size:21px;line-height:normal}.ui-stat-fact .ui-stat-label{margin-bottom:5px}.ui-stat-fact .ui-stat-value{letter-spacing:normal;word-break:break-word;font-size:13.5px;font-weight:550;line-height:1.45}.ui-stat-accent{background:var(--ground-tint);border-color:var(--accent-tint-line)}.ui-stat-accent .ui-stat-label{color:var(--accent-ink)}.ui-stat-accent .ui-stat-value{color:var(--accent-hover)}.ui-table-head,.ui-table-row{gap:12px;padding:10px 16px;display:grid}.ui-table-head{border-bottom:1px solid var(--line-2);background:var(--ground-side)}.ui-table-head>span{color:var(--ink-4);font-size:11.5px;font-weight:500}.ui-table-row{border-top:1px solid var(--line-3);color:var(--ink);align-items:center;padding:12px 16px}.ui-table-head+.ui-table-row{border-top:0}.ui-table-row:hover{background:var(--ground-side);color:var(--ink)}.ui-table-row-link{cursor:pointer}.ui-cell-right{text-align:right;justify-self:stretch}.ui-cell-end{justify-content:flex-end;align-items:center;gap:10px;display:flex}.ui-cell-strong{min-width:0;font-size:13.5px;font-weight:550}.ui-cell{color:var(--ink-3);min-width:0;font-size:13px}.ui-cell-ink{color:var(--ink-2);min-width:0;font-size:13px}.ui-cell-faint{color:var(--ink-4);min-width:0;font-size:12.5px}.ui-cell-link{color:var(--accent);font-size:13px;font-weight:550}.ui-clip{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ui-tabs{border-bottom:1px solid var(--line);gap:2px;margin-top:-4px;display:flex}.ui-tab{white-space:nowrap;height:36px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:none;align-items:center;gap:7px;margin-bottom:-1px;padding:0 12px;font-size:13px;font-weight:450;display:flex}.ui-tab:hover{color:var(--ink)}.ui-tab-on,.ui-tab-on:hover{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.ui-button{border:1px solid var(--line-control);background:var(--ground);height:34px;color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:0 13px;font-size:13px;font-weight:500;display:inline-flex}.ui-button:hover{border-color:var(--line-hover);color:var(--ink)}.ui-button:disabled{cursor:default;opacity:.55}.ui-button-primary{background:var(--accent);color:var(--on-accent);border-color:#0000;padding:0 14px;font-weight:550}.ui-button-primary:hover{background:var(--accent-hover);color:var(--on-accent);border-color:#0000}.ui-button-dashed{border-style:dashed;border-color:var(--line-hover);color:var(--ink-2);font-size:12.5px}.ui-button-dashed:hover{border-color:var(--accent);color:var(--accent-hover)}.ui-button-danger{color:var(--red)}.ui-button-danger:hover{border-color:var(--red-line);color:var(--red)}.ui-button-pill{border-radius:99px}.ui-button-xs{border-radius:8px;height:28px;padding:0 10px;font-size:12.5px}.ui-button-sm{border-radius:8px;height:30px;padding:0 12px;font-size:12.5px}.ui-button-md{height:32px;padding:0 12px;font-size:12.5px}.ui-button-form{height:36px}.ui-button-lg{width:100%;height:42px;font-size:14px}.ui-text-action{color:var(--accent);cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:0;font-size:12.5px;font-weight:500}.ui-text-action:disabled{color:var(--ink-7);cursor:default}.ui-text-action-danger{color:var(--red)}.ui-label{color:var(--ink-2);margin-bottom:6px;font-size:12.5px;font-weight:500;display:block}.ui-input,.ui-select{border:1px solid var(--line-control);background:var(--ground);width:100%;height:36px;color:var(--ink);border-radius:9px;padding:0 12px;font-size:13px}.ui-select{padding:0 10px}.ui-input:focus,.ui-select:focus{border-color:var(--accent);box-shadow:var(--accent-ring);outline:none}.ui-input-sm,.ui-select-sm{height:34px}.ui-input-lg{border-color:var(--line-field);height:40px;font-size:14px}.ui-textarea{border:1px solid var(--line-control);background:var(--ground);width:100%;min-height:72px;color:var(--ink);resize:vertical;border-radius:9px;padding:9px 12px;font-size:13px;line-height:1.5}.ui-textarea:focus{border-color:var(--accent);box-shadow:var(--accent-ring)}.ui-form{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.ui-form-grow{flex:1;min-width:200px}.ui-check{color:var(--ink-2);cursor:pointer;align-items:center;gap:7px;font-size:13px;display:inline-flex}.ui-check input{accent-color:var(--accent)}.ui-segmented{background:var(--ground-4);border-radius:9px;gap:4px;padding:3px;display:flex}.ui-segment{height:26px;color:var(--ink-3);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:7px;padding:0 10px;font-size:12px;font-weight:450}.ui-segment-on{background:var(--ground);color:var(--ink);box-shadow:var(--shadow-raised);font-weight:550}.ui-chips{flex-wrap:wrap;gap:7px;display:flex}.ui-chip{border:1px solid var(--line-control);background:var(--ground);height:30px;color:var(--ink-3);cursor:pointer;border-radius:99px;padding:0 12px;font-size:12.5px;font-weight:450}.ui-chip-on{background:var(--ink);border-color:var(--ink);color:var(--on-accent);font-weight:550}.ui-choice{cursor:pointer;background:var(--ground-5);height:28px;color:var(--ink-3);border:0;border-radius:8px;padding:0 11px;font-size:12.5px;font-weight:450}.ui-choice-on{background:var(--ink);color:var(--on-accent);font-weight:550}.ui-choice:disabled{cursor:default}.ui-switch{background:var(--line-muted);cursor:pointer;border:0;border-radius:99px;align-items:center;width:36px;height:20px;padding:2px;display:flex}.ui-switch-on{background:var(--accent);justify-content:flex-end}.ui-switch-knob{background:var(--on-accent);border-radius:50%;width:16px;height:16px}.ui-pill{white-space:nowrap;border-radius:99px;flex:none;padding:2px 8px;font-size:11.5px;font-weight:500;line-height:normal;display:inline-block}.ui-pill-small{padding:1.5px 7px;font-size:11px}.ui-pill-green{color:var(--green);background:var(--green-soft)}.ui-pill-amber{color:var(--amber);background:var(--amber-soft)}.ui-pill-red{color:var(--red);background:var(--red-soft)}.ui-pill-indigo{color:var(--indigo);background:var(--indigo-soft)}.ui-pill-violet{color:var(--accent-hover);background:var(--accent-soft)}.ui-pill-gray{color:var(--ink-3);background:var(--ground-5)}.ui-pill-muted{color:var(--ink-4);background:var(--ground-5)}.ui-tag{color:var(--ink-2);background:var(--ground-5);white-space:nowrap;border-radius:99px;padding:2px 8px;font-size:11.5px;font-weight:500}.ui-tags{flex-wrap:wrap;gap:5px;display:flex}.ui-dot{background:var(--line-muted);border-radius:50%;flex:none;width:7px;height:7px;display:inline-block}.ui-dot-small{width:6px;height:6px}.ui-dot-green{background:var(--green-dot)}.ui-dot-amber{background:var(--amber-dot)}.ui-live{color:var(--green-dot);align-items:center;gap:6px;font-size:12px;display:inline-flex}.ui-avatar{border-radius:9px;flex:none;place-items:center;width:28px;height:28px;font-size:11px;font-weight:600;display:grid}.ui-avatar-26{border-radius:8px;width:26px;height:26px}.ui-avatar-36{border-radius:11px;width:36px;height:36px;font-size:12.5px}.ui-avatar-round{border-radius:50%;font-size:12px}.ui-avatar-round.ui-avatar-38{width:38px;height:38px;font-size:13px}.ui-tint-violet{background:var(--accent-soft);color:var(--accent-hover)}.ui-tint-green{background:var(--green-soft);color:var(--green)}.ui-tint-pink{background:var(--pink-soft);color:var(--pink)}.ui-tint-amber{background:var(--amber-soft);color:var(--amber)}.ui-tint-indigo{background:var(--indigo-soft);color:var(--indigo)}.ui-tint-red{background:var(--red-soft);color:var(--red)}.ui-tint-ink{background:var(--ink);color:var(--on-accent)}.ui-code{background:var(--ground-side);font:12.5px var(--face-fixed);color:var(--ink-2);white-space:pre;margin:0;padding:14px 16px;line-height:1.7;overflow-x:auto}.ui-bar{background:var(--ground-5);border-radius:99px;height:6px;display:block;overflow:hidden}.ui-bar-fill{background:var(--accent);border-radius:99px;height:100%;display:block}.ui-icon{display:block}@media (width<=720px){.ui-page{padding:20px 16px 40px}.ui-card{overflow-x:auto}.ui-table-head,.ui-table-row{min-width:640px}}.ui-resize{z-index:3;cursor:col-resize;touch-action:none;width:9px;position:absolute;top:0;bottom:0}.ui-resize:after{content:"";background:0 0;width:1px;transition:background .15s ease-out,width .15s ease-out;position:absolute;top:0;bottom:0;left:4px}.ui-resize:hover:after,.ui-resize:active:after{background:var(--accent);width:2px}.ui-resize-right{right:calc(var(--pane) - 5px)}.ui-resize-left{left:calc(var(--pane) - 5px)}@media (width<=1100px){.ui-resize{display:none}}.login{background:var(--ground);grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100vh;display:grid}.login-side{flex-direction:column;justify-content:space-between;min-height:640px;padding:32px 40px;display:flex}.login-logo{align-self:flex-start;width:auto;height:22px;display:block}.login-form{width:100%;max-width:352px;margin:0 auto;padding:40px 0}.login-title{letter-spacing:-.7px;margin:0 0 7px;font-size:26px;font-weight:650}.login-lede{color:var(--ink-3);margin:0 0 28px;font-size:14px;line-height:1.5}.login-label{color:var(--ink-2);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.login-label-row{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.login-label-row .login-label{margin-bottom:0}.login-hint{color:var(--ink-4);font-size:12.5px}.login-input{border:1px solid var(--line-field);background:var(--ground);width:100%;height:40px;color:var(--ink);border-radius:9px;margin-bottom:14px;padding:0 12px;font-size:14px}.login-input:focus{border-color:var(--accent);box-shadow:var(--accent-ring)}.login-input-secret{letter-spacing:.1em}.login-workspace{border:1px solid var(--line-field);background:var(--ground);border-radius:9px;align-items:center;gap:10px;height:40px;margin-bottom:22px;padding:0 12px;display:flex}.login-workspace:hover{border-color:var(--line-hover-2)}.login-workspace:focus-within{border-color:var(--accent);box-shadow:var(--accent-ring)}.login-workspace-tile{background:var(--accent);width:18px;height:18px;color:var(--on-accent);border-radius:5px;flex:none;place-items:center;font-size:10px;font-weight:600;display:grid}.login-workspace-input{min-width:0;height:100%;color:var(--ink);background:0 0;border:0;flex:1;font-size:14px}.login-go{background:var(--accent);width:100%;height:42px;color:var(--on-accent);cursor:pointer;border:0;border-radius:9px;font-size:14px;font-weight:550}.login-go:hover{background:var(--accent-hover)}.login-go:disabled{opacity:.6;cursor:default}.login-refused{color:var(--red);margin:14px 0 0;font-size:13px;line-height:1.5}.login-note{color:var(--ink-4);margin:22px 0 0;font-size:12.5px;line-height:1.6}.login-foot{color:var(--ink-5);margin:0;font-size:12.5px}.login-command{color:var(--ink-2);font-weight:500}.login-commands{border:1px solid var(--line);background:var(--ground-side);font:13px var(--face-fixed);color:var(--ink-2);white-space:pre;border-radius:12px;margin:0;padding:14px 16px;line-height:1.7}.login-show{background:var(--ground-3);border-left:1px solid var(--line);flex-direction:column;justify-content:center;gap:22px;padding:40px;display:flex}.login-show-words{max-width:420px}.login-show-title{letter-spacing:-.5px;text-wrap:pretty;margin:0 0 8px;font-size:22px;font-weight:600}.login-show-lede{color:var(--ink-3);text-wrap:pretty;margin:0;font-size:14px;line-height:1.6}.login-show-card{background:var(--ground);border:1px solid var(--line);max-width:420px;box-shadow:var(--shadow-card);border-radius:14px;overflow:hidden}.login-show-head{border-bottom:1px solid var(--line-2);align-items:center;gap:9px;padding:13px 16px;display:flex}.login-show-today{font-size:13px;font-weight:550}.login-show-count{color:var(--ink-4);margin-left:auto;font-size:12px}.login-show-row{border-bottom:1px solid var(--line-3);align-items:center;gap:12px;padding:12px 16px;display:flex}.login-show-row:last-child{border-bottom:0}.login-show-name{font-size:13px;font-weight:500}.login-show-line{color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.login-show-channel{color:var(--ink-5);flex:none;font-size:11.5px}.login-card{border:1px solid var(--line);background:var(--ground);max-width:460px;box-shadow:var(--shadow-card);border-radius:14px;margin:12vh auto 0;padding:24px}.login-card .login-title{letter-spacing:-.5px;font-size:22px}.login-card .login-lede{margin-bottom:20px}@media (width<=860px){.login{grid-template-columns:minmax(0,1fr)}.login-show{display:none}.login-side{padding:24px 16px}}.login-link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:12.5px}.login-forgot{color:var(--ink-3);margin:-6px 0 14px;font-size:12.5px;line-height:1.5}select.login-workspace-input{appearance:none;cursor:pointer}.login-or{align-items:center;gap:12px;margin:20px 0;display:flex}.login-or-line{background:var(--line);flex:1;height:1px}.login-or-word{color:var(--ink-5);font-size:12px}.login-sso{border:1px solid var(--line-field);background:var(--ground);width:100%;height:42px;color:var(--ink);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;gap:9px;font-size:14px;font-weight:500;display:flex}.login-sso:hover{border-color:var(--line-hover-2);background:var(--ground-side)}.login-sso:disabled{opacity:.6;cursor:default}.login-sso-glyph{background:var(--ink);border-radius:4px;width:16px;height:16px}.login-sso-pick{margin-top:14px}.login-sso-pick .login-workspace{margin-bottom:0}.login-sso-note{color:var(--ink-3);margin:12px 0 0;font-size:12.5px;line-height:1.5}.agents-watching{color:var(--green-dot);align-items:center;gap:6px;margin-left:auto;font-size:12px;display:flex}.agents-corners{margin-left:12px}.agents-name{align-items:center;gap:10px;min-width:0;display:flex}.agents-live{color:var(--green-dot);align-items:center;gap:6px;font-size:12px;display:flex}.agents-idle{color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.agents-numbers{color:var(--ink-3);font-size:12.5px}.agents-figure{text-align:right;font-size:13px;font-weight:500}.agents-score{color:var(--ink-6)}.agents-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.agents-none{color:var(--ink-4);padding:9px;font-size:12.5px}@media (width<=900px){.agents-split{grid-template-columns:minmax(0,1fr)}}.agents-score-good{color:var(--green)}.agents-score-fair{color:var(--amber)}.agents-score-poor{color:var(--red)}.box-fixed{font-family:var(--face-fixed);font-size:12px}.box-back{color:var(--ink-4);margin-bottom:6px;font-size:12.5px;text-decoration:none;display:inline-block}.box-back:hover{color:var(--ink)}.box-line{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.box-head-moves{align-items:center;gap:8px;margin-left:auto;display:flex}.box-inline{border-bottom:1px solid var(--line-2);background:var(--ground-side);padding:14px 16px}.box-inline-foot{color:var(--ink-4);flex-wrap:wrap;align-items:baseline;gap:4px;margin-top:10px;font-size:12.5px;line-height:1.6;display:flex}.box-inline-close{margin-left:auto}.box-done{color:var(--green);font-size:13px}.box-done-row{border-bottom:1px solid var(--line-2);padding:11px 16px}.box-bad{color:var(--red);font-size:13px}.box-note,.box-done-under{margin-top:10px}.box-kvs{flex-direction:column;gap:9px;padding:14px 16px;display:flex}.box-kvs-moves{margin-top:6px}.box-pick{flex-wrap:wrap;gap:8px;display:flex}.box-load{grid-template-columns:56px auto;align-items:center;gap:8px;display:grid}.box-limits{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px 12px;padding:14px 16px 4px;display:grid}.box-limit-about{color:var(--ink-5);margin-top:5px;font-size:12px}.box-save{flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px 14px;display:flex}.box-anywhere{border-bottom:1px solid var(--line-2);align-items:center;gap:16px;padding:14px 16px;display:flex}.box-anywhere-words{flex-direction:column;flex:1;gap:2px;font-size:13.5px;display:flex}.box-form{flex-direction:column;gap:14px;padding:14px 16px;display:flex}.box-form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:12px;display:grid}.box-form-pair{grid-template-columns:96px minmax(0,1fr);gap:12px;display:grid}.box-redirect{border-top:1px solid var(--line-2)}.box-redirect-head{justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;display:flex}.box-accent{grid-template-columns:36px minmax(0,1fr);gap:8px;display:grid}.box-accent-well{border:1px solid var(--line-field);background:var(--ground);cursor:pointer;border-radius:9px;width:36px;height:36px;padding:2px}.box-letter-ground{background:var(--ground-3);justify-content:center;padding:28px 16px;display:flex}.box-letter{border:1px solid var(--line);background:var(--ground);border-radius:14px;flex-direction:column;align-items:flex-start;gap:12px;width:100%;max-width:460px;padding:28px 28px 30px;display:flex}.box-letter-logo{width:auto;height:28px}.box-letter-name{letter-spacing:-.01em;font-size:17px;font-weight:700}.box-letter-title{letter-spacing:-.01em;margin-top:8px;font-size:18px;font-weight:650}.box-letter-words{color:var(--ink-3);font-size:13.5px;line-height:1.6}.box-letter-button{color:var(--on-accent);border-radius:9px;margin-top:6px;padding:10px 18px;font-size:13.5px;font-weight:600}@media (width<=720px){.box-form-grid{grid-template-columns:minmax(0,1fr)}}.dial-anchor{position:relative}.dial-pop{z-index:30;border:1px solid var(--line-control);background:var(--ground);width:288px;box-shadow:var(--shadow-pop);border-radius:12px;flex-direction:column;gap:11px;padding:14px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.dial-ask{font-size:13.5px;font-weight:550;line-height:1.45}.dial-moves{gap:8px;display:flex}.dial-panel{border:1px solid var(--line-control);background:var(--ground);box-shadow:var(--shadow-pop);border-radius:12px;overflow:hidden}.dial-panel-head{align-items:center;gap:10px;padding:10px 12px 0;display:flex}.dial-panel-close{width:24px;height:24px;color:var(--ink-4);cursor:pointer;background:0 0;border:0;border-radius:7px;margin-left:auto;font-size:16px;line-height:1}.dial-panel-close:hover{background:var(--ground-5);color:var(--ink)}.dial-form{flex-direction:column;gap:10px;padding:12px;display:flex}.dial-note{color:var(--ink-3);margin:0;font-size:12px;line-height:1.5}.dial-refused{color:var(--red);margin:0;font-size:12.5px;line-height:1.5}.sim{background:var(--ground);border:1px solid var(--line-control);box-shadow:var(--shadow-pop);border-radius:12px;flex-direction:column;gap:10px;padding:12px 13px 14px;display:flex}.sim-head{align-items:center;display:flex}.sim-title{font-size:13px;font-weight:600}.sim-close{width:24px;height:24px;color:var(--ink-4);cursor:pointer;background:0 0;border:0;border-radius:7px;margin-left:auto;font-size:16px;line-height:1}.sim-close:hover{background:var(--ground-5);color:var(--ink)}.sim-note{color:var(--ink-3);margin:0;font-size:12px;line-height:1.5}.sim-pair{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;display:grid}.sim-checks{flex-direction:column;gap:6px;display:flex}.sim-aside{color:var(--ink-4);font-size:11.5px}.sim-refused{color:var(--red);margin:0;font-size:12px;line-height:1.5}.ib{grid-template-columns:var(--pane,292px) minmax(0, 1fr);flex:1;grid-template-rows:minmax(0,1fr);min-height:0;display:grid;position:relative}.ib-list{border-right:1px solid var(--line);flex-direction:column;min-width:0;min-height:0;display:flex}.ib-list-head{border-bottom:1px solid var(--line);flex:none;gap:8px;padding:12px 13px;display:flex;position:relative}.ib-search{border:1px solid var(--line-control);background:var(--ground-side);min-width:0;height:34px;color:var(--ink);border-radius:99px;flex:1;padding:0 12px;font-size:13px}.ib-search:focus{border-color:var(--accent);background:var(--ground);box-shadow:var(--accent-ring)}.ib-new{background:var(--accent);width:34px;height:34px;color:var(--on-accent);cursor:pointer;border:0;border-radius:50%;flex:none;font-size:17px;line-height:1}.ib-new:hover{background:var(--accent-hover)}.ib-sim{z-index:30;position:absolute;top:calc(100% + 4px);left:8px;right:8px}.ib-threads{flex:1;overflow:auto}.ib-empty{color:var(--ink-4);margin:0;padding:14px 13px;font-size:12.5px;line-height:1.55}.ib-refused{color:var(--red)}.ib-row{border:0;border-bottom:1px solid var(--line-3);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:11px;width:100%;padding:11px 13px;display:flex}.ib-row:hover{background:var(--ground-side)}.ib-row-on,.ib-row-on:hover{background:var(--ground-4)}.ib-row-main{flex:1;min-width:0}.ib-row-top{align-items:baseline;gap:8px;display:flex}.ib-row-name{min-width:0;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13.5px;font-weight:600;overflow:hidden}.ib-row-time{color:var(--ink-6);flex:none;font-size:11px}.ib-row-bottom{align-items:center;gap:7px;margin-top:2px;display:flex}.ib-row-last{min-width:0;color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12.5px;overflow:hidden}.ib-row-last-live{color:var(--green)}.ib-unread{background:var(--green-dot);min-width:18px;height:18px;color:var(--on-accent);border-radius:99px;flex:none;place-items:center;padding:0 5px;font-size:11px;font-weight:600;display:grid}.ib-thread{background:var(--ground-side);flex-direction:column;min-width:0;min-height:0;display:flex}.ib-nothing{color:var(--ink-3);padding:26px 22px;font-size:13.5px}.ib-head{border-bottom:1px solid var(--line);background:var(--ground);flex-wrap:wrap;flex:none;align-items:center;gap:11px;padding:11px 16px;display:flex}.ib-head-words{min-width:0}.ib-head-name{letter-spacing:-.15px;font-size:14px;font-weight:600}.ib-head-sub{color:var(--ink-4);font-size:12px}.ib-head-actions{flex:none;gap:8px;margin-left:auto;display:flex}.ib-messages{flex-direction:column;flex:1;gap:9px;padding:18px 20px;display:flex;overflow:auto}.ib-bubble-wrap{flex-direction:column;gap:9px;display:flex}.ib-day{color:var(--ink-6);background:var(--ground-5);border-radius:99px;align-self:center;margin-bottom:4px;padding:3px 11px;font-size:11.5px}.ib-line{justify-content:flex-start;display:flex}.ib-line-out{justify-content:flex-end}.ib-line-call{justify-content:center}.ib-call{background:var(--ground-5);color:var(--ink-3);border-radius:99px;padding:6px 12px;font-size:12px;font-weight:500}.ib-bubble{background:var(--ground-4);max-width:66%;color:var(--ink);white-space:pre-wrap;word-break:break-word;border-radius:14px 14px 14px 5px;padding:9px 13px 7px;font-size:13.5px;line-height:1.5;position:relative}.ib-bubble-out{background:var(--accent-soft);border-bottom-right-radius:5px;border-bottom-left-radius:14px}.ib-time{color:var(--ink-6);text-align:right;margin-top:3px;font-size:10.5px;display:block}.ib-quiet{color:var(--ink-4);align-self:center;margin:0;font-size:12.5px}.ib-refused-line{color:var(--red);margin:0;font-size:12.5px;line-height:1.5}.ib-refused-foot{background:var(--ground);flex:none;padding:6px 16px 0}.ib-composer{border-top:1px solid var(--line);background:var(--ground);flex:none;gap:9px;padding:12px 16px;display:flex}.ib-write{border:1px solid var(--line-control);background:var(--ground-side);min-width:0;height:38px;color:var(--ink);border-radius:99px;flex:1;padding:0 14px;font-size:13.5px}.ib-write:focus{border-color:var(--accent);background:var(--ground);box-shadow:var(--accent-ring)}.ib-write:disabled{cursor:not-allowed}.ib-send{background:var(--accent);height:38px;color:var(--on-accent);cursor:pointer;border:0;border-radius:99px;flex:none;padding:0 18px;font-size:13.5px;font-weight:550}.ib-send:hover{background:var(--accent-hover)}.ib-send:disabled{opacity:.55;cursor:default}@media (width<=720px){.ib{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);overflow:auto}.ib-list{border-right:0;border-bottom:1px solid var(--line);max-height:34vh}}.ib-sim-ways{border:1px solid var(--line-control);background:var(--ground);box-shadow:var(--shadow-pop);border-radius:12px;margin-bottom:6px;padding:5px;display:flex}.inspector{border-left:1px solid var(--line);background:var(--ground-side);min-width:0;min-height:0;overflow:auto}.inspector-head{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:13px 15px;display:flex}.inspector-title{font-size:13px;font-weight:600}.inspector-standing{margin-left:auto}.inspector-standing .ui-pill{font-weight:550}.inspector-tabs{padding:4px 8px 12px}.inspector-count{color:var(--ink-6);font-size:11px;font-weight:500}.inspector-quiet{color:var(--ink-4);margin:0;padding:14px 15px;font-size:12.5px;line-height:1.55}.inspector-figures{flex-wrap:wrap;gap:12px 18px;padding:0 15px 14px;display:flex}.inspector-figure-label{color:var(--ink-4);margin-bottom:2px;font-size:11.5px}.inspector-figure{letter-spacing:-.3px;font-size:15px;font-weight:600}.inspector-call{color:var(--ink-6);word-break:break-all;margin:-6px 15px 14px;font-size:11px}.inspector-turns,.inspector-tools{flex-direction:column;gap:9px;padding:0 15px 14px;display:flex}.inspector-turn{gap:9px;display:flex}.inspector-who{width:42px;color:var(--ink-4);flex:none;padding-top:1px;font-size:11.5px;font-weight:600}.inspector-who-agent{color:var(--accent-hover)}.inspector-turn-body{flex:1;min-width:0}.inspector-turn-text{color:var(--ink-2);font-size:12.5px;line-height:1.5;display:block}.inspector-turn-meta{color:var(--ink-6);margin-top:2px;font-size:11px;display:block}.inspector-tool{border:1px solid var(--line);background:var(--ground);border-radius:10px;padding:9px 11px}.inspector-tool-name{font-size:12.5px;font-weight:550}.inspector-tool-args{color:var(--ink-4);word-break:break-word;margin-top:2px;font-size:11.5px;line-height:1.5}.inspector-tool-result{color:var(--green);word-break:break-word;margin-top:4px;font-size:11.5px}.inspector-tool-failed{color:var(--red)}.inspector-tool-running{color:var(--amber)}.inspector-state{flex-direction:column;gap:8px;padding:0 15px 22px;display:flex}.inspector-field{align-items:baseline;gap:10px;display:flex}.inspector-field-key{width:100px;color:var(--ink-4);text-overflow:ellipsis;flex:none;font-size:12px;overflow:hidden}.inspector-field-value{word-break:break-word;flex:1;min-width:0;font-size:12.5px}.inspector-none{color:var(--ink-6);margin:0;font-size:12px}.inspector-refused{color:var(--red);margin:0;padding:0 15px 16px;font-size:12px}.chat-grid{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) minmax(210px,300px);min-height:0;display:grid}.chat-column{flex-direction:column;min-width:0;min-height:0;display:flex}.chat-head{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:12px;padding:16px 20px 12px;display:flex}.chat-head-words{flex:1;min-width:0}.chat-title{letter-spacing:-.3px;font-size:15px;font-weight:650}.chat-sub{color:var(--ink-3);margin-top:2px;font-size:12.5px}.chat-head-actions{flex:none;align-items:center;gap:12px;display:flex}.chat-whole{color:var(--accent);font-size:12.5px;font-weight:500}.chat-lines{background:var(--ground-side);flex-direction:column;flex:1;gap:11px;min-height:0;padding:18px 20px;display:flex;overflow:auto}.chat-line{justify-content:flex-start;display:flex}.chat-line-user{justify-content:flex-end}.chat-line-tool{justify-content:center}.chat-line-pending{opacity:.6}.chat-bubble{background:var(--ground-4);max-width:74%;color:var(--ink);white-space:pre-wrap;word-break:break-word;border-radius:14px;padding:10px 13px;font-size:13.5px;line-height:1.55}.chat-bubble-you{background:var(--accent);color:var(--on-accent)}.chat-caret{vertical-align:text-bottom;background:var(--accent);width:2px;height:1em;margin-left:2px;animation:1s steps(2,start) infinite chat-blink;display:inline-block}@keyframes chat-blink{to{visibility:hidden}}.chat-typing{align-items:center;gap:4px;padding:14px 15px;display:inline-flex}.chat-typing i{background:var(--ink-6);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite chat-dots}.chat-typing i:nth-child(2){animation-delay:.2s}.chat-typing i:nth-child(3){animation-delay:.4s}@keyframes chat-dots{0%,80%,to{opacity:.3}40%{opacity:1}}.chat-tool{background:var(--ground-5);color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;border-radius:99px;max-width:90%;padding:6px 12px;font-size:12px;font-weight:500;overflow:hidden}.chat-tool-failed{color:var(--red);background:var(--red-soft)}.chat-tool-running{color:var(--amber);background:var(--amber-soft)}.chat-error{color:var(--red);margin:0;font-size:12.5px}.chat-refused{flex:none;padding:8px 16px 0}.chat-composer{border-top:1px solid var(--line);background:var(--ground);flex:none;gap:9px;padding:12px 16px;display:flex}.chat-say{border:1px solid var(--line-control);background:var(--ground-side);min-width:0;height:38px;color:var(--ink);border-radius:10px;flex:1;padding:0 13px;font-size:13.5px}.chat-say:focus{border-color:var(--accent);background:var(--ground);box-shadow:var(--accent-ring)}.chat-send{background:var(--accent);height:38px;color:var(--on-accent);cursor:pointer;border:0;border-radius:10px;flex:none;padding:0 16px;font-size:13.5px;font-weight:550}.chat-send:hover{background:var(--accent-hover)}.chat-send:disabled{cursor:default;opacity:.55}.chat-start{width:100%;max-width:520px;margin:12px auto 0}.chat-start-form{flex-direction:column;gap:13px;display:flex}.chat-note{color:var(--ink-3);margin:0;font-size:12.5px;line-height:1.6}@media (width<=900px){.chat-grid{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr)}}.chat-over{border-top:1px solid var(--line);background:var(--ground);color:var(--ink-4);flex:none;padding:14px 16px;font-size:12.5px}.oev-held{align-items:center;gap:10px;min-width:0;display:flex}.oev-held .ui-bar{flex:1}.oev-share{text-align:right;width:40px;color:var(--ink-2);flex:none;font-size:12.5px}.oev-none{color:var(--ink-5);font-size:12.5px}.oev-when{color:var(--ink-4);font-size:12px}.oev-open{color:var(--accent);font-size:12.5px}.talk-grid{grid-template-columns:minmax(0, 1fr) var(--pane,330px);flex:1;grid-template-rows:minmax(0,1fr);min-height:0;display:grid;position:relative}.talk-grid>.ui-page{min-width:0}.talk-card{border:1px solid var(--line);border-radius:12px;flex-direction:column;align-items:center;gap:14px;padding:28px 20px;display:flex}.talk-door{background:var(--accent);width:96px;height:96px;color:var(--on-accent);cursor:pointer;box-shadow:var(--shadow-talk);border:0;border-radius:50%;font-size:15px;font-weight:600}.talk-door-clock{opacity:.85;margin-top:2px;font-size:11.5px;font-weight:500;display:block}.talk-mic{align-items:center;gap:10px;display:flex}.talk-door:hover{background:var(--accent-hover)}.talk-door:disabled{cursor:default;opacity:.7}.talk-door-on,.talk-door-on:hover{background:var(--red);box-shadow:none}.talk-standing{text-align:center}.talk-phase{font-size:13.5px;font-weight:550}.talk-hint{color:var(--ink-4);margin-top:3px;font-size:12.5px}.talk-bars{align-items:flex-end;gap:3px;height:20px;display:flex}.talk-bars span{background:var(--line-muted);border-radius:2px;width:3px}.talk-bars span:first-child{height:6px}.talk-bars span:nth-child(2){height:12px}.talk-bars span:nth-child(3){height:8px}.talk-bars span:nth-child(4){height:16px}.talk-bars span:nth-child(5){height:9px}.talk-bars-on span{background:var(--accent);transform-origin:bottom;animation:.9s ease-in-out infinite alternate talk-level}.talk-bars-on span:nth-child(2){animation-delay:.15s}.talk-bars-on span:nth-child(3){animation-delay:.3s}.talk-bars-on span:nth-child(4){animation-delay:.45s}.talk-bars-on span:nth-child(5){animation-delay:.6s}@keyframes talk-level{0%{transform:scaleY(.35)}to{transform:scaleY(1)}}.talk-call{color:var(--ink-6);word-break:break-all;text-align:center;font-size:11.5px}.talk-facts{flex-wrap:wrap;gap:12px;display:flex}.talk-fact{border:1px solid var(--line);border-radius:12px;flex:1;min-width:200px;padding:13px 15px}.talk-fact-label{color:var(--ink-4);margin-bottom:5px;font-size:11.5px}.talk-fact-value{font-size:13.5px;font-weight:550}.talk-whole{flex-direction:column;flex:1;min-height:0;display:flex}.talk-whole .talk-lines{background:var(--ground);flex:1;max-height:none;padding:22px 24px}.talk-lines{background:var(--ground-side);flex-direction:column;gap:11px;min-height:120px;max-height:420px;padding:18px 20px;display:flex;overflow:auto}.talk-quiet{color:var(--ink-4);margin:auto;font-size:12.5px}.talk-said{justify-content:flex-start;display:flex}.talk-said-you{justify-content:flex-end}.talk-bubble{background:var(--ground-4);max-width:74%;color:var(--ink);border-radius:14px;margin:0;padding:10px 13px;font-size:13.5px;line-height:1.55}.talk-bubble-you{background:var(--accent);color:var(--on-accent)}.talk-bubble-unsettled{opacity:.6}.talk-word{animation:.18s ease-out talk-arrive}@keyframes talk-arrive{0%{opacity:0}to{opacity:1}}.talk-cursor{vertical-align:text-bottom;background:currentColor;width:2px;height:1em;margin-left:2px;animation:1s steps(2,start) infinite talk-blink;display:inline-block}@keyframes talk-blink{to{visibility:hidden}}.talk-mark{background:var(--ground-5);color:var(--ink-4);border-radius:99px;align-self:center;margin:0;padding:3px 11px;font-size:12px}.talk-composer{border-top:1px solid var(--line);background:var(--ground);gap:9px;padding:12px 16px;display:flex}.talk-write{border:1px solid var(--line-control);background:var(--ground-side);min-width:0;height:38px;color:var(--ink);border-radius:10px;flex:1;padding:0 13px;font-size:13.5px}.talk-write:focus{border-color:var(--accent);background:var(--ground);box-shadow:var(--accent-ring)}.talk-write:disabled{cursor:not-allowed}.talk-send{background:var(--accent);height:38px;color:var(--on-accent);cursor:pointer;border:0;border-radius:10px;flex:none;padding:0 16px;font-size:13.5px;font-weight:550}.talk-send:hover{background:var(--accent-hover)}.talk-send:disabled{opacity:.55;cursor:default}.talk-mark-tool{color:var(--amber)}.talk-mark-error{color:var(--red)}.talk-mark-supervisor{color:var(--accent-hover)}@media (width<=900px){.talk-grid{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);overflow:auto}}.rchat-grid{grid-template-columns:minmax(0, 1fr) var(--pane,330px);flex:1;grid-template-rows:minmax(0,1fr);min-height:0;display:grid;position:relative}.rchat-stage{background:var(--ground-4);place-items:center;min-width:0;min-height:0;padding:22px;display:grid}.rchat{border:1px solid var(--line);background:var(--ground);border-radius:18px;flex-direction:column;width:min(820px,100%);height:100%;max-height:780px;display:flex;overflow:hidden;box-shadow:0 1px 2px #1010140a,0 26px 60px -28px #10101459}.rchat-bar{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:12px;padding:12px 20px;display:flex}.rchat-light{background:var(--line-muted);border-radius:50%;flex:none;width:9px;height:9px}.rchat-light-on{background:var(--green-dot);box-shadow:0 0 0 4px var(--green-soft)}.rchat-words{min-width:0}.rchat-title{font-size:14px;font-weight:600}.rchat-standing{color:var(--ink-4);margin-top:1px;font-size:12.5px}.rchat-moves{align-items:center;gap:8px;margin-left:auto;display:flex}.rchat-empty{background:var(--ground-side);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;min-height:0;padding:32px 24px;display:flex}.rchat-empty-words{text-align:center;max-width:460px;color:var(--ink-3);margin:0;font-size:13.5px;line-height:1.65}.rchat-empty-failed{color:var(--red);margin:0;font-size:12.5px}.rchat-refused{border-top:1px solid var(--line-2);color:var(--red);flex:none;margin:0;padding:10px 20px;font-size:12.5px}@media (width<=900px){.rchat-grid{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);overflow:auto}.rchat-stage{padding:0}.rchat{max-height:none;box-shadow:none;border:0;border-radius:0}}.ev-last{letter-spacing:-.3px;padding-top:4px;font-size:15px;font-weight:600}.ev-run-all{margin-left:auto}.ev-goldens>.ui-table-row:first-child{border-top:0}.ev-golden{flex-direction:column;min-width:0;display:flex}.ev-golden-says{color:var(--ink-2);font-size:13px}.ev-golden-name,.ev-golden-call{color:var(--ink-6);font-size:11.5px}.ev-golden-call:hover{color:var(--accent)}.ev-views{display:flex}.ev-row-open,.ev-row-open:hover{background:var(--ground-tint)}.ev-num{text-align:right;font-size:13px;font-weight:500}.ev-num-faint{color:var(--ink-4);font-weight:400}.ev-num-bad{color:var(--red)}.ev-head-end{margin-left:auto}.ev-facts{border-bottom:1px solid var(--line-2);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:9px 22px;padding:14px 16px;display:grid}.ev-score{flex-direction:column;gap:5px;min-width:0;display:flex}.ev-score-value{font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:500}.ev-reason{color:var(--ink-3);min-width:0;font-size:12.5px;line-height:1.55}.ev-repro-body{flex-direction:column;gap:10px;padding:0 16px 14px;display:flex}.ev-repro-open{border:1px solid var(--line);border-radius:10px;overflow:hidden}.ev-repro-title{border-bottom:1px solid var(--line-2);padding:11px 14px;font-size:13px;font-weight:600}.ev-repro-verdict{border-bottom:1px solid var(--line-3);align-items:baseline;gap:9px;padding:9px 14px;display:flex}.ev-asked{max-height:360px;overflow:auto}.ev-judge{color:var(--green);background:var(--green-soft);white-space:nowrap;border-radius:99px;padding:2px 8px;font-size:11.5px;font-weight:500}.ev-judge-bad{color:var(--red);background:var(--red-soft)}.ev-evidence{background:var(--ground-side);border-top:1px solid var(--line-3);flex-direction:column;gap:10px;padding:12px 16px 16px;display:flex}.ev-evidence-head{display:flex}.ev-acts{flex-direction:column;gap:8px;display:flex}.ev-acts-buttons{flex-wrap:wrap;gap:8px;display:flex}.ev-warn{color:var(--amber);font-size:12.5px;line-height:1.55}.ev-said{border:1px solid var(--line);background:var(--ground);border-radius:10px}.ev-said-body{flex-direction:column;gap:7px;padding:0 15px 13px;display:flex}.ev-quote{border-left:2px solid var(--line-control);color:var(--ink-2);padding-left:10px;font-size:13px;line-height:1.55}.ev-suite-controls{flex-wrap:wrap;align-items:flex-end;gap:14px;padding:14px 16px;display:flex}.ev-suite-models{flex:1;min-width:240px}.ev-suite-number{width:120px}.ev-suite-controls .ui-check{height:34px}.ev-suite-go{margin-left:auto}.ev-suite-all{background:var(--ground-side);border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);padding:9px 16px}.ev-suite-golden{border-top:1px solid var(--line-3);grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:12px;padding:10px 16px;display:grid}.ev-suite-golden:first-of-type{border-top:0}.ev-suite-name{color:var(--ink);font-size:13px;font-weight:500}.ev-suite-says{color:var(--ink-3);font-size:13px}.ev-suite-expects{color:var(--ink-4);font-size:12px}.ev-drift-windows{gap:10px;margin-left:auto;display:flex}.ev-drift-field{color:var(--ink-4);white-space:nowrap;align-items:center;gap:7px;font-size:12px;display:flex}.ev-drift-field .ui-input{width:64px;height:30px}.ev-broke{border-top:1px solid var(--line-3);grid-template-columns:minmax(0,1fr) auto minmax(0,2fr);align-items:baseline;gap:12px;padding:10px 16px;display:grid}@media (width<=720px){.ev-suite-golden{grid-template-columns:minmax(0,1fr)}}.lv{grid-template-columns:minmax(0, 1fr) var(--pane,360px);flex:1;grid-template-rows:minmax(0,1fr);min-width:0;min-height:0;display:grid;position:relative}.lv-middle{flex-direction:column;min-width:0;min-height:0;display:flex}.lv-head{border-bottom:1px solid var(--line);flex-wrap:wrap;flex:none;align-items:center;gap:10px;padding:12px 16px;display:flex}.lv-call{letter-spacing:-.1px;word-break:break-all;font-size:13.5px;font-weight:600}.lv-tag{color:var(--ink-2);background:var(--ground-5);white-space:nowrap;border-radius:99px;padding:2px 8px;font-size:12px;font-weight:500}.lv-status{white-space:nowrap;color:var(--green);background:var(--green-soft);border-radius:99px;padding:2px 8px;font-size:12px;font-weight:500}.lv-status-over{color:var(--ink-3);background:var(--ground-5)}.lv-sub{color:var(--ink-4);font-size:12px}.lv-connection-bad{color:var(--red)}.lv-session{border:1px solid var(--line-hover);background:var(--ground);height:30px;color:var(--ink-2);border-radius:8px;flex:none;align-items:center;margin-left:auto;padding:0 11px;font-size:12.5px;font-weight:500;display:inline-flex}.lv-session+.lv-listen{margin-left:8px}.lv-session:hover{border-color:var(--accent);color:var(--accent-hover)}.lv-listen{border:1px solid var(--line-control);background:var(--ground);height:30px;color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:99px;align-items:center;gap:7px;margin-left:auto;padding:0 12px;font-size:12.5px;font-weight:550;display:flex}.lv-listen:hover{border-color:var(--accent);color:var(--accent-hover)}.lv-listen:disabled{cursor:default;color:var(--ink-6);border-color:var(--line-control)}.lv-listen-open{border-color:var(--accent-line);background:var(--ground-tint);color:var(--accent-hover)}.lv-desk{border-bottom:1px solid var(--line);background:var(--ground-side);flex-wrap:wrap;flex:none;align-items:center;gap:8px;padding:10px 16px;display:flex}.lv-desk-say{flex:100%;order:2;align-items:center;gap:8px;min-width:0;display:flex}.lv-desk-text{flex:1;min-width:120px}.lv-desk-dot{background:var(--line-muted);border-radius:50%;width:6px;height:6px}.lv-desk-dot-warm{background:var(--amber-dot)}.lv-desk-dot-on{background:var(--green-dot)}.lv-desk-armed,.lv-desk-armed:hover{border-color:var(--red-line);background:var(--red-soft);color:var(--red)}.lv-desk-holding,.lv-desk-holding:hover{border-color:var(--amber-dot);background:var(--amber-soft);color:var(--amber)}.lv-desk-number{width:150px}.lv-desk-refused{color:var(--red);flex-basis:100%;order:3;font-size:12.5px;line-height:1.5}.lv-desk-note{color:var(--ink-4);flex:1;font-size:12px}.lv-rows{flex:1;min-height:0;overflow:auto}.lv-recording{border-top:1px solid var(--line-3);padding:12px 14px}.lv-recording audio{width:100%}.lv-row{border-top:1px solid var(--line-3);display:block}.lv-row:first-child{border-top:0}.lv-line{flex-wrap:wrap;gap:4px 10px;padding:9px 14px;list-style:none;display:flex}.lv-line::-webkit-details-marker{display:none}details.lv-row>.lv-line{cursor:pointer}.lv-state{background:var(--ground-tint)}.lv-tool,.lv-confirm{background:var(--amber-tint)}.lv-supervisor{background:var(--pink-soft)}.lv-seq{width:26px;color:var(--ink-7);text-align:right;flex:none;padding-top:1px;font-size:12px}.lv-kind{min-width:46px;color:var(--ink);flex:none;padding-top:1px;font-size:12px;font-weight:550}.lv-kind-state{color:var(--accent-hover)}.lv-kind-tool,.lv-kind-confirm{color:var(--amber)}.lv-kind-quiet{color:var(--ink-6)}.lv-kind-event,.lv-kind-lookup{color:var(--indigo)}.lv-kind-supervisor{color:var(--pink)}.lv-text{min-width:0;color:var(--ink-2);word-break:break-word;flex:150px;font-size:12.5px;line-height:1.55}.lv-text-turn{color:var(--ink);font-size:13.5px}.lv-text-quiet{color:var(--ink-6)}.lv-who{color:var(--ink-4);margin-right:7px;font-size:12px;font-weight:600;display:inline-block}.lv-who-agent{color:var(--accent-hover)}.lv-note{color:var(--ink-4);margin-top:4px;font-size:11.5px;display:block}.lv-failed{color:var(--red)}.lv-more{padding:2px 14px 12px 106px}.lv-list{color:var(--ink-3);margin:0;padding:0;font-size:12px;line-height:1.6;list-style:none}.lv-data{font:12px var(--face-fixed);color:var(--ink-2);white-space:pre-wrap;word-break:break-word;margin:0}.lv-block-name{color:var(--ink-6);letter-spacing:.06em;text-transform:uppercase;margin:8px 0 4px;font-size:11px;font-weight:600}.lv-saying{background:var(--ground-tint)}.lv-word{transition:color .25s ease-out;animation:.2s ease-out lv-arrive}.lv-word-now{color:var(--accent);font-weight:600}.lv-caret{vertical-align:-2px;background:var(--accent);width:6px;height:13px;margin-left:1px;animation:1s steps(2,end) infinite lv-blink;display:inline-block}@keyframes lv-arrive{0%{opacity:0}to{opacity:1}}@keyframes lv-blink{50%{opacity:0}}.lv-nothing{color:var(--ink-3);padding:26px 22px;font-size:13.5px;line-height:1.6}.lv-pane{border-left:1px solid var(--line);background:var(--ground-side);min-width:0;min-height:0;overflow:auto}.lv-pane .ui-section-label{padding:18px 20px 10px}.lv-pane .ui-kv-value{text-align:right;font-variant-numeric:tabular-nums}.lv-prompt-row{align-items:baseline;gap:10px;font-size:12.5px;display:flex}.lv-prompt-name{color:var(--ink-3)}.lv-prompt-hash{color:var(--ink-6);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px}.lv-prompt-chars{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto}.lv-pane-body{flex-direction:column;gap:9px;padding:0 20px 18px;display:flex}.lv-pane-body-tight{gap:9px}.lv-pane-text{color:var(--ink-3);padding:0 20px 18px;font-size:12.5px;line-height:1.55}.lv-seen{color:var(--ink-6);margin-left:5px;font-size:11px}.lv-seen-pii{color:var(--pink)}.lv-people{flex-direction:column;gap:5px;margin:8px 0 0;padding:0;list-style:none;display:flex}.lv-person{color:var(--ink);font-size:12.5px}.lv-person summary{cursor:pointer;align-items:center;gap:7px;list-style:none;display:flex}.lv-person summary::-webkit-details-marker{display:none}.lv-person-kind{color:var(--ink-6);margin-left:auto;font-size:11px}.lv-speaking{background:var(--green-dot)}.lv-meter{grid-template-columns:132px minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.lv-meter-name{color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.lv-meter-value{color:var(--ink);white-space:nowrap;font-size:12.5px}.lv-blocks{color:var(--ink-3);font-size:12px}.lv-blocks summary{cursor:pointer;padding:2px 0}.lv-readings{flex-direction:column;margin:8px 0 12px;display:flex}.lv-reading{border-bottom:1px solid var(--line-3);justify-content:space-between;align-items:baseline;gap:16px;padding:6px 0;font-size:12.5px;display:flex}.lv-reading:last-child{border-bottom:0}.lv-reading-name{color:var(--ink-4);flex:none}.lv-reading-value{text-align:right;min-width:0;color:var(--ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}@media (width<=1100px){.lv{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);overflow:auto}.lv-pane{border-left:0;border-top:1px solid var(--line);max-height:40vh}}.fl{grid-template-columns:var(--pane,300px) minmax(0, 1fr);flex:1;grid-template-rows:minmax(0,1fr);min-height:0;display:grid;position:relative}.fl-side{border-right:1px solid var(--line);background:var(--ground-side);flex-direction:column;min-width:0;min-height:0;display:flex}.fl-side-head{border-bottom:1px solid var(--line);padding:13px 13px 11px;position:relative}.fl-standing{align-items:center;gap:7px;margin-bottom:9px;display:flex}.fl-count{white-space:nowrap;font-size:13px;font-weight:600}.fl-asked{color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;margin-left:auto;font-size:11.5px;overflow:hidden}.fl-only{color:var(--ink-2);align-items:center;gap:6px;margin-bottom:9px;font-size:12px;display:flex}.fl-only-clear{color:var(--accent);cursor:pointer;background:0 0;border:0;flex:none;margin-left:auto;padding:0;font-size:12px}.fl-search{width:100%;margin-bottom:9px}.fl-all{color:var(--accent);padding:12px 14px 14px;font-size:12.5px;display:block}.fl-row-words{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.fl-row-top{align-items:baseline;gap:8px;display:flex}.fl-row-sub{color:var(--ink-4);align-items:center;gap:6px;font-size:12px;display:flex}.fl-score{flex:none;margin-left:auto}.fl-outcome{color:var(--ink-3);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.fl-simulate{border:1px dashed var(--line-hover);background:var(--ground);width:100%;height:32px;color:var(--ink-2);cursor:pointer;border-radius:9px;font-size:12.5px;font-weight:500}.fl-simulate:hover{border-color:var(--accent);color:var(--accent-hover)}.fl-sim{z-index:30;width:300px;position:absolute;top:calc(100% - 4px);left:8px}.fl-list{flex:1;padding:6px 0;overflow:auto}.fl-label{color:var(--ink-6);letter-spacing:.06em;text-transform:uppercase;padding:6px 13px 4px;font-size:11px;font-weight:600}.fl-empty{color:var(--ink-4);margin:0;padding:6px 13px;font-size:12px;line-height:1.5}.fl-refused{color:var(--red)}.fl-row{border-bottom:1px solid var(--line-2);width:100%;color:var(--ink);background:0 0;border-left:2px solid #0000;align-items:flex-start;gap:10px;padding:11px 14px;display:flex}.fl-row:hover{color:var(--ink);background:var(--ground-5)}.fl-row-on,.fl-row-on:hover{border-left-color:var(--accent);background:var(--ground-tint)}.fl-dot{background:var(--line-muted);border-radius:50%;flex:none;width:6px;height:6px;margin-top:6px}.fl-dot-live{background:var(--green-dot)}.fl-id{min-width:0;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;font-weight:450;overflow:hidden}.fl-row-on .fl-id{font-weight:600}.fl-meta{color:var(--ink-6);flex:none;font-size:11.5px}.fl-meta-live{color:var(--green)}.fl-nothing{color:var(--ink-3);padding:26px 22px;font-size:13.5px;line-height:1.6}@media (width<=720px){.fl{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);overflow:auto}.fl-side{border-right:0;border-bottom:1px solid var(--line);max-height:34vh}}.sessions-filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sessions-search{flex:1;width:auto;min-width:220px}.sessions-select{width:auto;color:var(--ink-2)}.sessions-id{min-width:0}.sessions-call{min-width:0;color:var(--accent);align-items:center;gap:6px;font-size:13px;font-weight:550;display:flex}.sessions-from{color:var(--ink-4);font-size:12px}.sessions-live{color:var(--green);font-weight:500}.sessions-more{margin-left:auto}.session-title{letter-spacing:-.4px;word-break:break-all;margin:7px 0 10px;font-size:20px;font-weight:650}.session-acts{flex-direction:column;gap:8px;display:flex}.session-buttons{flex-wrap:wrap;gap:8px;display:flex}.session-result{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.session-result-lead{color:var(--ink-2);font-size:12.5px;font-weight:550}.session-result-note{color:var(--ink-4);font-size:12.5px}.session-result-line{flex-basis:100%}.session-path{color:var(--ink-2);font-size:12px}.session-facts .ui-stat{padding:13px 15px}.session-facts .ui-stat-value{line-height:normal}.session-outcome-label{color:var(--ink-4);margin-bottom:5px;font-size:11.5px}.session-outcome{max-width:760px;font-size:13.5px;line-height:1.55}.session-split{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.session-side{flex-direction:column;gap:14px;display:flex}.session-turns{flex-direction:column;gap:13px;padding:14px 16px;display:flex}.session-turn{gap:10px;display:flex}.session-who{width:52px;color:var(--ink-4);flex:none;padding-top:2px;font-size:12px;font-weight:550}.session-who-agent{color:var(--accent-hover)}.session-said{color:var(--ink-2);min-width:0;font-size:13.5px;line-height:1.6}.session-said-agent{color:var(--ink)}.session-interrupted{color:var(--ink-6);font-size:12px}.session-latency{flex-wrap:wrap;gap:14px 22px;padding:14px 16px;display:flex}.session-latency-none{padding:14px 16px}.session-latency-label{color:var(--ink-4);margin-bottom:4px;font-size:11.5px}.session-latency-value{letter-spacing:-.6px;font-size:21px;font-weight:600}.session-latency-max{color:var(--ink-6);margin-top:2px;font-size:11.5px}.session-standing{margin-bottom:5px;font-size:13px;font-weight:550}.session-standing-amber{color:var(--amber)}.session-standing-green{color:var(--green)}.session-standing-red{color:var(--red)}.session-sentence{color:var(--ink-3);margin:0 0 12px;font-size:12.5px;line-height:1.55}.session-sentence:last-child{margin-bottom:0}.session-judges{flex-direction:column;gap:10px;margin:8px 0 12px;display:flex}.session-judge-line{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.session-judge-name{font-size:12.5px;font-weight:550}.session-judge-reason{color:var(--ink-3);margin-top:3px;font-size:12.5px;line-height:1.5}.session-judge-said{color:var(--ink-4)}.session-seq{color:var(--accent);font-size:11.5px}.session-total{margin-left:auto;font-size:13px;font-weight:550}.session-cost{border-top:1px solid var(--line-3);align-items:baseline;gap:12px;padding:10px 16px;display:flex}.session-cost:first-child{border-top:0}.session-cost-model{flex:1;min-width:0;font-size:13px}.session-cost-kind{color:var(--ink-4)}.session-cost-units{color:var(--ink-3);white-space:nowrap;flex:none;font-size:12.5px}.session-cost-eur{text-align:right;white-space:nowrap;flex:none;width:74px;font-size:13px;font-weight:500}.session-note{border-top:1px solid var(--line-3);color:var(--ink-4);padding:10px 16px 12px;font-size:12px;line-height:1.55}.session-player{width:100%;margin-bottom:10px;display:block}.session-consents{padding:4px 16px}.session-consent{border-top:1px solid var(--line-3);padding:11px 0}.session-consent:first-child{border-top:0}.session-consent-join{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.session-consent-tool{font-size:13px;font-weight:550}.session-consent-seqs{color:var(--ink-2);font-size:12.5px}.session-consent-id{color:var(--ink-6);font-size:11.5px}.session-consent-said{color:var(--ink-2);margin-top:4px;font-size:13px;line-height:1.5}.session-consent-audience{color:var(--ink-4);margin-top:3px;font-size:12px}.session-prompt{flex-direction:column;gap:8px;padding:14px 16px;display:flex}.session-hash{font-size:12px}.session-log-action{margin-left:auto}.session-log{max-height:720px;overflow:auto}.session-entry{border-top:1px solid var(--line-3);grid-template-columns:34px 64px 128px minmax(0,1fr);gap:10px;padding:9px 16px;scroll-margin:60px;display:grid}.session-entry:first-child{border-top:0}.session-entry-opens{cursor:pointer}.session-entry-opens:hover{background:var(--ground-side)}.session-entry-cited{box-shadow:inset 2px 0 0 var(--accent);background:var(--ground-tint)}.session-entry-seq{color:var(--ink-7);text-align:right;padding-top:1px;font-size:12px}.session-entry-since{font:11.5px var(--face-fixed);color:var(--ink-6);padding-top:1px}.session-entry-type{color:var(--ink-4);word-break:break-word;font-size:12px;font-weight:550}.session-entry-mark{color:var(--ink-6)}.session-entry-turn .session-entry-type{color:var(--ink)}.session-entry-state{background:var(--ground-tint)}.session-entry-state .session-entry-type{color:var(--accent-hover)}.session-entry-tool{background:var(--amber-tint)}.session-entry-tool .session-entry-type{color:var(--amber)}.session-entry-call .session-entry-type{color:var(--green)}.session-entry-payload{min-width:0;color:var(--ink-2);word-break:break-word;font-size:12.5px;line-height:1.55}.session-entry-turn .session-entry-payload{color:var(--ink);font-size:13.5px}.session-entry-quiet .session-entry-payload{color:var(--ink-4)}.session-entry-caret{color:var(--ink-6)}.session-chips{flex-wrap:wrap;gap:5px;margin-top:4px;display:flex}.session-chip{color:var(--ink-4);background:var(--ground-5);white-space:nowrap;border-radius:99px;padding:1px 7px;font-size:11.5px}.session-chip b{color:var(--ink-2);font-weight:550}.session-fields{flex-direction:column;gap:2px;margin-top:6px;display:flex}.session-field{font:11.5px var(--face-fixed);gap:10px;display:flex}.session-field-name{width:220px;color:var(--ink-4);text-overflow:ellipsis;flex:none;overflow:hidden}.session-field-value{min-width:0;color:var(--ink-2);word-break:break-all}@media (width<=900px){.session-split{grid-template-columns:minmax(0,1fr)}.session-entry{grid-template-columns:30px minmax(0,1fr)}.session-entry-since,.session-entry-type,.session-entry-payload{grid-column:2}}.session-attach{margin-top:12px}.session-refused-line{color:var(--red)}.session-details{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:0;align-items:center;gap:10px;padding:13px 16px;display:flex}.session-details:hover{background:var(--ground-side)}.session-details-caret{color:var(--accent);margin-left:auto;font-size:12.5px;font-weight:500}.home-split{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.home-side{flex-direction:column;gap:14px;display:flex}.home-floor-title{align-items:center;gap:8px;display:flex}.home-floor{flex-direction:column;gap:11px;padding:14px 16px;display:flex}.home-quiet{color:var(--ink-3);font-size:12.5px;line-height:1.55}.home-live{align-items:center;gap:10px;display:flex}.home-live-name{font-size:13px;font-weight:500}.home-live-sub{color:var(--ink-4);font-size:12px}.home-channels{flex-direction:column;gap:12px;padding:14px 16px;display:flex}.home-channel-line{align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.home-channel-name{font-size:12.5px;font-weight:500}.home-channel-share{color:var(--ink-4);margin-left:auto;font-size:12px}.home-steps{padding:6px 8px 10px}.home-step{color:var(--ink);border-radius:9px;align-items:center;gap:10px;padding:8px;display:flex}.home-step:hover{background:var(--ground-side);color:var(--ink)}.home-step-open{cursor:pointer}.home-step-done{background:var(--green-dot);width:16px;height:16px;color:var(--on-accent);border-radius:50%;place-items:center;font-size:10px;display:grid}.home-step-todo{border:1.5px solid var(--line-hover-2);border-radius:50%;width:16px;height:16px}.home-step-name{flex:1;font-size:12.5px;font-weight:500}.home-step-name-done{color:var(--ink-4);font-weight:400;text-decoration:line-through}.home-step-action{color:var(--accent);font-size:12px;font-weight:500}@media (width<=900px){.home-split{grid-template-columns:minmax(0,1fr)}}.home-step-button{text-align:left;width:100%;font:inherit;background:0 0;border:0}.keys-form{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.keys-label-field{flex:1;min-width:200px}.keys-env-select{width:auto}.keys-form-note{color:var(--ink-4);flex-basis:100%;font-size:12.5px}.keys-minted-actions{gap:6px;margin-left:auto;display:flex}.keys-minted-warn{color:var(--amber);padding:10px 16px 12px;font-size:12.5px}.keys-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13.5px;font-weight:550;overflow:hidden}.keys-name-gone{color:var(--ink-4)}.keys-scopes{color:var(--ink-4);min-width:0;font-size:12.5px;line-height:1.5}.keys-revoke{visibility:hidden}.keys-row:hover .keys-revoke,.keys-revoke-sure,.keys-revoke:focus-within{visibility:visible}@media (hover:none){.keys-revoke{visibility:visible}}.prov-hint{color:var(--ink-4);margin-top:10px;font-size:12.5px;line-height:1.6}.prov-row{border-bottom:1px solid var(--line-3);align-items:center;gap:12px;padding:12px 16px;display:grid}.prov-row:hover{background:var(--ground-side)}.prov-name{text-overflow:ellipsis;min-width:0;font-size:13.5px;font-weight:550;overflow:hidden}.prov-note{min-width:0;color:var(--ink-3);align-items:center;gap:10px;font-size:12.5px;display:flex}.prov-note .ui-text-action{margin-left:auto}.prov-kinds{color:var(--ink-4);font-size:12px}.kb-base{align-items:center;gap:10px;margin-left:auto;display:flex}.kb-base-label{color:var(--ink-4);font-size:12.5px}.kb-base-input{background:var(--ground-5);color:var(--ink);border:1px solid #0000;border-radius:7px;padding:3px 9px;font-size:12.5px;font-weight:550}.kb-base-input:focus{border-color:var(--accent);box-shadow:var(--accent-ring)}.kb-here{flex-wrap:wrap;align-items:center;gap:12px;padding:14px 16px;display:flex}.kb-path{color:var(--ink-3);word-break:break-all;font-size:13px}.kb-count{font-size:13px;font-weight:550}.kb-figures{border-bottom:1px solid var(--line-3);gap:22px;padding:14px 16px;display:flex}.kb-figure-label{color:var(--ink-4);margin-bottom:4px;font-size:11.5px}.kb-figure{letter-spacing:-.6px;font-size:21px;font-weight:600}.kb-miss{border-top:1px solid var(--line-3);padding:11px 16px}.kb-miss-asks{color:var(--ink-2);font-size:13px}.kb-miss-why{color:var(--ink-4);margin-top:2px;font-size:12px}.mem-look{align-items:center;gap:8px;min-width:0;margin-left:auto;display:flex}.mem-look .ui-input{width:260px;max-width:100%}.mem-caller{font-size:13px;font-weight:550}.mem-fact{color:var(--ink-2);min-width:0;font-size:13px;line-height:1.5}.mem-gone .mem-fact,.mem-gone .mem-caller{color:var(--ink-6)}.mem-superseded{color:var(--ink-6);font-size:12px}.mem-category{text-align:right}.mem-goldens{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.mem-run{flex-direction:column;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.mem-say{color:var(--ink-3);margin:0;font-size:12.5px;line-height:1.55}.mem-figures{border-top:1px solid var(--line-2);gap:22px;padding:12px 16px;display:flex}.mem-figure-label{color:var(--ink-4);margin-bottom:4px;font-size:11.5px}.mem-figure{letter-spacing:-.4px;font-size:17px;font-weight:600}.mem-miss{border-top:1px solid var(--line-3);padding:10px 16px}.mem-miss-asks{color:var(--ink-2);font-size:13px}.mem-miss-why{color:var(--ink-4);margin-top:2px;font-size:12px}@media (width<=720px){.mem-goldens{grid-template-columns:minmax(0,1fr)}}.num-row{border-bottom:1px solid var(--line-3);flex-wrap:wrap;align-items:center;gap:12px;padding:13px 16px;display:flex}.num-number{font-size:14px;font-weight:550}.num-arrow{color:var(--ink-6);font-size:13px}.num-agent{color:var(--ink-2);font-size:13.5px}.num-remove,.num-end{margin-left:auto}.num-foot{color:var(--ink-4);padding:11px 16px;font-size:12.5px}.num-ways{margin-left:auto}.num-ways .ui-segment:disabled{cursor:default;opacity:.5}.num-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:14px 16px;display:grid}.num-fields-3{grid-template-columns:repeat(3,minmax(0,1fr))}.num-actions{flex-wrap:wrap;align-items:center;gap:12px;padding:0 16px 14px;display:flex}.num-note{color:var(--ink-4);font-size:12.5px}.num-plan{border-top:1px solid var(--line-2);background:var(--ground-side);padding:14px 16px}.num-plan-done{background:var(--ground)}.num-plan-title{margin-bottom:10px;font-size:13px;font-weight:550}.num-steps{flex-direction:column;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.num-steps li{font:12.5px var(--face-fixed);color:var(--ink-2);gap:10px;line-height:1.5;display:flex}.num-step-kind{min-width:70px;color:var(--accent-hover);flex:none;font-weight:500}.num-step-text{word-break:break-word;min-width:0}.num-plan-moves{gap:8px;display:flex}.num-carrier{align-items:center;gap:12px;padding:14px 16px;display:flex}.num-kind{color:var(--accent-hover);background:var(--accent-soft);border-radius:7px;flex:none;padding:3px 9px;font-size:11.5px;font-weight:600}.num-carrier-standing{flex:none;font-size:13.5px;font-weight:500}.num-carrier-account{min-width:0;color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.num-carrier-moves{flex:none;gap:8px;margin-left:auto;display:flex}.num-body{color:var(--ink-2);padding:14px 16px;font-size:13.5px;line-height:1.6}@media (width<=720px){.num-fields,.num-fields-3{grid-template-columns:minmax(0,1fr)}}.num-outbound-group{padding:0 16px 14px}.num-outbound-title{color:var(--ink-2);margin-bottom:3px;font-size:12.5px;font-weight:600}.num-outbound-say{color:var(--ink-4);margin-bottom:10px;font-size:12.5px}.num-fields-4{grid-template-columns:minmax(0,1.4fr) 110px minmax(0,1fr) minmax(0,1fr)}.num-fields-flush{padding:0}@media (width<=720px){.num-fields-4{grid-template-columns:minmax(0,1fr)}}.num-add{border-top:1px solid var(--line-2);background:var(--ground-side)}.num-add-head{align-items:center;gap:10px;padding:12px 16px 0;display:flex}.num-add-close{color:var(--ink-4);margin-left:auto}.num-added{border-top:1px solid var(--line-2);color:var(--green);padding:12px 16px;font-size:13px}.num-hero{flex-direction:column;gap:8px;max-width:560px;padding:28px 24px 26px;display:flex}.num-hero-title{letter-spacing:-.4px;font-size:18px;font-weight:650}.num-hero-say{color:var(--ink-3);margin:0;font-size:13.5px;line-height:1.6}.num-hero-missing{color:var(--amber);margin:0;font-size:13px;line-height:1.6}.num-hero-move{flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px;display:flex}.num-on{color:var(--ink-2);align-items:center;gap:9px;font-size:13.5px;display:flex}.num-on b{color:var(--green);font-weight:600}.num-placed{color:var(--ink-2);font-size:13px}.num-placed a{color:var(--accent);font-weight:500}.num-refused{padding:0 16px 14px}.num-limits{align-items:flex-start;gap:16px;padding:2px 4px;display:flex}.num-limits>div{flex:1;min-width:0}.num-limits-say{color:var(--ink-3);font-size:12.5px;line-height:1.6}.num-limits-who{color:var(--ink-5);margin-top:2px;font-size:12px}.pipe-legs{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;display:grid}.pipe-leg-head{border-bottom:1px solid var(--line-2);background:var(--ground-side);align-items:center;gap:8px;padding:11px 15px;display:flex}.pipe-leg-vendor{font-size:13px;font-weight:600}.pipe-leg-job{color:var(--ink-4);margin-left:auto;font-size:11.5px}.pipe-leg-body{flex-direction:column;gap:12px;padding:14px 15px;display:flex}.pipe-field+.pipe-field{border-top:1px solid var(--line-2);padding-top:12px}.pipe-label{color:var(--ink-4);margin-bottom:3px;font-size:11.5px}.pipe-value{word-break:break-word;font-size:13.5px;font-weight:550}.pipe-note{color:var(--ink-4);margin:3px 0 0;font-size:12.5px;line-height:1.5}.pipe-refused{color:var(--red);font-size:12.5px;line-height:1.5}.pipe-anatomy{padding:6px 16px 14px}.pipe-turn-row{border-bottom:1px solid var(--line-3);grid-template-columns:120px minmax(0,1fr) 72px;align-items:center;gap:12px;padding:11px 0;display:grid}.pipe-turn-row-last{border-bottom:0}.pipe-turn-label{font-size:13px;font-weight:500}.pipe-track{background:var(--ground-5);border-radius:99px;height:7px;display:block;overflow:hidden}.pipe-bar{border-radius:99px;height:100%;display:block}.pipe-ms{text-align:right;font-size:12.5px;font-weight:500}.pipe-ms-none{color:var(--ink-6);font-weight:400}.pipe-controls{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px 16px;padding:14px 16px;display:grid}.pipe-control-wide{grid-column:1/-1}.pipe-stage{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.pipe-save{flex-wrap:wrap;align-items:center;gap:12px;padding:0 16px 14px;display:flex}.pipe-save-note{color:var(--ink-4);font-size:12.5px}.pipe-save-error{color:var(--red);font-size:12.5px}.pipe-turned{align-items:center;gap:12px;padding:11px 16px;display:flex}.pipe-turned+.pipe-turned{border-top:1px solid var(--line-3)}.pipe-turned-field{width:110px;color:var(--ink-4);flex:none;font-size:12.5px}.pipe-turned-value{word-break:break-word;flex:1;min-width:0;font-size:13px}.terminal{flex:1;padding:12vh 22px 48px;overflow:auto}.terminal-card{border:1px solid var(--line);background:var(--ground);max-width:460px;box-shadow:var(--shadow-card);border-radius:14px;margin:0 auto;padding:26px 24px 24px}.terminal-mark{width:auto;height:22px;margin-bottom:18px;display:block}.terminal-title{letter-spacing:-.5px;margin:0 0 7px;font-size:22px;font-weight:650}.terminal-lede{color:var(--ink-3);margin:0 0 20px;font-size:14px;line-height:1.55}.terminal-refused{color:var(--red);margin:14px 0 0;font-size:13px;line-height:1.5}.team-invite{border-bottom:1px solid var(--line-2);background:var(--ground-side);padding:14px 16px}.team-roles{color:var(--ink-4);flex-wrap:wrap;align-items:baseline;gap:4px;margin-top:10px;font-size:12.5px;line-height:1.6;display:flex}.team-invite-close{margin-left:auto}.team-editable{text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px dashed #0000;justify-self:start;max-width:100%;padding:0;font-size:13px}.team-editable:hover{border-bottom-color:var(--line-hover)}.team-sure{color:var(--ink-3);font-size:12.5px}.team-role{color:var(--ink-2)}.team-agents{color:var(--ink-4)}.team-link-moves{gap:8px;margin-left:auto;display:flex}.team-role-opens{line-height:1.5}.team-sso-values{flex-direction:column;gap:9px;padding:14px 16px;display:flex}.team-sso-form{flex-direction:column;gap:12px;padding:14px 16px;display:flex}.team-sso-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:12px;display:grid}.team-sso-required{align-items:center;gap:10px;height:36px;display:flex}.team-sso-required-words{color:var(--ink-2);flex:1;font-size:13px}.team-sso-moves{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.team-sso-redirect{border-top:1px solid var(--line-2)}.team-sso-redirect-head{justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;display:flex}@media (width<=720px){.team-sso-grid{grid-template-columns:minmax(0,1fr)}}.usage-call{color:var(--accent);min-width:0;font-size:13px}.usage-right{text-align:right}.usage-cost{text-align:right;white-space:nowrap;font-size:13px;font-weight:500}.usage-bar{align-self:center;padding:0 14px}.widget-copy{margin-left:auto}.widget-endpoints{border-top:1px solid var(--line-2);color:var(--ink-4);padding:11px 16px 13px;font-size:12.5px;line-height:1.6}.widget-endpoints a{color:var(--accent)}.widget-split{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:14px;display:grid}.widget-fields{flex-direction:column;gap:13px;padding:14px 16px;display:flex}.widget-pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.widget-accent-label{color:var(--ink-2);margin-bottom:7px;font-size:12.5px;font-weight:500}.widget-accents{gap:7px;display:flex}.widget-accent{cursor:pointer;border:0;border-radius:8px;width:26px;height:26px;padding:0}.widget-toggle{align-items:center;gap:10px;display:flex}.widget-toggle-label{color:var(--ink-2);flex:1;font-size:13px}.widget-preview{border:1px solid var(--line);background:var(--ground-side);border-radius:12px;flex-direction:column;align-items:center;gap:12px;min-width:0;padding:16px;display:flex}.widget-preview-label{color:var(--ink-4);font-size:11.5px}.widget-stage{justify-content:center;width:100%;min-height:120px;display:flex}.widget-open{color:var(--accent);font-size:12.5px;font-weight:500}.widget-blank{background:var(--ground);height:100vh;position:relative}.widget-blank-mark{color:var(--ink-6);font-size:11px;position:absolute;top:12px;left:16px}.widget-blank-refused{color:var(--red);margin:0;font-size:12.5px;position:absolute;top:36px;left:16px}@media (width<=760px){.widget-split,.widget-pair{grid-template-columns:minmax(0,1fr)}}.ring-stack{right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:60;pointer-events:none;flex-direction:column;gap:10px;width:min(360px,100vw - 32px);display:flex;position:fixed}.ring{pointer-events:auto;border:1px solid var(--line);background:var(--ground);border-radius:14px;animation:.28s cubic-bezier(.2,.9,.3,1.2) ring-arrive;position:relative;box-shadow:0 1px 2px #1010140a,0 12px 32px -8px #1010142e}.ring:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:12px;bottom:12px;left:0}.ring-ended{opacity:.7}.ring-ended:before{background:var(--line-muted)}@keyframes ring-arrive{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:none}}.ring-body{text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--ink);background:0 0;border:0;border-radius:14px;align-items:center;gap:12px;padding:13px 16px;display:flex}.ring-body:hover{background:var(--ground-tint)}.ring-icon{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:50%;flex:none;place-items:center;display:grid;position:relative}.ring-icon:after{content:"";border:2px solid var(--accent);border-radius:50%;animation:1.6s ease-out infinite ring-pulse;position:absolute;inset:0}.ring-icon-ended{background:var(--ground-5);color:var(--ink-4)}.ring-icon-ended:after{display:none}@keyframes ring-pulse{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.55)}}.ring-words{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.ring-kicker{letter-spacing:.04em;text-transform:uppercase;color:var(--accent);font-size:11px;font-weight:600}.ring-ended .ring-kicker{color:var(--ink-4)}.ring-who{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.ring-sub{color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.ring-top{align-items:baseline;gap:8px;display:flex}.ring-watch{color:var(--accent);flex:none;margin-left:auto;font-size:12px;font-weight:550}.ring-close{border:1px solid var(--line);background:var(--ground);width:24px;height:24px;color:var(--ink-5);cursor:pointer;border-radius:50%;font-size:17px;line-height:1;display:none;position:absolute;top:-9px;right:-9px;box-shadow:0 2px 6px #1010141f}.ring:hover .ring-close,.ring-close:focus-visible{place-items:center;display:grid}.ring-close:hover{background:var(--ground-5);color:var(--ink)}@media (prefers-reduced-motion:reduce){.ring,.ring-icon:after{animation:none}}.frame{background:var(--ground);min-height:100vh;display:flex}.frame-main{flex-direction:column;flex:1;min-width:0;height:100vh;display:flex;overflow:hidden}.frame-screen{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.side{width:var(--side);border-right:1px solid var(--line);background:var(--ground-side);flex-direction:column;flex:none;height:100vh;display:flex;position:sticky;top:0}.side-folded{width:var(--side-folded)}.side-workspace-wrap{flex-direction:column;display:flex}.side-workspace{cursor:pointer;text-align:left;color:var(--ink);background:0 0;border:0;border-radius:9px;align-items:center;gap:9px;margin:12px 10px 8px;padding:7px 8px;display:flex}.side-workspace:hover{background:var(--ground-5)}.side-folded .side-workspace{justify-content:center;margin:12px 6px 8px;padding:7px 0}.side-tile{background:var(--accent);width:24px;height:24px;color:var(--on-accent);border-radius:7px;flex:none;place-items:center;font-size:11px;font-weight:600;display:grid}.side-label{flex:1;min-width:0}.side-folded .side-label,.side-folded .side-caret,.side-folded .side-kbd,.side-folded .side-badge{display:none}.side-org{letter-spacing:-.1px;white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;display:block;overflow:hidden}.side-org-sub{color:var(--ink-4);font-size:11.5px;display:block}.side-caret{color:var(--ink-6);flex:none;font-size:11px}.side-search-wrap{padding:0 10px 10px}.side-folded .side-search-wrap{padding:0 6px 10px}.side-search{border:1px solid var(--line-control);background:var(--ground);width:100%;height:34px;color:var(--ink-4);cursor:pointer;text-align:left;border-radius:9px;align-items:center;gap:8px;padding:0 10px;font-size:13px;display:flex}.side-search:hover{border-color:var(--line-hover);color:var(--ink-2)}.side-folded .side-search{justify-content:center;padding:0}.side-kbd{color:var(--ink-6);flex:none;font-size:11px}.side-nav{flex:1;padding:0 10px;overflow:auto}.side-group{color:var(--ink-4);padding:14px 9px 5px;font-size:11.5px;font-weight:500}.side-group-first{padding-top:6px}.side-folded .side-group{background:var(--line-control);height:1px;margin:12px 8px 8px;padding:0;font-size:0;overflow:hidden}.side-link{color:var(--ink-2);border-radius:9px;align-items:center;gap:10px;margin-bottom:1px;padding:7px 9px;font-size:13.5px;font-weight:450;display:flex}.side-link:hover{color:var(--ink-2);background:var(--ground-5)}.side-folded .side-link{justify-content:center;padding:8px 0}.side-link-on,.side-link-on:hover{background:var(--accent-selected);color:var(--accent-hover);font-weight:550}.side-icon{color:var(--ink-4);flex:none;place-items:center;display:grid}.side-link-on .side-icon{color:var(--accent)}.side-icon-live{color:var(--green-dot)}.side-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.side-name-agent{font-size:13px}.side-folded .side-name{display:none}.side-badge{color:var(--ink-4);flex:none;font-size:11.5px}.side-badge-live{color:var(--green);background:var(--green-soft);border-radius:99px;padding:1px 7px;font-weight:550}.side-none{color:var(--ink-6);padding:4px 9px;font-size:12.5px}.side-foot{border-top:1px solid var(--line);align-items:center;gap:9px;padding:10px;display:flex}.side-folded .side-foot{flex-direction:column}.side-user{flex:1;align-items:center;gap:9px;min-width:0;display:flex}.side-folded .side-user{flex:none}.side-user-avatar{background:var(--ink);width:26px;height:26px;color:var(--on-accent);border-radius:8px;flex:none;place-items:center;font-size:10.5px;font-weight:600;display:grid}.side-user-name{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:500;display:block;overflow:hidden}.side-user-role{color:var(--ink-4);font-size:11.5px;display:block}.side-fold{border:1px solid var(--line-control);background:var(--ground);width:28px;height:28px;color:var(--ink-4);cursor:pointer;border-radius:8px;flex:none;place-items:center;display:grid}.side-fold:hover{border-color:var(--line-hover);color:var(--ink)}.side-orgs{z-index:40;background:var(--ground);border:1px solid var(--line-control);max-height:60vh;box-shadow:var(--shadow-pop);border-radius:12px;padding:6px;position:absolute;top:54px;left:10px;right:10px;overflow:auto}.side-orgs-label{color:var(--ink-4);padding:7px 8px 5px;font-size:11.5px;font-weight:500}.side-org-row{cursor:pointer;text-align:left;width:100%;color:var(--ink);background:0 0;border:0;border-radius:9px;align-items:center;gap:9px;padding:7px 8px;font-size:13px;display:flex}.side-org-row:hover{background:var(--ground-side)}.side-org-row:disabled{cursor:default}.side-org-role{color:var(--ink-4);margin-left:auto;font-size:11.5px}.top{height:var(--head);border-bottom:1px solid var(--line);background:var(--ground);z-index:5;flex:none;align-items:center;gap:10px;padding:0 22px;display:flex}.top-crumb{color:var(--ink-6);white-space:nowrap;font-size:13px}.top-title{letter-spacing:-.2px;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.top-right{align-items:center;gap:8px;margin-left:auto;display:flex;position:relative}.top-leave{border:1px solid var(--line-control);background:var(--ground);height:30px;color:var(--ink-2);cursor:pointer;border-radius:8px;padding:0 11px;font-size:12.5px;font-weight:500}.top-leave:hover{border-color:var(--line-hover)}.switch-trigger{border:1px solid var(--line-control);background:var(--ground);cursor:pointer;height:30px;color:var(--ink);border-radius:8px;align-items:center;gap:8px;padding:0 9px;display:flex}.switch-trigger-open{border-color:var(--accent-line)}.switch-agent{white-space:nowrap;font-size:12.5px;font-weight:550}.switch-caret{color:var(--ink-6);font-size:10px}.switch-panel{background:var(--ground);border:1px solid var(--line-control);width:384px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-pop);z-index:40;border-radius:14px;position:absolute;top:38px;right:0;overflow:hidden}.switch-who{border-bottom:1px solid var(--line-2);align-items:center;gap:12px;padding:15px 16px;display:flex}.switch-who-name{letter-spacing:-.2px;font-size:14px;font-weight:600}.switch-who-sub{color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.switch-where{border-bottom:1px solid var(--line-2);flex-direction:column;gap:11px;padding:13px 16px;display:flex}.switch-label{color:var(--ink-4);margin-bottom:6px;font-size:11.5px;font-weight:500}.switch-choices{flex-wrap:wrap;gap:5px;display:flex}.switch-note{color:var(--ink-4);margin-top:6px;font-size:12px;line-height:1.5}.switch-agents{max-height:50vh;padding:13px 16px 15px;overflow:auto}.switch-agents .switch-label{margin-bottom:9px}.switch-list{flex-direction:column;gap:7px;display:flex}.switch-card{border:1px solid var(--line-2);background:var(--ground-side);cursor:pointer;text-align:left;border-radius:10px;align-items:center;gap:10px;width:100%;padding:9px 11px;display:flex}.switch-card:hover{border-color:var(--accent-line);background:var(--ground-tint)}.switch-card:disabled{cursor:default;border-color:var(--line-2);background:var(--ground-side)}.switch-card-here{border-color:var(--accent-line);background:var(--ground-tint)}.switch-card-name{color:var(--ink);font-size:13.5px;font-weight:600;display:block}.switch-card-sub{color:var(--ink-4);font-size:12px;display:block}.switch-card-open{color:var(--accent);flex:none;font-size:12.5px;font-weight:550}.switch-card:disabled .switch-card-open{color:var(--ink-6)}.switch-looking{border-bottom:1px solid var(--line-2);color:var(--ink-2);background:var(--amber-tint);align-items:center;gap:10px;padding:11px 16px;font-size:12.5px;display:flex}.switch-empty{color:var(--ink-4);font-size:12.5px;line-height:1.55}.agenthead{flex-wrap:wrap;flex:none;align-items:center;gap:14px;padding:12px 22px 0;display:flex}.agenthead-name{align-items:center;gap:9px;display:flex}.agenthead-slug{letter-spacing:-.3px;font-size:15px;font-weight:650}.agenthead-status{border-radius:99px;padding:2px 8px;font-size:12px;font-weight:500}.agenthead-doors{color:var(--ink-4);font-size:12.5px}.agenttabs{border-bottom:1px solid var(--line);flex:none;gap:2px;padding:10px 22px 0;display:flex;overflow-x:auto}.agenttab{white-space:nowrap;height:36px;color:var(--ink-3);background:0 0;border-bottom:2px solid #0000;flex:none;align-items:center;margin-bottom:-1px;padding:0 12px;font-size:13px;font-weight:450;display:flex}.agenttab:hover{color:var(--ink)}.agenttab-on,.agenttab-on:hover{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.missing{max-width:640px;color:var(--ink-3);padding:26px 22px;font-size:13.5px;line-height:1.6}.palette-veil{z-index:60;background:#1010143d;justify-content:center;align-items:flex-start;padding:12vh 16px 16px;display:flex;position:fixed;inset:0}.palette{background:var(--ground);border:1px solid var(--line-control);width:560px;max-width:100%;box-shadow:var(--shadow-pop);border-radius:14px;overflow:hidden}.palette-input-row{border-bottom:1px solid var(--line-2);color:var(--ink-4);align-items:center;gap:10px;padding:0 16px;display:flex}.palette-input{min-width:0;height:48px;color:var(--ink);background:0 0;border:0;flex:1;font-size:14px}.palette-list{max-height:52vh;padding:6px;overflow:auto}.palette-group{color:var(--ink-4);padding:8px 10px 4px;font-size:11.5px;font-weight:500}.palette-item{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:0;border-radius:9px;align-items:center;gap:10px;padding:8px 10px;font-size:13.5px;display:flex}.palette-item-on{background:var(--accent-selected);color:var(--accent-hover)}.palette-item-sub{color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;max-width:55%;margin-left:auto;font-size:12px;overflow:hidden}.palette-none{color:var(--ink-4);padding:18px 12px;font-size:13px}@media (width<=720px){.side:not(.side-folded){width:var(--side-folded)}.side:not(.side-folded) .side-label,.side:not(.side-folded) .side-caret,.side:not(.side-folded) .side-kbd,.side:not(.side-folded) .side-badge,.side:not(.side-folded) .side-name{display:none}.side:not(.side-folded) .side-link{justify-content:center;padding:8px 0}.side:not(.side-folded) .side-group{background:var(--line-control);height:1px;margin:12px 8px 8px;padding:0;font-size:0;overflow:hidden}.side:not(.side-folded) .side-foot{flex-direction:column}.top{padding:0 16px}.switch-agent,.top-crumb{display:none}}
Binary file
@@ -4,15 +4,15 @@
4
4
  <meta charset="utf-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
6
  <title>Pinecall console</title>
7
- <link rel="icon" type="image/png" href="/logo-mark.png" />
7
+ <link rel="icon" type="image/png" href="/favicon.png" />
8
8
  <link rel="preconnect" href="https://fonts.googleapis.com" />
9
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
10
10
  <link
11
- href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap"
11
+ href="https://fonts.googleapis.com/css2?family=Inter:wght@400;450;500;600;700&display=swap"
12
12
  rel="stylesheet"
13
13
  />
14
- <script type="module" crossorigin src="/assets/index-D9StTnoH.js"></script>
15
- <link rel="stylesheet" crossorigin href="/assets/index-BUlGAwqn.css">
14
+ <script type="module" crossorigin src="/assets/index-DhcpHPdk.js"></script>
15
+ <link rel="stylesheet" crossorigin href="/assets/index-iylvEP0_.css">
16
16
  </head>
17
17
  <body>
18
18
  <div id="root"></div>
@@ -1 +1 @@
1
- {"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../../src/cli/world.ts"],"names":[],"mappings":"AAAA,qGAAqG;AAErG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAkB,KAAK,GAAG,EAAE,MAAM,aAAa,CAAC;AAEvD,oGAAoG;AACpG,eAAO,MAAM,OAAO,YAAY,CAAC;AAEjC,uFAAuF;AACvF,eAAO,MAAM,UAAU,eAAe,CAAC;AAIvC;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ;IAAK,GAAG;QAAI,IAAI,EAAE,QAAQ;;CAAa,CAAC;AAE7D,+FAA+F;AAC/F,wBAAsB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAEvD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAkBjG;AAED,kGAAkG;AAClG,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAEhE"}
1
+ {"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../../src/cli/world.ts"],"names":[],"mappings":"AAAA,qGAAqG;AAErG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAkB,KAAK,GAAG,EAAE,MAAM,aAAa,CAAC;AAEvD,oGAAoG;AACpG,eAAO,MAAM,OAAO,YAAY,CAAC;AAEjC,uFAAuF;AACvF,eAAO,MAAM,UAAU,eAAe,CAAC;AAIvC;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ;IAAK,GAAG;QAAI,IAAI,EAAE,QAAQ;;CAAa,CAAC;AAE7D,+FAA+F;AAC/F,wBAAsB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAEvD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAkBjG;AAED,kGAAkG;AAClG,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAEhE"}
package/dist/cli/world.js CHANGED
@@ -1,4 +1,5 @@
1
1
  /** Which world a verb works in. The KEY decides it; `--env` is how a person says they know which. */
2
+ import { theChosenWorld } from "./profiles.js";
2
3
  import { refusal, whoIs } from "./whoami.js";
3
4
  /** The world a laptop is in: what is being written, held per person, nobody's customers calling. */
4
5
  export const SANDBOX = "sandbox";
@@ -29,7 +30,7 @@ export function notThisWorld(verb, who, said) {
29
30
  if (said !== undefined && !WORLDS.includes(said)) {
30
31
  return `--env takes ${WORLDS.join(" or ")}, not ${JSON.stringify(said)}`;
31
32
  }
32
- const wanted = said ?? SANDBOX;
33
+ const wanted = said ?? theChosenWorld() ?? SANDBOX;
33
34
  if (who.env === wanted)
34
35
  return undefined;
35
36
  if (said !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"world.js","sourceRoot":"","sources":["../../src/cli/world.ts"],"names":[],"mappings":"AAAA,qGAAqG;AAGrG,OAAO,EAAE,OAAO,EAAE,KAAK,EAAY,MAAM,aAAa,CAAC;AAEvD,oGAAoG;AACpG,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC;AAEjC,uFAAuF;AACvF,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAC;AAEvC,MAAM,MAAM,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAErC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,EAAE,CAAC;AAE7D,+FAA+F;AAC/F,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAU;IACvC,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,GAAQ,EAAE,IAAwB;IAC3E,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,OAAO,eAAe,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3E,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,IAAI,OAAO,CAAC;IAC/B,IAAI,GAAG,CAAC,GAAG,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CACL,SAAS,IAAI,aAAa,IAAI,wBAAwB,GAAG,CAAC,GAAG,6BAA6B;cACxF,0BAA0B;cAC1B,qDAAqD,IAAI,oCAAoC,CAChG,CAAC;IACJ,CAAC;IACD,OAAO,CACL,kBAAkB,GAAG,CAAC,GAAG,oBAAoB,IAAI,qBAAqB,OAAO,uBAAuB;UAClG,gBAAgB,IAAI,UAAU,GAAG,CAAC,GAAG,gEAAgE;UACrG,yFAAyF,CAC5F,CAAC;AACJ,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,MAAe;IACtD,OAAO,cAAc,IAAI,iDAAiD,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;AAC9F,CAAC"}
1
+ {"version":3,"file":"world.js","sourceRoot":"","sources":["../../src/cli/world.ts"],"names":[],"mappings":"AAAA,qGAAqG;AAGrG,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAY,MAAM,aAAa,CAAC;AAEvD,oGAAoG;AACpG,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC;AAEjC,uFAAuF;AACvF,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAC;AAEvC,MAAM,MAAM,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAErC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,EAAE,CAAC;AAE7D,+FAA+F;AAC/F,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAU;IACvC,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,GAAQ,EAAE,IAAwB;IAC3E,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,OAAO,eAAe,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3E,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,IAAI,cAAc,EAAE,IAAI,OAAO,CAAC;IACnD,IAAI,GAAG,CAAC,GAAG,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CACL,SAAS,IAAI,aAAa,IAAI,wBAAwB,GAAG,CAAC,GAAG,6BAA6B;cACxF,0BAA0B;cAC1B,qDAAqD,IAAI,oCAAoC,CAChG,CAAC;IACJ,CAAC;IACD,OAAO,CACL,kBAAkB,GAAG,CAAC,GAAG,oBAAoB,IAAI,qBAAqB,OAAO,uBAAuB;UAClG,gBAAgB,IAAI,UAAU,GAAG,CAAC,GAAG,gEAAgE;UACrG,yFAAyF,CAC5F,CAAC;AACJ,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,MAAe;IACtD,OAAO,cAAc,IAAI,iDAAiD,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;AAC9F,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pinecall",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Write an agent as a class: its fields are the state, its @tool methods are the model's verbs, and its docstrings are the prompt",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Pinecall <hello@pinecall.io>",
@@ -42,7 +42,7 @@
42
42
  "tsconfig.tenant.json"
43
43
  ],
44
44
  "dependencies": {
45
- "@pinecall/protocol": "^0.1.0",
45
+ "@pinecall/protocol": "^0.3.0",
46
46
  "oxc-parser": "^0.148.0",
47
47
  "tsx": "^4.20.6",
48
48
  "ws": "^8.21.3",
@@ -1,25 +0,0 @@
1
- /** `pinecall signup`: an org on Pinecall's cloud, made here, and its first key kept like a login's. */
2
- import type { Group } from "./groups.js";
3
- /** What the gateway answers a sign-up: the key once, whose it is, and the way into the console. */
4
- interface SignedUp {
5
- key: string;
6
- org: string;
7
- slug: string;
8
- name: string | null;
9
- code: string;
10
- }
11
- export declare const group: Group;
12
- /** What signup can be told besides the argv: where to print, and how the password arrives. Tests only. */
13
- export interface Making {
14
- out?: NodeJS.WritableStream;
15
- err?: NodeJS.WritableStream;
16
- env?: NodeJS.ProcessEnv;
17
- /** How the password is obtained. A test hands one in rather than driving a terminal. */
18
- password?: () => Promise<string>;
19
- }
20
- /** Read what the org will be, make it at the gateway, and keep the key it answers. */
21
- export declare function signup(argv: string[], how?: Making): Promise<number>;
22
- /** The one line that says what now exists and that this terminal is holding its key. */
23
- export declare function madeLine(made: SignedUp, url: string): string;
24
- export {};
25
- //# sourceMappingURL=signup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signup.d.ts","sourceRoot":"","sources":["../../src/cli/signup.ts"],"names":[],"mappings":"AAAA,uGAAuG;AAMvG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAiCzC,mGAAmG;AACnG,UAAU,QAAQ;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,KAAK,EAAE,KAkBnB,CAAC;AAEF,0GAA0G;AAC1G,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAClC;AAED,sFAAsF;AACtF,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAgD9E;AAoBD,wFAAwF;AACxF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAG5D"}
@@ -1,122 +0,0 @@
1
- /** `pinecall signup`: an org on Pinecall's cloud, made here, and its first key kept like a login's. */
2
- import { parseArgs } from "node:util";
3
- import { pinecallHome, writeGateway } from "./credentials.js";
4
- import { CLOUD_URL } from "./env.js";
5
- import { aLineOfStdin, typedInSilence } from "./secret.js";
6
- import { asked, discovered } from "./testing/gateway.js";
7
- import { refusal } from "./whoami.js";
8
- const USAGE = `usage: pinecall signup [<gateway-url>] --org <slug> --email <you@…> --person "<your name>"
9
- [--name "<Org Name>"] [--password-stdin]`;
10
- // Asked for, never echoed, never a flag: a password on a command line is a password in the
11
- // shell's history. The same rule `login` holds its key to.
12
- const PROMPT = "Password (12 characters at least): ";
13
- // The door a stranger knocks at, and what it answers: the one shape a key travels in, plus the
14
- // org's slug, the member and a one-use code for a browser. runtime docs/protocol/people.md.
15
- const SIGNUP = "/v1/signup";
16
- // The same person's key in the other world. The sign-up answers a production one — every door of
17
- // the org, and not `app`, because a deployed agent is held by a machine — and a terminal is a
18
- // laptop: what it keeps is the sandbox key, which is the world `pinecall run` answers in.
19
- const THE_OTHER_WORLD = "/v1/login/env";
20
- const SANDBOX = "sandbox";
21
- // Said when the second world could not be minted: the org exists and the production key is kept,
22
- // so nothing is lost, but `run` will be refused until the person holds a sandbox key.
23
- const ONE_WORLD_ONLY = (url) => `kept the production key: ${url} would not mint a sandbox one, and \`pinecall run\` needs it`;
24
- // Whether that door is open here is the gateway's own fact, asked before anything else: a person
25
- // should not type a password for a door that will refuse it. The gateway's refusal names the
26
- // setting; this says the same thing before the typing rather than after.
27
- const SHUT = (url) => `${url} takes no sign-ups: its operator opens them with PINECALL_SIGNUP, or makes the org and invites you — then \`pinecall login ${url}\``;
28
- export const group = {
29
- purpose: "make an org on Pinecall's cloud and keep its first key",
30
- usage: `${USAGE}
31
-
32
- Makes the org with you as its admin. What it may do is whatever the people who run that
33
- gateway decided for a new one: on a box of your own, everything; on a hosted one, its trial.
34
- The gateway is ${CLOUD_URL} unless another is named. The password is asked for without
35
- echoing it, or read from one line of stdin with --password-stdin.
36
-
37
- What this terminal keeps is the SANDBOX key, in ~/.pinecall/credentials (0600) under that
38
- gateway, so \`pinecall run\` and \`pinecall chat\` work straight after and nothing has to be
39
- exported: a laptop is where things are written. The console link it prints signs the browser
40
- in to production, which is where the org's numbers, people and usage are. What answers a
41
- production number is a key issued for a machine — \`pinecall keys issue\` — and never a laptop.
42
-
43
- A gateway that is a box of its own takes no sign-up and says so: there, an operator makes the
44
- org and invites you, and you arrive with \`pinecall login\`.`,
45
- run: signup,
46
- };
47
- /** Read what the org will be, make it at the gateway, and keep the key it answers. */
48
- export async function signup(argv, how = {}) {
49
- const out = how.out ?? process.stdout;
50
- const err = how.err ?? process.stderr;
51
- const { values, positionals } = parseArgs({
52
- args: argv,
53
- allowPositionals: true,
54
- options: {
55
- org: { type: "string" },
56
- name: { type: "string" },
57
- email: { type: "string" },
58
- person: { type: "string" },
59
- "password-stdin": { type: "boolean", default: false },
60
- },
61
- });
62
- const url = positionals[0] ?? CLOUD_URL;
63
- const missing = ["org", "email", "person"].filter((one) => values[one] === undefined);
64
- if (missing.length > 0) {
65
- err.write(`${USAGE}\n`);
66
- err.write(`missing: ${missing.map((one) => `--${one}`).join(" ")}\n`);
67
- return 2;
68
- }
69
- if (!(await discovered(url)).signup) {
70
- err.write(`${SHUT(url)}\n`);
71
- return 1;
72
- }
73
- const password = (await (how.password ?? (values["password-stdin"] === true ? aLineOfStdin : () => typedInSilence(PROMPT, out)))()).trim();
74
- if (password === "") {
75
- err.write("no password was typed: nothing was made\n");
76
- return 2;
77
- }
78
- let made;
79
- try {
80
- // No key opens this door: it is the one that mints the first one.
81
- made = await asked({ url, apiKey: "" }, SIGNUP, {
82
- method: "POST",
83
- body: { org: values.org, name: values.name, email: values.email, person: values.person, password, device: "cli" },
84
- });
85
- }
86
- catch (refused) {
87
- err.write(`${refusal(refused)}\n`);
88
- return 1;
89
- }
90
- const environment = how.env ?? process.env;
91
- const laptop = await theSandboxKey(url, made.key);
92
- if (laptop === undefined)
93
- err.write(`${ONE_WORLD_ONLY(url)}\n`);
94
- writeGateway(url, { api_key: laptop ?? made.key, org: made.org }, pinecallHome(environment));
95
- out.write(`${madeLine(made, url)}\n`);
96
- out.write(`console ${url.replace(/\/$/, "")}/?login=${encodeURIComponent(made.code)} (opens within five minutes, once)\n`);
97
- return 0;
98
- }
99
- /**
100
- * The sandbox key, or nothing at all.
101
- *
102
- * A refusal here is not the sign-up failing: the org is made and its production key is in hand.
103
- * So it is answered as an absence and said on stderr, rather than thrown over an org that exists.
104
- */
105
- async function theSandboxKey(url, key) {
106
- try {
107
- const minted = await asked({ url, apiKey: key }, THE_OTHER_WORLD, {
108
- method: "POST",
109
- body: { env: SANDBOX },
110
- });
111
- return minted.key;
112
- }
113
- catch {
114
- return undefined;
115
- }
116
- }
117
- /** The one line that says what now exists and that this terminal is holding its key. */
118
- export function madeLine(made, url) {
119
- const who = made.name === null ? "its admin" : made.name;
120
- return `created org ${made.slug} on ${url} — signed in as ${who}, sandbox key kept in ~/.pinecall/credentials`;
121
- }
122
- //# sourceMappingURL=signup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signup.js","sourceRoot":"","sources":["../../src/cli/signup.ts"],"names":[],"mappings":"AAAA,uGAAuG;AAEvG,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,KAAK,GAAG;gEACkD,CAAC;AAEjE,2FAA2F;AAC3F,2DAA2D;AAC3D,MAAM,MAAM,GAAG,qCAAqC,CAAC;AAErD,+FAA+F;AAC/F,4FAA4F;AAC5F,MAAM,MAAM,GAAG,YAAY,CAAC;AAE5B,iGAAiG;AACjG,8FAA8F;AAC9F,0FAA0F;AAC1F,MAAM,eAAe,GAAG,eAAe,CAAC;AACxC,MAAM,OAAO,GAAG,SAAS,CAAC;AAE1B,iGAAiG;AACjG,sFAAsF;AACtF,MAAM,cAAc,GAAG,CAAC,GAAW,EAAU,EAAE,CAC7C,4BAA4B,GAAG,8DAA8D,CAAC;AAEhG,iGAAiG;AACjG,6FAA6F;AAC7F,yEAAyE;AACzE,MAAM,IAAI,GAAG,CAAC,GAAW,EAAU,EAAE,CACnC,GAAG,GAAG,8HAA8H,GAAG,IAAI,CAAC;AAW9I,MAAM,CAAC,MAAM,KAAK,GAAU;IAC1B,OAAO,EAAE,wDAAwD;IACjE,KAAK,EAAE,GAAG,KAAK;;;;mBAIE,SAAS;;;;;;;;;;+DAUmC;IAC7D,GAAG,EAAE,MAAM;CACZ,CAAC;AAWF,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAc,EAAE,GAAG,GAAW,EAAE;IAC3D,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IACtC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;QACxC,IAAI,EAAE,IAAI;QACV,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE;YACP,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;SACtD;KACF,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;IACxC,MAAM,OAAO,GAAI,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;IACjG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;QACxB,GAAG,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACpC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3I,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QACpB,GAAG,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACvD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,IAAc,CAAC;IACnB,IAAI,CAAC;QACH,kEAAkE;QAClE,IAAI,GAAG,MAAM,KAAK,CAAW,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;YACxD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE;SAClH,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,OAAO,EAAE,CAAC;QACjB,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,IAAI,MAAM,KAAK,SAAS;QAAE,GAAG,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChE,YAAY,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7F,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IAC9H,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,aAAa,CAAC,GAAW,EAAE,GAAW;IACnD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAkB,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,eAAe,EAAE;YACjF,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;SACvB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,GAAG,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,QAAQ,CAAC,IAAc,EAAE,GAAW;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACzD,OAAO,eAAe,IAAI,CAAC,IAAI,OAAO,GAAG,mBAAmB,GAAG,+CAA+C,CAAC;AACjH,CAAC"}
@@ -1 +0,0 @@
1
- :root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:#0d0d0f;--panel:#101013;--panel-2:#16161a;--panel-3:#202028;--edge:#24242a;--edge-strong:#24242a;--edge-soft:#1c1c22;--ink:#ececec;--ink-2:#c9c9d0;--ink-soft:#8b8b93;--ink-faint:#5c5c66;--accent:#f0569a;--accent-soft:#1a1217;--accent-line:#3a2130;--on-accent:#fff;--ok:#7fae86;--warn:#cfae7e;--face:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--face-fixed:"IBM Plex Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;--sunk:#0a0a0c;--hover:#1a1a20;--selected:#202028;--step:8px;--rail:204px;--head:50px;--radius:4px;--radius-control:5px;--radius-panel:8px}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#f6f6f4;--panel:#fff;--panel-2:#fbfbf9;--panel-3:#eaeae6;--edge:#e3e3de;--edge-strong:#e3e3de;--edge-soft:#ededea;--ink:#17171a;--ink-2:#3e3e45;--ink-soft:#74747c;--ink-faint:#a4a4ac;--accent:#c92572;--accent-soft:#fdf1f6;--accent-line:#f0cfdf;--ok:#3d7a4c;--warn:#8a6a2c;--sunk:#f1f1ee;--hover:#f1f1ee;--selected:#eaeae6}.page{min-width:0;max-width:1040px;padding:26px 28px 34px}.page-wide{max-width:1320px}.page-eyebrow{color:var(--ink-faint);font-family:var(--face-fixed);letter-spacing:.06em;text-transform:uppercase;font-size:10.5px}.page-title{letter-spacing:-.01em;margin:4px 0 0;font-size:20px;font-weight:500}.page-title-fixed{font-family:var(--face-fixed);letter-spacing:0}.page-lede{color:var(--ink-soft);text-wrap:pretty;max-width:68ch;margin:6px 0 0;font-size:14px}.section{margin-top:22px}.section-title{color:var(--ink-faint);font-family:var(--face-fixed);letter-spacing:.06em;text-transform:uppercase;margin:0 0 10px;font-size:10.5px;font-weight:400}.note{color:var(--ink-faint);font-family:var(--face-fixed);text-wrap:pretty;margin:14px 0 0;font-size:11px}.note+.panel{margin-top:14px}.note-warn{color:var(--accent)}.panel{background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius-panel);overflow:hidden}.panel-head{border-bottom:1px solid var(--edge);justify-content:space-between;align-items:baseline;gap:12px;padding:10px 14px;display:flex}.panel-title{color:var(--ink-faint);font-family:var(--face-fixed);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:10.5px;font-weight:400}.panel-body{padding:12px 14px;font-size:13px}.grid{gap:14px;display:grid}.grid-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.badge{color:var(--ink-faint);font-family:var(--face-fixed);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;font-size:10.5px}.badge-live{background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--radius);color:var(--accent);padding:1px 6px}.mono{font-family:var(--face-fixed);font-size:.92em}.dim{color:var(--ink-soft)}.faint{color:var(--ink-faint)}.accent{color:var(--accent)}.table-wrap{background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius-panel);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:13px}.table th{border-bottom:1px solid var(--edge);color:var(--ink-faint);font-family:var(--face-fixed);letter-spacing:.06em;text-align:left;text-transform:uppercase;white-space:nowrap;padding:9px 16px;font-size:10.5px;font-weight:400}.table td{border-bottom:1px solid var(--edge-soft);vertical-align:baseline;padding:11px 16px}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--hover)}.table td.num,.table th.num{font-family:var(--face-fixed);font-variant-numeric:tabular-nums;text-align:right;font-size:11.5px}.table td.id{font-family:var(--face-fixed);font-size:12px}.table td.id .link{color:var(--accent);font-size:12px}tr.is-open td{background:var(--selected)}.kv{border-collapse:collapse;width:100%}.kv td{font-family:var(--face-fixed);padding:4px 0;font-size:11.5px}.kv-key{color:var(--ink-soft)}.kv-val{color:var(--ink-2);font-variant-numeric:tabular-nums;text-align:right}.chips{flex-wrap:wrap;gap:5px 7px;display:flex}.chip{border:1px solid var(--edge);border-radius:var(--radius);color:var(--ink-2);font-family:var(--face-fixed);align-items:baseline;gap:4px;padding:1px 5px;font-size:10.5px;display:inline-flex}.chip-key{color:var(--ink-soft)}.chip-val{color:var(--ink-2);font-variant-numeric:tabular-nums}.tabs{background:var(--sunk);border:1px solid var(--edge);border-radius:var(--radius-control);height:28px;margin-top:22px;display:inline-flex;overflow:hidden}.tab{border:none;border-right:1px solid var(--edge);color:var(--ink-soft);cursor:pointer;font-family:var(--face-fixed);background:0 0;height:100%;padding:0 10px;font-size:11.5px}.tab:last-child{border-right:none}.tab:hover{color:var(--ink)}.tab:focus-visible{outline-offset:-2px}.tab.is-active{background:var(--selected);color:var(--ink)}.button{border:1px solid var(--edge);border-radius:var(--radius-control);color:var(--ink-2);cursor:pointer;white-space:nowrap;background:0 0;align-items:center;gap:7px;height:28px;padding:0 10px;font-size:12.5px;display:inline-flex}.button:hover:not(:disabled){border-color:var(--ink);color:var(--ink)}.button:disabled{cursor:default;opacity:.4}.button-accent{background:var(--accent);border-color:var(--accent);color:var(--on-accent);height:30px;padding:0 14px;font-weight:500}.button-accent:hover:not(:disabled){border-color:var(--accent);color:var(--on-accent)}.input{background:var(--sunk);border:1px solid var(--edge);border-radius:var(--radius-control);color:var(--ink-2);min-width:0;padding:5px 8px;font-size:12.5px}.input:focus{color:var(--ink)}.input::placeholder{color:var(--ink-faint)}.link{color:var(--ink-soft);cursor:pointer;font-family:var(--face-fixed);background:0 0;border:none;padding:0;font-size:11.5px}.link:hover{color:var(--accent)}.empty{max-width:72ch;padding-top:8px}.empty-title{margin:0;font-size:15px;font-weight:500}.empty-body{color:var(--ink-soft);text-wrap:pretty;margin:8px 0 0;font-size:13.5px;line-height:1.6}.way{background:var(--ground);justify-content:center;align-items:center;min-height:100%;padding:32px 20px;display:flex}.way-card{background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius-panel);flex-direction:column;width:100%;max-width:25rem;padding:28px 28px 24px;display:flex}.way-mark{color:var(--ink-faint);font-family:var(--face-fixed);letter-spacing:.02em;align-items:baseline;gap:6px;margin-bottom:20px;font-size:11.5px;display:flex}.way-mark b{color:var(--ink);font-weight:500}.way-title{color:var(--ink);letter-spacing:-.015em;margin:0 0 6px;font-size:20px;font-weight:500}.way-lede{color:var(--ink-soft);text-wrap:pretty;margin:0 0 22px;font-size:13.5px;line-height:1.55}.way-fields{flex-direction:column;gap:14px;display:flex}.way-field{flex-direction:column;gap:6px;display:flex}.way-label{color:var(--ink-2);font-size:12px;font-weight:500}.way-label span{color:var(--ink-faint);font-family:var(--face-fixed);margin-left:6px;font-size:11px;font-weight:400}.way-input{background:var(--sunk);border:1px solid var(--ink-faint);border-radius:var(--radius-control);color:var(--ink);font-family:var(--face);width:100%;height:38px;padding:0 11px;font-size:14px}.way-input:focus{border-color:var(--accent);outline:none}.way-input::placeholder{color:var(--ink-faint)}.way-go{background:var(--ink);border:1px solid var(--ink);border-radius:var(--radius-control);color:var(--ground);cursor:pointer;font-family:var(--face);justify-content:center;align-items:center;width:100%;height:38px;margin-top:22px;font-size:14px;font-weight:500;display:inline-flex}.way-go:hover:not(:disabled){opacity:.9}.way-go:disabled{cursor:not-allowed;opacity:.4}.way-refused{border-left:2px solid var(--accent);color:var(--ink-2);text-wrap:pretty;margin:18px 0 0;padding-left:10px;font-size:13px;line-height:1.5}.way-else{border-top:1px solid var(--edge-soft);color:var(--ink-soft);text-wrap:pretty;flex-direction:column;gap:8px;margin-top:24px;padding-top:18px;font-size:12.5px;line-height:1.5;display:flex}.way-else p{margin:0}.way-else code{color:var(--ink-2);font-family:var(--face-fixed);font-size:12px}.way-world{align-self:flex-start;height:30px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--ground);color:var(--ink);font-family:var(--face);-webkit-font-smoothing:antialiased;font-size:15px;font-weight:400;line-height:1.55}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}:focus-visible{outline:1px solid var(--accent);outline-offset:2px}::selection{background:var(--accent-line)}.fixed{font-family:var(--face-fixed);font-size:12px}@keyframes pulse{0%,to{opacity:.35}50%{opacity:1}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--panel-3);border:3px solid var(--ground);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--ink-faint)}.shell{flex-direction:column;height:100%;display:flex}.shell-head{background:var(--panel);border-bottom:1px solid var(--edge);min-height:var(--head);flex-wrap:wrap;flex:none;align-items:center;gap:18px;padding:0 16px;display:flex}.shell-body{grid-template-columns:minmax(0, var(--rail)) minmax(0, 1fr);flex:1;min-height:0;display:grid}.shell-rail{background:var(--panel-2);border-right:1px solid var(--edge);flex-direction:column;min-width:0;display:flex;overflow-y:auto}.shell-screen{flex-direction:column;min-width:0;display:flex;overflow:auto}.brand{flex:none;align-items:center;gap:9px;display:flex}.brand-mark{height:18px;display:block}.brand-name{letter-spacing:-.01em;font-size:12.5px}.brand-sep{color:var(--ink-faint)}.brand-kind{color:var(--ink-soft)}.head-crumbs{color:var(--ink-soft);align-items:center;gap:7px;min-width:0;display:flex}.head-crumbs b{color:var(--ink);font-weight:500}.head-sep{color:var(--ink-faint)}.head-right{flex-wrap:wrap;align-items:center;gap:14px;margin-left:auto;display:flex}.head-whose{color:var(--ink-soft);font-size:11.5px}.theme-toggle,.head-leave{border:1px solid var(--edge);color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:7px;height:26px;padding:0 9px;font-size:11px;display:inline-flex}.theme-toggle:hover,.head-leave:hover{border-color:var(--ink);color:var(--ink)}.theme-dot{background:var(--ink);border-radius:50%;width:8px;height:8px;display:block}.rail-group{padding:14px 12px 6px}.rail-label{color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase;margin:0 0 8px;padding:0 9px;font-size:10.5px}.rail-links{flex-direction:column;gap:1px;display:flex}.rail-link{color:var(--ink-soft);border-left:2px solid #0000;border-radius:0 5px 5px 0;justify-content:space-between;align-items:center;gap:8px;padding:6px 9px;font-size:13.5px;display:flex}.rail-link:hover{background:var(--hover)}.rail-link-here{background:var(--selected);border-left-color:var(--accent);color:var(--ink)}.rail-hint{color:var(--ink-faint);font-size:10px}.rail-none{color:var(--ink-faint);padding:4px 9px;font-size:12px}.rail-agent{flex-direction:column;display:flex}.rail-agent-name{justify-content:flex-start;font-size:12.5px}.rail-agent-dot{background:var(--ok);border-radius:50%;flex:none;width:6px;height:6px}.rail-agent-here .rail-agent-name{color:var(--ink)}.rail-sub{border-left:1px solid var(--edge);flex-direction:column;gap:1px;margin:2px 0 6px 14px;padding-left:2px;display:flex}.rail-sub .rail-link{padding:5px 9px;font-size:13px}.rail-foot{border-top:1px solid var(--edge);color:var(--ink-soft);margin-top:auto;padding:14px 21px 16px;font-size:10.5px;line-height:1.8}.rail-foot-line{color:var(--ink-faint)}.nothing{color:var(--ink-faint);font-family:var(--face-fixed);text-wrap:pretty;max-width:64ch;margin:0;font-size:11.5px}.nothing .fixed{color:var(--ink-2);font-size:inherit}.workers{margin:22px 0 0;padding:0;list-style:none}.worker{border-bottom:1px solid var(--edge-soft);grid-template-columns:minmax(0,1fr) 110px 120px 110px auto;align-items:baseline;gap:14px;padding:10px 16px;display:grid}.worker:last-child{border-bottom:none}.worker-quiet{opacity:.55}.worker-load{color:var(--ink-soft);font-size:11.5px}.worker-standing{color:var(--ink-faint);font-size:10.5px}@media (width<=860px){.worker{grid-template-columns:minmax(0,1fr) auto}}.tenants{margin:22px 0 0;padding:0;list-style:none}.tenant{border-bottom:1px solid var(--edge-soft);grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:baseline;gap:16px;padding:11px 16px;display:grid}.tenant:last-child{border-bottom:none}.tenant:hover{background:var(--hover)}.tenant-id{color:var(--ink-soft);font-size:12px}.tenant-make{margin-top:22px}.tenant-make-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:10px;padding:14px;display:grid}.limits{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 16px;padding:14px 16px;display:grid}.limit{flex-direction:column;gap:4px;display:flex}.limit-name{color:var(--ink-soft);font-size:11px}.limit-held{color:var(--ink-faint);font-size:10.5px}.limit-input{width:100%}.limits-save{align-items:center;gap:12px;padding:0 16px 14px;display:flex}.of-the-org-panel{margin-top:22px}.of-the-org-empty{padding:0 16px 14px}.of-the-org-note{padding:0 16px 12px}.of-the-org{margin:0;padding:0;list-style:none}.of-the-org li{border-bottom:1px solid var(--edge-soft);grid-template-columns:minmax(0,1fr) 110px minmax(0,1fr) auto;align-items:baseline;gap:14px;padding:9px 16px;display:grid}.of-the-org li:last-child{border-bottom:none}.gone{opacity:.55}@media (width<=760px){.tenant,.tenant-make-form,.of-the-org li{grid-template-columns:minmax(0,1fr)}}.doors-pick{flex-wrap:wrap;align-items:center;gap:10px;margin-top:22px;display:flex}.doors{margin:22px 0 0;padding:0;list-style:none}.door{border-bottom:1px solid var(--edge-soft);grid-template-columns:minmax(0,1.2fr) 90px minmax(0,1fr) 110px;align-items:baseline;gap:14px;padding:10px 16px;display:grid}.door:last-child{border-bottom:none}.door-source{color:var(--ink-faint);font-size:10.5px}@media (width<=760px){.door{grid-template-columns:minmax(0,1fr)}}.consumed{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:22px;display:grid}.consumed-org{padding:14px 16px}.consumed-name{margin:0 0 8px;font-size:13px}.consumed-figure{color:var(--ink-soft);font-size:11.5px}.metered{border-collapse:collapse;width:100%;font-size:12px}.metered th{border-bottom:1px solid var(--edge);color:var(--ink-faint);letter-spacing:.05em;text-align:left;text-transform:uppercase;padding:8px 10px;font-size:10.5px;font-weight:500}.metered td{border-bottom:1px solid var(--edge-soft);white-space:nowrap;padding:7px 10px}.metered tr:last-child td{border-bottom:none}.metered-scroll{margin-top:22px;overflow-x:auto}.metered-more{align-items:center;gap:12px;padding:12px 16px;display:flex}