lazyBoy/apps/web/src/refinements.css

926 lines
32 KiB
CSS
Raw Normal View History

.memory-dialog{max-height:85vh;overflow:auto}
.memory-dialog form{display:flex;gap:10px;align-items:end}
.memory-dialog form label{flex:1}
.memory-list{display:grid;gap:8px;margin:14px 0}
2026-09-06 05:39:06 +00:00
.memory-row{display:grid;gap:5px;padding:10px;border:1px solid var(--border);border-radius:10px}
.memory-row small{opacity:.65}
.memory-row>div{display:flex;gap:8px}
2026-09-06 05:39:06 +00:00
.memory-row textarea{box-sizing:border-box;width:100%;resize:vertical;border:1px solid var(--border);border-radius:10px;background:var(--input);color:var(--ink);padding:11px;font:inherit}
2026-09-03 16:16:34 +00:00
.app-shell{grid-template-columns:clamp(220px,18vw,280px) minmax(0,1fr) clamp(320px,28vw,420px)}
2026-09-03 16:16:34 +00:00
.sidebar,.chat-panel,.computer-panel,.topbar,.panel-head,.control-bar{min-width:0}
2026-09-04 05:41:09 +00:00
.session-picker select{max-width:190px;min-width:90px;padding:7px 28px 7px 10px;border:1px solid var(--border);border-radius:9px;color:var(--ink);background:var(--surface)}
.magic-particles{position:absolute;z-index:4;inset:-12px;pointer-events:none;animation:magic-orbit 2.4s linear infinite}
.magic-particles i{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff;box-shadow:0 0 7px 2px #6df,0 0 12px #d5f}
.magic-particles i:nth-child(1){top:0;left:48%}
.magic-particles i:nth-child(2){right:0;top:45%;background:#ffe66d}
.magic-particles i:nth-child(3){bottom:1px;left:35%;background:#ff73dc}
.magic-particles i:nth-child(4){left:0;top:30%;background:#79ffb0}
.chat-panel{--chat-gutter:max(34px,7vw);--chat-col:min(760px,100%)}
2026-09-07 13:08:10 +00:00
.composer-dock .error-banner,.composer-dock .queue-hint{position:relative;left:auto;bottom:auto;transform:none;z-index:auto}
.composer-dock .queue-hint{text-align:center}
.spinner{width:17px;height:17px;animation:spin .8s linear infinite}
.spinner.large{width:38px;height:38px;color:var(--accent)}
.primary .spinner{margin-right:7px}
.primary{display:inline-flex;align-items:center;justify-content:center}
2026-09-06 05:39:06 +00:00
.clipboard-text{box-sizing:border-box;width:100%;min-height:150px;resize:vertical;border:1px solid var(--border);border-radius:12px;background:var(--input);color:var(--ink);padding:12px;font:inherit;line-height:1.5;outline:none}
.clipboard-text:focus{border-color:var(--accent)}
2026-09-03 16:16:34 +00:00
.bot-tag{padding:3px 8px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:11px;white-space:nowrap}
.bot-row{gap:9px}
.bot-copy{display:grid;min-width:0;flex:1}
.bot-copy strong,.bot-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
2026-09-06 05:39:06 +00:00
.side-tag{max-width:64px;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto;padding:2px 6px;color:var(--ink);background:rgba(255,255,255,.055)}
2026-09-06 05:39:06 +00:00
.unread-dot{position:absolute;z-index:8;top:-2px;right:-3px;width:9px;height:9px;border:2px solid var(--side);border-radius:50%;background:var(--unread);box-shadow:0 0 8px color-mix(in srgb,var(--unread) 65%,transparent)}
.bot-group{display:grid;gap:3px}
.group-label{padding:12px 11px 4px;color:var(--muted);font-size:11px;letter-spacing:.04em}
.row-time{align-self:start;color:var(--muted);font-size:10px;white-space:nowrap}
.row-pin{width:13px;height:13px;color:var(--muted);transform:rotate(-20deg)}
.hidden-toggle{display:flex;align-items:center;gap:7px;margin:4px 12px;padding:8px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:12px;cursor:pointer}
.hidden-toggle svg{width:14px}
2026-09-06 05:39:06 +00:00
.context-menu{position:fixed;z-index:100;display:grid;width:210px;padding:6px;border:1px solid var(--border);border-radius:13px;background:var(--menu);box-shadow:0 18px 60px rgba(0,0,0,.55)}
2026-09-06 05:39:06 +00:00
.context-menu button{display:flex;align-items:center;gap:10px;width:100%;height:38px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.context-menu button:hover{background:rgba(255,255,255,.07)}
.context-menu button svg{width:16px;height:16px}
.context-menu hr{width:100%;margin:5px 0;border:0;border-top:1px solid var(--border)}
2026-09-06 05:39:06 +00:00
.context-menu .danger-item{color:var(--danger-soft)}
.context-menu .context-close{display:none}
.settings-dialog{width:min(520px,calc(100vw - 28px));max-height:min(850px,calc(100dvh - 28px));overflow:auto}
.avatar-editor small,.settings-dialog label small{color:var(--muted)}
.settings-dialog fieldset{margin:0;padding:0;border:0}
.settings-dialog legend{margin-bottom:9px;color:var(--muted);font-size:13px}
.color-grid,.shape-grid{display:flex;gap:10px;flex-wrap:wrap}
.color-grid button,.custom-color{position:relative;box-sizing:border-box;width:34px;height:34px;border:2px solid transparent;border-radius:50%;cursor:pointer}
2026-09-06 05:39:06 +00:00
.color-grid button.selected{outline:2px solid var(--ink);outline-offset:2px}
.custom-color{display:grid;place-items:center;overflow:hidden;border:1px dashed var(--muted)}
.custom-color input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.custom-color span{font-size:20px}
.shape-grid button{display:grid;place-items:center;width:54px;height:54px;border:1px solid var(--border);border-radius:12px;background:transparent}
.shape-grid button.selected{border-color:var(--accent);background:rgba(62,197,168,.08)}
2026-09-06 05:39:06 +00:00
.settings-dialog textarea{box-sizing:border-box;width:100%;resize:vertical;border:1px solid var(--border);border-radius:10px;background:var(--input);color:var(--ink);padding:11px;font:inherit;outline:none}
.settings-dialog textarea:focus{border-color:var(--accent)}
2026-09-03 16:16:34 +00:00
@keyframes thinking-dot{0%,60%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
2026-09-03 16:16:34 +00:00
@keyframes spin{to{transform:rotate(360deg)}}
2026-09-03 16:16:34 +00:00
@keyframes magic-orbit{to{transform:rotate(360deg)}}
2026-09-04 05:41:09 +00:00
@keyframes avatar-rainbow-glow{0%,100%{filter:drop-shadow(-3px -1px 2px #ff4fd8) drop-shadow(3px 1px 2px #34d9ff)}33%{filter:drop-shadow(1px -3px 2px #ffe66d) drop-shadow(-1px 3px 2px #58f39a)}66%{filter:drop-shadow(3px -1px 2px #ff7a59) drop-shadow(-3px 1px 2px #7c5cff)}}
2026-09-03 16:16:34 +00:00
@keyframes small-magic-line{to{background-position:200% 0}}
.shape-grid button{border-color:transparent;border-radius:50%}
.shape-grid button:hover{background:rgba(255,255,255,.04)}
.shape-grid button.selected{border-color:#626268;box-shadow:none;background:rgba(255,255,255,.025)}
2026-09-04 09:08:56 +00:00
.expr-grid,.bg-grid{display:flex;gap:8px;flex-wrap:wrap}
2026-09-04 09:08:56 +00:00
.expr-grid button,.bg-grid button{display:grid;justify-items:center;gap:3px;min-width:54px;padding:6px 4px 7px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--muted);font:inherit;font-size:10px;cursor:pointer}
2026-09-04 09:08:56 +00:00
.expr-grid button:hover,.bg-grid button:hover{background:rgba(255,255,255,.04)}
2026-09-04 09:08:56 +00:00
.expr-grid button.selected,.bg-grid button.selected{border-color:#626268;color:var(--ink);background:rgba(255,255,255,.025)}
2026-09-03 23:43:37 +00:00
.bot-list{flex:1;min-height:0}
.sidebar-bottom{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding-top:10px}
.sidebar-bottom .account{min-width:0;flex:1}
2026-09-04 05:41:09 +00:00
.account-wrap{position:relative;width:100%}
2026-09-04 05:41:09 +00:00
.account{cursor:pointer}
2026-09-04 05:41:09 +00:00
.workspace-avatar{display:grid;width:32px;height:32px;flex:0 0 32px;place-items:center;border-radius:50%;background:var(--surface);color:var(--muted);font-size:11px;font-weight:650;letter-spacing:.02em;box-shadow:inset 0 0 0 1px rgba(255,255,255,.05)}
2026-09-06 05:39:06 +00:00
.account:hover,.account.open{background:var(--hairline)}
2026-09-04 05:41:09 +00:00
.account .chevron{width:16px;height:16px;color:var(--muted);margin-left:auto;flex:0 0 16px;transition:transform .15s ease}
2026-09-04 05:41:09 +00:00
.account.open .chevron{transform:rotate(180deg)}
2026-09-06 05:39:06 +00:00
.account-menu{position:absolute;z-index:50;left:0;right:0;bottom:calc(100% + 8px);display:grid;padding:6px;border:1px solid var(--border);border-radius:14px;background:var(--menu);box-shadow:0 18px 50px rgba(0,0,0,.55)}
2026-09-04 05:41:09 +00:00
.account-menu button{display:flex;align-items:center;gap:10px;height:40px;padding:0 12px;border:0;border-radius:9px;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
2026-09-04 05:41:09 +00:00
.account-menu button:hover{background:rgba(255,255,255,.07)}
2026-09-04 05:41:09 +00:00
.account-menu button:disabled{opacity:.35;cursor:not-allowed}
2026-09-04 05:41:09 +00:00
.account-menu button svg{width:16px;height:16px;color:var(--muted);flex:0 0 16px}
2026-09-04 05:41:09 +00:00
.account-menu hr{width:100%;margin:4px 0;border:0;border-top:1px solid var(--border)}
2026-09-06 05:39:06 +00:00
.share-url{display:block;padding:10px 12px;border-radius:10px;background:var(--input);color:var(--ink);font-size:13px;word-break:break-all}
2026-09-04 05:41:09 +00:00
.about-brand{display:grid;justify-items:center;gap:6px;padding:8px 0 4px}
2026-09-04 05:41:09 +00:00
.about-brand small{color:var(--muted)}
2026-09-04 05:41:09 +00:00
.help-dialog{width:min(520px,100%);max-height:min(80dvh,720px)}
2026-09-04 05:41:09 +00:00
.help-body{display:grid;gap:14px;overflow:auto;max-height:min(56dvh,480px);padding-right:4px}
2026-09-04 05:41:09 +00:00
.help-body section h3{margin:0 0 4px;font-size:14px}
2026-09-04 05:41:09 +00:00
.help-body section p{margin:0;color:var(--muted);line-height:1.55}
2026-09-04 05:41:09 +00:00
.dialog label.memory-toggle{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:14px}
2026-09-04 05:41:09 +00:00
.dialog label.memory-toggle input[type="checkbox"]{width:16px;height:16px;min-height:16px;padding:0;flex:0 0 16px;border-radius:4px;accent-color:var(--accent)}
2026-09-04 05:41:09 +00:00
.plugin-row,.plugin-server{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;border-radius:12px;background:transparent;color:inherit;text-align:left;cursor:pointer}
2026-09-06 05:39:06 +00:00
.plugin-row:hover,.plugin-server:hover,.plugin-row.selected{background:var(--hairline)}
2026-09-04 05:41:09 +00:00
.plugin-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:rgba(255,255,255,.06);color:var(--muted);flex:0 0 28px}
2026-09-04 05:41:09 +00:00
.plugin-icon svg{width:15px;height:15px}
2026-09-04 05:41:09 +00:00
.plugin-row .bot-copy,.plugin-server .bot-copy{flex:1;min-width:0}
2026-09-04 05:41:09 +00:00
.plugin-server{padding:7px 10px 7px 12px}
2026-09-04 05:41:09 +00:00
.mcp-dot{width:8px;height:8px;border-radius:50%;background:var(--faint);flex:0 0 8px}
2026-09-06 05:39:06 +00:00
.mcp-dot.connected{background:var(--online);box-shadow:0 0 8px color-mix(in srgb,var(--online) 60%,transparent)}
2026-09-06 05:39:06 +00:00
.mcp-dot.disconnected{background:var(--danger)}
2026-09-06 05:39:06 +00:00
.mcp-dot.disabled{background:var(--faint)}
2026-09-04 05:41:09 +00:00
.mcp-pane{display:grid;gap:14px;min-height:0;overflow:auto;padding-bottom:8px}
2026-09-04 05:41:09 +00:00
.mcp-add{display:grid;gap:10px}
2026-09-04 05:41:09 +00:00
.mcp-transport{display:flex;gap:6px}
2026-09-04 05:41:09 +00:00
.mcp-transport button{height:32px;padding:0 12px;border:1px solid var(--border);border-radius:9px;background:transparent;color:var(--muted);cursor:pointer}
2026-09-04 05:41:09 +00:00
.mcp-transport button.picked{border-color:var(--accent);color:var(--ink);background:rgba(62,197,168,.08)}
2026-09-04 05:41:09 +00:00
.mcp-list{display:grid;gap:8px}
2026-09-04 05:41:09 +00:00
.mcp-card{border:1px solid var(--border);border-radius:12px;background:var(--inset);overflow:hidden}
2026-09-04 05:41:09 +00:00
.mcp-card-head{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
2026-09-04 05:41:09 +00:00
.mcp-card-head strong{flex:1}
2026-09-04 05:41:09 +00:00
.mcp-card-head small{color:var(--muted)}
2026-09-06 05:39:06 +00:00
.mcp-error{padding:0 12px 10px;color:var(--danger-soft);font-size:12px;line-height:1.4}
2026-09-04 05:41:09 +00:00
.mcp-tools{display:grid;gap:6px;padding:0 12px 10px}
2026-09-04 05:41:09 +00:00
.mcp-tool{display:grid;gap:2px;padding:8px;border-radius:8px;background:rgba(255,255,255,.03)}
2026-09-04 05:41:09 +00:00
.mcp-tool code{font-size:12px;color:var(--accent)}
2026-09-04 05:41:09 +00:00
.mcp-tool span{color:var(--muted);font-size:12px}
2026-09-04 05:41:09 +00:00
.mcp-card-actions{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 12px}
.mcp-choose{display:inline-flex;align-items:center;gap:8px;width:fit-content}
.mcp-choose svg{width:16px;height:16px}
2026-09-04 09:08:56 +00:00
.mcp-picker{width:min(760px,calc(100vw - 28px));max-height:min(800px,calc(100dvh - 24px));display:flex;flex-direction:column;gap:12px;overflow:hidden;min-height:0}
2026-09-04 09:08:56 +00:00
.mcp-picker .dialog-title,.mcp-picker .dialog-lead,.mcp-picker .dialog-actions,.mcp-picker .pane-error{flex:0 0 auto}
2026-09-06 05:39:06 +00:00
.dialog label.mcp-picker-search,.mcp-picker-search{display:flex;align-items:center;gap:10px;height:44px;margin:0;padding:0 13px;border:1px solid var(--line);border-radius:14px;background:var(--elevated);color:var(--muted);font-size:inherit;flex:0 0 44px}
2026-09-04 09:08:56 +00:00
.mcp-picker-search>div{flex:0 0 auto;display:grid;place-items:center;line-height:0}
2026-09-04 09:08:56 +00:00
.dialog .mcp-picker-search input,.mcp-picker-search input{width:100%;height:auto;min-height:0;padding:0;border:0;border-radius:0;background:transparent;color:var(--ink)}
2026-09-04 09:08:56 +00:00
.dialog .mcp-picker-search input:focus{border-color:transparent}
2026-09-04 09:08:56 +00:00
.mcp-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-auto-rows:min-content;gap:8px;flex:1 1 auto;min-height:0;overflow:auto;padding:2px 6px 8px 0;align-content:start;scrollbar-gutter:stable}
2026-09-04 09:08:56 +00:00
.mcp-picker-grid::-webkit-scrollbar{width:8px}
2026-09-04 09:08:56 +00:00
.mcp-picker-grid::-webkit-scrollbar-thumb{background:#2a2a2e;border-radius:999px}
2026-09-04 09:08:56 +00:00
.mcp-picker-empty{grid-column:1/-1;padding:28px 8px;color:var(--muted);text-align:center}
2026-09-04 09:08:56 +00:00
.mcp-pick-card{display:grid;gap:6px;align-content:start;min-height:min-content;padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--inset);color:inherit;text-align:left;cursor:pointer}
2026-09-04 09:08:56 +00:00
.mcp-pick-card:hover:not(.added):not(:disabled){border-color:var(--accent)}
2026-09-04 09:08:56 +00:00
.mcp-pick-card.added,.mcp-pick-card:disabled{opacity:.45;cursor:default}
2026-09-04 09:08:56 +00:00
.mcp-pick-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:rgba(62,197,168,.12);color:var(--accent);font-weight:700}
2026-09-04 09:08:56 +00:00
.mcp-pick-card strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
2026-09-04 09:08:56 +00:00
.mcp-pick-card small{color:var(--muted);font-size:12px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
2026-09-04 09:08:56 +00:00
.mcp-pick-meta{color:var(--faint);font-size:11px}
2026-09-04 09:08:56 +00:00
.mcp-secret-step,.mcp-picker .mcp-add{display:grid;gap:10px;flex:1 1 auto;min-height:0;overflow:auto;align-content:start}
2026-09-04 09:08:56 +00:00
.mcp-picker .mcp-back{width:fit-content;justify-self:start}
2026-09-04 05:41:09 +00:00
.mcp-card-actions svg{width:13px;height:13px}
.create-menu-wrap{position:relative;margin-left:auto}
.brand .create-menu-wrap .icon-button{margin-left:0}
2026-09-06 05:39:06 +00:00
.create-menu{position:absolute;z-index:40;top:42px;right:0;display:grid;width:180px;padding:6px;border:1px solid var(--border);border-radius:12px;background:var(--menu);box-shadow:0 18px 50px rgba(0,0,0,.5)}
2026-09-06 05:39:06 +00:00
.create-menu button{display:flex;align-items:center;gap:9px;height:38px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--ink);cursor:pointer}
.create-menu button:hover:not(:disabled){background:rgba(255,255,255,.07)}
.create-menu button:disabled{opacity:.4;cursor:not-allowed}
.create-menu svg{width:16px}
.group-picker{display:grid;gap:5px;max-height:280px;margin:0;padding:0;overflow:auto;border:0}
.group-picker legend{margin-bottom:8px;color:var(--muted)}
.group-picker label{display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:9px;background:var(--inset);cursor:pointer}
.group-picker input{width:16px;height:16px;margin:0}
.group-picker .avatar{--avatar-size:28px!important}
2026-09-04 05:41:09 +00:00
.session-picker{position:relative;display:flex;align-items:center;gap:4px;margin-left:10px;min-width:0}
2026-09-04 05:41:09 +00:00
.session-current{display:flex;align-items:center;gap:6px;min-width:0;max-width:220px;height:36px;padding:0 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--ink);cursor:pointer}
2026-09-04 05:41:09 +00:00
.session-current span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
2026-09-04 05:41:09 +00:00
.session-current svg{flex:0 0 14px;width:14px;height:14px;color:var(--muted)}
2026-09-06 05:39:06 +00:00
.session-menu{position:absolute;z-index:40;top:42px;left:0;display:grid;width:min(280px,calc(100vw - 24px));padding:6px;border:1px solid var(--border);border-radius:13px;background:var(--menu);box-shadow:0 18px 60px rgba(0,0,0,.55)}
2026-09-04 05:41:09 +00:00
.session-menu>button{display:flex;align-items:center;gap:10px;width:100%;height:38px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
2026-09-04 05:41:09 +00:00
.session-menu>button:hover:not(:disabled){background:rgba(255,255,255,.07)}
2026-09-04 05:41:09 +00:00
.session-menu>button:disabled{opacity:.4;cursor:not-allowed}
2026-09-04 05:41:09 +00:00
.session-menu svg{width:16px;height:16px}
2026-09-04 05:41:09 +00:00
.session-menu hr{width:100%;margin:5px 0;border:0;border-top:1px solid var(--border)}
2026-09-04 05:41:09 +00:00
.session-menu-list{display:grid;max-height:240px;overflow:auto}
2026-09-04 05:41:09 +00:00
.session-item{display:flex;align-items:center;gap:2px;border-radius:8px}
2026-09-04 05:41:09 +00:00
.session-item.selected{background:rgba(255,255,255,.06)}
2026-09-04 05:41:09 +00:00
.session-item-main{display:grid;min-width:0;flex:1;height:42px;padding:0 10px;border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
2026-09-04 05:41:09 +00:00
.session-item-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
2026-09-04 05:41:09 +00:00
.session-item-main time{color:var(--muted);font-size:11px}
2026-09-04 05:41:09 +00:00
.session-item .icon-button{flex:0 0 32px;width:32px;height:32px;color:var(--muted)}
2026-09-06 05:39:06 +00:00
.session-menu .danger-item{color:var(--danger-soft)}
.queue-hint{position:absolute;bottom:118px;left:50%;z-index:7;transform:translateX(-50%);color:var(--muted);font-size:12px}
.error-banner{z-index:8;bottom:118px}
2026-09-06 05:39:06 +00:00
.pause-banner{display:flex;align-items:center;gap:14px;width:min(760px,100%);margin:4px auto 18px;padding:12px 14px;border:1px solid var(--warn-border);border-radius:12px;background:var(--warn-bg);color:var(--warn-fg);font-size:13px;line-height:1.5}
2026-09-04 14:43:29 +00:00
.pause-banner span{flex:1}
2026-09-04 14:43:29 +00:00
.pause-banner .primary{flex:0 0 auto;white-space:nowrap}
2026-09-04 05:41:09 +00:00
.remember-msg{position:absolute;top:8px;right:4px;width:26px;height:26px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}
2026-09-04 05:41:09 +00:00
.remember-msg svg{width:14px;height:14px}
2026-09-04 05:41:09 +00:00
.remember-msg:hover:not(:disabled){background:rgba(255,255,255,.07);color:var(--ink)}
2026-09-04 05:41:09 +00:00
.remember-msg.saved,.remember-msg:disabled{color:var(--accent);opacity:.9;cursor:default}
2026-09-04 05:41:09 +00:00
.panel-open-btn{display:none}
2026-09-04 05:41:09 +00:00
.side-card-backdrop{display:none}
2026-09-04 05:41:09 +00:00
.app-shell.right-open{grid-template-columns:clamp(220px,18vw,280px) minmax(0,1fr) clamp(320px,30vw,440px)}
2026-09-04 05:41:09 +00:00
.app-shell.right-collapsed{grid-template-columns:clamp(220px,18vw,280px) minmax(0,1fr) 52px}
2026-09-04 05:41:09 +00:00
.side-card{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--panel);border-right:0}
2026-09-04 05:41:09 +00:00
.side-card.collapsed{padding:10px 6px}
2026-09-04 05:41:09 +00:00
.side-rail{display:flex;flex-direction:column;align-items:center;gap:6px;height:100%}
2026-09-04 05:41:09 +00:00
.side-rail button{width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:11px;background:transparent;color:var(--muted);cursor:pointer}
2026-09-04 05:41:09 +00:00
.side-rail button svg{width:18px;height:18px}
2026-09-04 05:41:09 +00:00
.side-rail button:hover:not(:disabled){background:var(--surface);color:var(--ink)}
2026-09-04 05:41:09 +00:00
.side-rail button.active{background:var(--surface);color:var(--ink)}
2026-09-04 05:41:09 +00:00
.side-rail button:disabled{opacity:.35;cursor:not-allowed}
2026-09-06 05:39:06 +00:00
.side-card-head{display:flex;align-items:center;gap:6px;height:72px;flex:0 0 72px;padding:0 10px 0 12px;border-bottom:1px solid var(--hairline)}
2026-09-04 05:41:09 +00:00
.side-card-title{min-width:0;flex:1;overflow:hidden;color:var(--muted);font-size:13px;text-overflow:ellipsis;white-space:nowrap}
2026-09-04 05:41:09 +00:00
.side-tabs{display:flex;gap:4px;min-width:0;flex:1;flex-wrap:wrap}
2026-09-04 05:41:09 +00:00
.side-tabs button{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 10px;border:0;border-radius:10px;background:transparent;color:var(--muted);font:inherit;font-size:13px;cursor:pointer}
2026-09-04 05:41:09 +00:00
.side-tabs button svg{width:15px;height:15px}
2026-09-04 05:41:09 +00:00
.side-tabs button:hover:not(:disabled){background:var(--surface);color:var(--ink)}
2026-09-04 05:41:09 +00:00
.side-tabs button.active{background:var(--surface);color:var(--ink)}
2026-09-04 05:41:09 +00:00
.side-tabs button:disabled{opacity:.35;cursor:not-allowed}
2026-09-04 05:41:09 +00:00
.side-card-body{display:flex;flex-direction:column;min-height:0;flex:1;padding:14px 16px 16px;overflow:hidden}
2026-09-05 14:59:07 +00:00
.pane-form,.memory-pane,.vault-pane{display:grid;gap:14px;min-height:0;overflow:auto;padding-bottom:8px;align-content:start}
2026-09-05 14:59:07 +00:00
.pane-form label,.memory-pane label,.mcp-add label,.vault-pane label{display:grid;gap:8px;color:var(--muted);font-size:13px;min-width:0}
2026-09-06 05:39:06 +00:00
.pane-form input:not([type="checkbox"]):not([type="color"]),.memory-pane input:not([type="checkbox"]),.mcp-add input,.vault-pane input{width:100%;min-width:0;height:40px;border:1px solid var(--border);border-radius:10px;background:var(--input);color:var(--ink);padding:0 12px;outline:0}
2026-09-06 05:39:06 +00:00
.pane-form textarea,.memory-pane textarea,.mcp-add textarea{box-sizing:border-box;width:100%;resize:vertical;border:1px solid var(--border);border-radius:10px;background:var(--input);color:var(--ink);padding:11px;font:inherit;outline:none}
2026-09-04 05:41:09 +00:00
.pane-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
2026-09-06 05:39:06 +00:00
.pane-error{color:var(--danger-soft);font-size:13px}
2026-09-04 05:41:09 +00:00
.settings-pane fieldset{margin:0;padding:0;border:0}
2026-09-04 05:41:09 +00:00
.settings-pane legend{margin-bottom:9px;color:var(--muted);font-size:13px}
2026-09-04 05:41:09 +00:00
.memory-pane form{display:flex;gap:10px;align-items:end}
2026-09-04 05:41:09 +00:00
.memory-pane form label{flex:1}
2026-09-04 05:41:09 +00:00
.memory-help{margin:0;color:var(--muted);line-height:1.5}
2026-09-04 05:41:09 +00:00
.memory-pane .memory-toggle,.memory-toggle{display:flex;align-items:center;gap:8px}
2026-09-04 05:41:09 +00:00
.memory-search{display:grid;gap:8px}
2026-09-04 05:41:09 +00:00
.memory-clear-confirm{display:flex;align-items:center;gap:8px;margin-right:auto;color:var(--muted);font-size:13px}
2026-09-06 05:51:28 +00:00
.login-screen{position:relative;display:grid;min-height:100%;place-items:center;padding:88px 20px;background:radial-gradient(circle at 50% 20%,#18201e 0,#080809 55%)}
.login-dialog{display:grid;justify-items:stretch}
.login-dialog>.avatar{justify-self:center}
.login-dialog h1,.login-dialog p{text-align:center}
.login-dialog p{margin-top:-8px;color:var(--muted)}
2026-09-06 05:39:06 +00:00
.login-error{color:var(--danger-soft);font-size:13px}
2026-09-06 05:51:28 +00:00
.login-lang{position:absolute;top:24px;right:24px;display:flex;align-items:center;gap:6px}
2026-09-06 05:39:06 +00:00
.login-lang button{height:32px;padding:0 12px;border:1px solid var(--border);border-radius:9px;background:transparent;color:var(--muted);cursor:pointer}
.login-lang button.picked{border-color:var(--accent);color:var(--ink);background:rgba(62,197,168,.08)}
2026-09-04 05:41:09 +00:00
@keyframes working-shimmer{to{background-position:-220% 0}}
2026-09-06 05:39:06 +00:00
.bot-row .unread-dot{top:-2px;right:-3px}
2026-09-04 05:41:09 +00:00
.bot-row:hover .avatar-wrap{transform:scale(1.06)}
2026-09-04 05:41:09 +00:00
.bot-row.room-row .bot-copy small{color:var(--muted)}
2026-09-04 05:41:09 +00:00
.dialog-lead{margin:0;color:var(--muted);line-height:1.5;font-size:13px}
2026-09-09 06:41:09 +00:00
/* One quiet sentence under a form: what will happen by default, so the human has nothing to configure. */
.dialog-note{margin:-4px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
2026-09-04 05:41:09 +00:00
@keyframes computer-hud-bob{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-3px) rotate(5deg)}}
2026-09-04 05:41:09 +00:00
/* Collapsed navigation is rendered in the top bar by App. Keep this fallback
for older markup and make both variants feel like one compact tool strip. */
.top-tools{display:flex;align-items:center;gap:4px;margin-left:auto;padding:4px;border:1px solid var(--border);border-radius:13px;background:rgba(18,18,20,.86);box-shadow:0 8px 24px rgba(0,0,0,.2)}
2026-09-04 05:41:09 +00:00
.top-tool-button{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;background:transparent;color:var(--muted);cursor:pointer;transition:background .15s ease,color .15s ease,transform .15s ease}
2026-09-04 05:41:09 +00:00
.top-tool-button svg{width:17px;height:17px}
2026-09-04 05:41:09 +00:00
.top-tool-button:hover:not(:disabled){background:var(--surface);color:var(--ink);transform:translateY(-1px)}
2026-09-04 05:41:09 +00:00
.top-tool-button.active{background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
2026-09-04 05:41:09 +00:00
.top-tool-button:disabled{opacity:.3;cursor:not-allowed}
2026-09-04 05:41:09 +00:00
.app-shell.right-collapsed{grid-template-columns:clamp(220px,18vw,280px) minmax(0,1fr)}
2026-09-04 05:41:09 +00:00
.side-rail{flex-direction:row;align-items:center;justify-content:flex-start;gap:4px;height:auto;padding:6px}
2026-09-04 05:41:09 +00:00
.side-rail .grow{display:none}
2026-09-04 05:41:09 +00:00
.side-rail button{width:34px;height:34px;border-radius:9px}
2026-09-04 05:41:09 +00:00
.side-rail button svg{width:17px;height:17px}
.provider-fieldset{margin:0;padding:0;border:0}
.provider-fieldset legend{margin-bottom:8px;color:var(--muted);font-size:13px}
2026-09-04 09:08:56 +00:00
.provider-grid{display:flex;gap:6px;flex-wrap:wrap}
2026-09-04 09:08:56 +00:00
.provider-grid button{height:36px;padding:0 12px;border:1px solid var(--border);border-radius:10px;background:transparent;color:var(--muted);cursor:pointer}
2026-09-04 09:08:56 +00:00
.provider-grid button.picked{border-color:var(--accent);color:var(--ink);background:rgba(62,197,168,.08)}
2026-09-04 09:08:56 +00:00
.dialog.settings-dialog{width:min(520px,calc(100vw - 28px));max-height:min(850px,calc(100dvh - 28px));overflow:auto}
2026-09-06 05:39:06 +00:00
.dialog.settings-dialog select{width:100%;height:42px;padding:0 12px;border:1px solid var(--border);border-radius:10px;background:var(--input);color:var(--ink)}
2026-09-04 14:43:29 +00:00
/* Teach-by-demonstration: composer menu, live banner, draft card */
.plus-menu-wrap{position:relative;align-self:center}
2026-09-06 05:39:06 +00:00
.plus-menu{position:absolute;z-index:40;bottom:50px;left:0;display:grid;width:268px;padding:6px;border:1px solid var(--border);border-radius:13px;background:var(--menu);box-shadow:0 18px 60px rgba(0,0,0,.55)}
2026-09-04 14:43:29 +00:00
.plus-menu button{display:flex;align-items:center;gap:10px;width:100%;height:38px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
2026-09-04 14:43:29 +00:00
.plus-menu button:hover:not(:disabled){background:rgba(255,255,255,.07)}
2026-09-04 14:43:29 +00:00
.plus-menu button:disabled{opacity:.4;cursor:not-allowed}
2026-09-04 14:43:29 +00:00
.plus-menu svg{width:16px;height:16px;flex:0 0 16px}
2026-09-04 14:43:29 +00:00
.plus-menu hr{width:100%;margin:5px 0;border:0;border-top:1px solid var(--border)}
2026-09-04 14:43:29 +00:00
.plus-menu-label{padding:4px 10px 2px;color:var(--faint);font-size:11px}
2026-09-05 04:20:19 +00:00
.plus-menu-skills{display:grid;min-height:0}
2026-09-06 05:39:06 +00:00
.plus-menu-search{box-sizing:border-box;width:calc(100% - 8px);height:32px;margin:4px 4px 6px;padding:0 10px;border:1px solid var(--border);border-radius:8px;background:var(--elevated);color:var(--ink);font:inherit;font-size:13px;outline:0}
2026-09-06 05:39:06 +00:00
.plus-menu-search:focus{border-color:var(--focus)}
2026-09-05 04:20:19 +00:00
.plus-menu-skill-list{overflow-y:auto;max-height:min(228px,calc(100dvh - 280px));padding-bottom:2px}
2026-09-05 04:20:19 +00:00
.plus-menu-skill-list::-webkit-scrollbar{width:8px}
2026-09-05 04:20:19 +00:00
.plus-menu-skill-list::-webkit-scrollbar-thumb{border-radius:8px;background:#2f2f33}
2026-09-05 04:20:19 +00:00
.plus-menu-empty{display:block;padding:10px 12px 12px;color:var(--muted);font-size:12px}
2026-09-06 05:39:06 +00:00
.record-dot{display:inline-block;flex:0 0 12px;width:12px;height:12px;border-radius:50%;background:var(--danger);box-shadow:inset 0 0 0 2px var(--menu),0 0 0 1.5px var(--danger)}
2026-09-04 14:43:29 +00:00
.record-dot.live{animation:pulse 1.2s infinite;margin-right:8px;vertical-align:-1px}
2026-09-04 14:43:29 +00:00
.teach-dialog h2{display:flex;align-items:center;gap:10px}
2026-09-06 05:39:06 +00:00
.teach-goal{min-height:78px;resize:vertical;border:1px solid var(--border);border-radius:10px;background:var(--input);color:var(--ink);padding:10px 12px;outline:0;line-height:1.5}
2026-09-06 05:39:06 +00:00
.teach-goal:focus{border-color:var(--focus)}
2026-09-04 14:43:29 +00:00
.teach-tips{margin:0;padding-left:18px;color:var(--muted);font-size:12.5px;line-height:1.6}
2026-09-04 14:43:29 +00:00
.teach-banner{display:flex;align-items:center;gap:12px;width:min(760px,100%);margin:4px auto 18px;padding:12px 14px;border:1px solid #3d2a2a;border-radius:12px;background:#1d1212;color:#f3c5c5;font-size:13px;line-height:1.5}
2026-09-04 14:43:29 +00:00
.teach-banner.recording{border-color:#6a2a2a;background:#241313}
2026-09-04 14:43:29 +00:00
.teach-banner>span{flex:1;display:grid;gap:2px}
2026-09-04 14:43:29 +00:00
.teach-banner small{color:var(--muted)}
2026-09-04 14:43:29 +00:00
.teach-banner .primary,.teach-banner .outline{flex:0 0 auto;white-space:nowrap}
2026-09-04 14:43:29 +00:00
.skill-draft{display:grid;gap:12px;width:min(760px,100%);margin:4px auto 18px;padding:16px 18px;border:1px solid #2f4a42;border-radius:14px;background:#0f1815;font-size:13.5px;line-height:1.55}
2026-09-04 14:43:29 +00:00
.skill-draft header{display:flex;align-items:center;gap:9px;color:var(--accent)}
2026-09-04 14:43:29 +00:00
.skill-draft header svg{width:16px;height:16px}
2026-09-04 14:43:29 +00:00
.skill-draft header small{margin-left:auto;color:var(--muted);font-weight:400}
2026-09-04 14:43:29 +00:00
.skill-draft label{display:grid;gap:6px;color:var(--muted);font-size:12.5px}
2026-09-06 05:39:06 +00:00
.skill-draft input,.skill-draft textarea{border:1px solid var(--border);border-radius:10px;background:var(--input);color:var(--ink);padding:9px 12px;outline:0;font:inherit;line-height:1.5}
2026-09-06 05:39:06 +00:00
.skill-draft input:focus,.skill-draft textarea:focus{border-color:var(--focus)}
2026-09-04 14:43:29 +00:00
.skill-draft textarea{resize:vertical}
2026-09-04 14:43:29 +00:00
.skill-draft p{margin:0;color:var(--ink)}
2026-09-04 14:43:29 +00:00
.skill-intent{color:#d8d8dc}
2026-09-04 14:43:29 +00:00
.skill-inputs code{margin-right:6px;padding:1px 7px;border-radius:6px;background:rgba(62,197,168,.14);color:var(--accent);font-size:12px}
2026-09-04 14:43:29 +00:00
.skill-steps ol{margin:0;padding-left:22px;color:var(--ink);cursor:text}
2026-09-04 14:43:29 +00:00
.skill-steps li{margin:2px 0}
2026-09-04 14:43:29 +00:00
.skill-steps li.more,.skill-check{color:var(--muted)}
2026-09-04 14:43:29 +00:00
.skill-draft .link{width:fit-content;padding:0;border:0;background:none;color:var(--accent);font-size:12px;cursor:pointer}
2026-09-06 05:39:06 +00:00
.skill-error{color:var(--error-fg);font-size:12.5px}
2026-09-04 14:43:29 +00:00
.skill-actions{display:flex;align-items:center;gap:8px}
2026-09-04 14:43:29 +00:00
.skill-actions .grow{flex:1}
2026-09-04 15:59:50 +00:00
.skill-actions .link{display:inline-flex;align-items:center;gap:5px}
2026-09-04 15:59:50 +00:00
.skill-actions .link svg{width:13px;height:13px}
2026-09-04 15:59:50 +00:00
/* Saved-skill rows in the composer menu: run on the left, pencil on the right */
.plus-menu-skill{display:flex;align-items:center;gap:2px}
2026-09-04 15:59:50 +00:00
.plus-menu-skill>button:first-child{flex:1;min-width:0}
2026-09-04 15:59:50 +00:00
.plus-menu-skill .skill-edit{flex:0 0 30px;width:30px;height:30px;padding:0;justify-content:center;color:var(--muted)}
2026-09-04 15:59:50 +00:00
.plus-menu-skill .skill-edit:hover{color:var(--ink)}
2026-09-04 15:59:50 +00:00
.plus-menu-skill .skill-edit svg{width:14px;height:14px;flex-basis:14px}
2026-09-05 04:20:19 +00:00
.skill-import-input{position:absolute;left:0;bottom:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;opacity:0}
2026-09-04 15:59:50 +00:00
/* Full skill editor */
.dialog.skill-edit{width:min(600px,calc(100vw - 28px));max-height:calc(100dvh - 28px);overflow:auto}
2026-09-04 15:59:50 +00:00
.dialog.skill-edit h2{display:flex;align-items:center;gap:9px}
2026-09-04 15:59:50 +00:00
.dialog.skill-edit h2 svg{width:17px;height:17px;color:var(--accent)}
2026-09-04 15:59:50 +00:00
.dialog.skill-edit label{display:grid;gap:6px;color:var(--muted);font-size:12.5px}
2026-09-06 05:39:06 +00:00
.dialog.skill-edit input,.dialog.skill-edit textarea{width:100%;border:1px solid var(--border);border-radius:10px;background:var(--input);color:var(--ink);padding:9px 12px;outline:0;font:inherit;font-size:13.5px;line-height:1.5;resize:vertical}
2026-09-06 05:39:06 +00:00
.dialog.skill-edit input:focus,.dialog.skill-edit textarea:focus{border-color:var(--focus)}
2026-09-05 04:20:19 +00:00
.dialog.skill-edit .dialog-actions{align-items:center;gap:8px;flex-wrap:wrap}
2026-09-04 15:59:50 +00:00
.dialog.skill-edit .dialog-actions .grow{flex:1}
2026-09-05 04:20:19 +00:00
.dialog.skill-edit .dialog-actions .outline svg{fill:none;stroke:currentColor;width:14px;height:14px}
2026-09-05 14:59:07 +00:00
.vault-pane{flex:1;container-type:inline-size}
2026-09-05 14:59:07 +00:00
.vault-form{display:grid;gap:12px}
2026-09-05 14:59:07 +00:00
.vault-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}
2026-09-05 14:59:07 +00:00
@container (max-width:310px){
.vault-fields{grid-template-columns:1fr}
}
2026-09-05 14:59:07 +00:00
.vault-form>.primary{justify-self:start}
2026-09-05 14:59:07 +00:00
.account-list{display:grid;gap:8px;margin-top:2px;padding-top:16px;border-top:1px solid var(--line)}
2026-09-05 14:59:07 +00:00
.vault-empty{margin:0;color:var(--faint);font-size:13px;line-height:1.5}
2026-09-06 05:39:06 +00:00
.account-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:10px 6px 10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--inset)}
2026-09-05 14:59:07 +00:00
.account-row-main{display:grid;gap:3px;min-width:0}
.account-row-main strong{overflow:hidden;font-size:14px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}
.account-row-main small{overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.account-row-main .account-notes{white-space:normal;overflow-wrap:anywhere}
.account-row .icon-button{color:var(--muted)}
.account-row .icon-button:hover:not(:disabled){color:var(--danger)}
@keyframes monitor-breathe{50%{transform:translateY(-4px);box-shadow:0 0 28px #65dcb325}}
@keyframes monitor-orbit{to{transform:rotate(360deg)}}
@keyframes monitor-blink{0%,43%,49%,100%{transform:scaleY(1)}46%{transform:scaleY(.15)}}
2026-09-08 17:14:29 +00:00
.memory-row details{font-size:12px;color:var(--muted)}
.memory-row summary{cursor:pointer;padding:4px 0}
.memory-row dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 10px;margin:8px 0}
.memory-row dd{margin:0;overflow-wrap:anywhere}
.memory-target{display:flex;align-items:center;gap:10px;padding:12px 16px;font-size:13px;color:var(--muted)}
.memory-target select{min-width:0;flex:1;background:var(--input);color:var(--ink);border:1px solid var(--border);border-radius:8px;padding:6px}
.memory-destinations{display:flex;gap:10px;flex-wrap:wrap}
.run-memory-usage{display:block;margin-top:6px}
.run-memory-usage button{font-size:11px;min-height:26px;padding:3px 8px}
.run-memory-list{display:grid;gap:8px;margin-top:8px}
.run-memory-item{display:block;border-left:2px solid var(--border);padding-left:8px}
.run-memory-item>span{display:block;white-space:pre-wrap;overflow-wrap:anywhere}
.message-run-details{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--muted);cursor:pointer}
.message-run-details svg{width:13px;height:13px}