:root{--bg: #111111;--bg-subtle: #161616;--surface: #1a1a1a;--surface-hover: #222222;--surface-alt: #141414;--surface-raised: #252525;--surface-glass: rgba(26,26,26,.85);--text: #f5f1eb;--text-secondary: rgba(245,241,235,.75);--muted: rgba(245,241,235,.55);--dim: rgba(245,241,235,.3);--faint: rgba(245,241,235,.08);--border: rgba(245,241,235,.1);--border-subtle: rgba(245,241,235,.06);--border-focus: rgba(245,241,235,.25);--blue: #2b4acb;--blue-light: #4a6aef;--blue-dim: rgba(43,74,203,.15);--blue-glow: rgba(43,74,203,.2);--red: #d42c2c;--yellow: #e8b831;--accent: var(--blue);--accent-light: var(--blue-light);--accent-dim: var(--blue-dim);--accent-glow: var(--blue-glow);--success: #34d399;--success-dim: rgba(52,211,153,.1);--error: #d42c2c;--error-dim: rgba(212,44,44,.1);--purple: #a78bfa;--display: "Space Grotesk", var(--sans);--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--radius: 0;--radius-sm: 0;--radius-lg: 0;--radius-xl: 0;--border-w: 2px;--msg-max: 720px;--panel-w-left: 260px;--panel-w-right: 280px;--panel-bg: #131313;--safe-bottom: env(safe-area-inset-bottom, 0px);--transition: .18s cubic-bezier(.4,0,.2,1);--transition-slow: .3s cubic-bezier(.4,0,.2,1);--shadow-sm: 2px 2px 0 rgba(0,0,0,.5);--shadow-md: 4px 4px 0 rgba(0,0,0,.4);--shadow-lg: 6px 6px 0 rgba(0,0,0,.3)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;background:var(--bg);color:var(--text);font-family:var(--sans);font-feature-settings:"cv02","cv03","cv04","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;text-rendering:optimizeLegibility}.app{display:flex;flex-direction:column;height:100%;height:100dvh}.hud{flex:1;display:grid;grid-template-columns:var(--panel-w-left) 1fr var(--panel-w-right);overflow:hidden;min-height:0}.hud-center{display:flex;flex-direction:column;min-height:0;overflow:hidden;border-left:var(--border-w) solid var(--border-focus);border-right:var(--border-w) solid var(--border-focus)}.hud-panel{display:flex;flex-direction:column;background:var(--surface);overflow:hidden;min-height:0}.hud-panel-header{padding:.75rem 1rem;border-bottom:var(--border-w) solid var(--border-focus);font-family:var(--display);font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:var(--surface-hover)}.hud-panel-body{flex:1;overflow-y:auto;padding:.625rem}.hud-panel-body::-webkit-scrollbar{width:4px}.hud-panel-body::-webkit-scrollbar-track{background:transparent}.hud-panel-body::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.dir-section{margin-bottom:.75rem}.dir-section-title{font-family:var(--display);font-size:.65rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:.5rem .375rem;border-bottom:1px solid var(--border);margin-bottom:.375rem}.dir-item{display:flex;align-items:center;gap:.5rem;padding:.45rem .625rem;font-size:.78rem;color:var(--text);border:var(--border-w) solid transparent;cursor:pointer;transition:all var(--transition)}.dir-item:hover{border-color:var(--blue);background:var(--blue-dim)}.dir-item-icon{font-family:var(--mono);font-size:.65rem;color:var(--blue-light);width:18px;text-align:center;flex-shrink:0}.dir-item-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dir-item-badge{font-family:var(--mono);font-size:.55rem;color:var(--muted);background:var(--faint);padding:.05rem .3rem;min-width:18px;text-align:center}.dir-empty{font-size:.68rem;color:var(--dim);padding:.5rem .25rem;font-family:var(--mono)}.dir-upgrade-btn{width:100%;margin-top:.5rem;padding:.5rem;font-family:var(--display);font-size:.72rem;font-weight:600;letter-spacing:.04em;background:var(--blue);color:#fff;border:none;cursor:pointer;text-transform:uppercase}.dir-upgrade-btn:hover{opacity:.85}.dir-upgrade-btn:disabled{opacity:.5;cursor:wait}.dir-manage-btn{background:transparent;color:var(--text);border:1px solid var(--border)}.dir-manage-btn:hover{border-color:var(--text)}.dir-skeleton{height:26px;background:linear-gradient(90deg,var(--faint) 25%,transparent 50%,var(--faint) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;margin-bottom:.25rem}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.status-good{color:var(--success)}.status-warn{color:var(--yellow)}.status-bad{color:var(--error)}.task-tabs{display:flex;border-bottom:var(--border-w) solid var(--border);flex-shrink:0}.task-tab{flex:1;padding:.625rem .375rem;font-family:var(--display);font-size:.65rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all var(--transition);text-align:center}.task-tab.active{color:var(--blue-light);border-bottom-color:var(--blue);background:var(--blue-dim)}.task-tab:hover{color:var(--text-secondary)}.task-badge{background:var(--blue);color:#fff;font-size:.48rem;padding:.05rem .25rem;margin-left:.2rem;display:none;vertical-align:top}.task-badge.visible{display:inline}.task-item{padding:.625rem;border-bottom:1px solid var(--border);font-size:.78rem;transition:background var(--transition)}.task-item:hover{background:var(--surface-hover)}.task-item-type{font-family:var(--mono);font-size:.58rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.25rem}.task-item-type.signing{color:var(--blue-light)}.task-item-type.approval{color:var(--yellow)}.task-item-type.next-step{color:var(--muted)}.task-item-title{color:var(--text-secondary);line-height:1.4;margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.task-item-action{display:inline-block;padding:.25rem .625rem;font-family:var(--mono);font-size:.6rem;background:var(--blue);color:#fff;border:none;cursor:pointer;text-decoration:none;text-transform:uppercase;letter-spacing:.04em;transition:all var(--transition)}.task-item-action:hover{box-shadow:var(--shadow-sm)}.task-empty{color:var(--muted);font-size:.75rem;text-align:center;padding:2rem .75rem;font-family:var(--mono);line-height:1.6}.hud-toggle{display:none}@media(max-width:1024px){.hud-toggle{display:flex;position:relative}.hud-toggle:after{content:attr(data-label);position:absolute;bottom:-14px;left:50%;transform:translate(-50%);font-family:var(--mono);font-size:.5rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);white-space:nowrap;pointer-events:none}}.hud-overlay{position:fixed;inset:0;background:#00000080;z-index:45;display:none}.hud-overlay.active{display:block}@media(max-width:1024px){.hud{grid-template-columns:1fr}.hud-panel{position:fixed;top:0;bottom:0;width:300px;z-index:50;transform:translate(-100%);transition:transform var(--transition-slow)}.hud-left{left:0}.hud-right{right:0;transform:translate(100%)}.hud-panel.panel-open{transform:translate(0)}.hud-center{border-left:none;border-right:none}}@media(max-width:768px){.hud-panel{width:85vw;max-width:320px}}.header{display:flex;align-items:center;gap:.625rem;padding:.625rem 1.25rem;border-bottom:var(--border-w) solid var(--border);background:var(--surface);flex-shrink:0;z-index:10}.brand-mark{width:22px;height:22px;background:var(--blue);border:var(--border-w) solid var(--text);position:relative;flex-shrink:0}.brand-mark:after{content:"";position:absolute;bottom:0;right:0;width:50%;height:50%;background:var(--red)}.header-title{font-family:var(--display);font-size:.8rem;font-weight:700;color:var(--text);letter-spacing:-.01em}.header-spacer{flex:1}.header-user{font-size:.68rem;color:var(--dim);font-family:var(--mono);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-status{display:flex;align-items:center;gap:.375rem;font-size:.65rem;color:var(--dim);font-family:var(--mono)}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--dim);transition:all var(--transition)}.status-dot.connected{background:var(--success);box-shadow:0 0 8px #34d39980}.status-dot.error{background:var(--error);box-shadow:0 0 8px #f8717180}.header-btn{background:transparent;border:var(--border-w) solid var(--border-focus);color:var(--text-secondary);height:32px;padding:0 .625rem;gap:.375rem;cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:.62rem;letter-spacing:.04em;text-transform:uppercase;transition:all var(--transition)}.header-btn:hover{border-color:var(--blue);color:var(--text);background:var(--blue-dim)}.messages{flex:1;overflow-y:auto;overflow-x:hidden;padding:1rem;scroll-behavior:smooth;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;position:relative}.messages::-webkit-scrollbar{width:3px}.messages::-webkit-scrollbar-track{background:transparent}.messages::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:3px}.messages::-webkit-scrollbar-thumb:hover{background:#ffffff24}.msg{max-width:var(--msg-max);margin:0 auto .75rem;animation:msg-in .3s cubic-bezier(.16,1,.3,1)}@keyframes msg-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.msg-speaker{font-family:var(--mono);font-size:.65rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:0;padding:0 2px;display:inline-block;position:relative;top:1px;margin-left:.75rem}.msg-user .msg-speaker{color:var(--blue)}.msg-system .msg-speaker{color:var(--dim)}.msg-error .msg-speaker{color:var(--error)}.msg-user .msg-bubble{background:transparent;border:var(--border-w) solid rgba(43,74,203,.35);border-left:4px solid var(--blue);color:var(--text)}.msg-system .msg-bubble{background:transparent;border:var(--border-w) solid var(--border)}.msg-error .msg-bubble{background:transparent;border:var(--border-w) solid rgba(212,44,44,.35);border-left:4px solid var(--red)}.msg-bubble{padding:.875rem 1rem;font-size:.875rem;line-height:1.7;letter-spacing:-.006em;max-width:100%;overflow-wrap:break-word;position:relative;transition:border-color var(--transition)}.msg-bubble:hover .msg-copy-btn{opacity:1}.msg-copy-btn{position:absolute;top:.5rem;right:.5rem;opacity:0;background:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.08);color:var(--muted);width:26px;height:26px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.6rem;transition:all var(--transition)}.msg-copy-btn:hover{color:var(--text);background:#0000008c;border-color:#ffffff26}.msg-copy-btn.copied{color:var(--success);border-color:#34d3994d}.msg-bubble code{font-family:var(--mono);font-size:.8em;background:#f5f1eb0f;padding:.15em .4em;border:1px solid rgba(245,241,235,.08)}.msg-bubble pre{position:relative;background:var(--bg);border:var(--border-w) solid var(--border);border-left:4px solid var(--blue);padding:.875rem 1rem;margin:.625rem 0;overflow-x:auto;font-family:var(--mono);font-size:.78rem;line-height:1.6}.msg-bubble pre code{background:none;padding:0;font-size:inherit;border:none}.msg-bubble strong{color:var(--blue-light);font-weight:600}.msg-bubble em{color:var(--text-secondary);font-style:italic}.msg-bubble a{color:var(--blue);text-decoration:none;border-bottom:1px solid rgba(96,165,250,.3);transition:all var(--transition)}.msg-bubble a:hover{color:#93bbfc;border-bottom-color:#60a5fa99}.msg-bubble h1,.msg-bubble h2,.msg-bubble h3,.msg-bubble h4,.msg-bubble h5,.msg-bubble h6{font-family:var(--sans);color:var(--text);line-height:1.35;letter-spacing:-.02em}.msg-bubble h1{font-size:1.25rem;font-weight:700;margin:.875em 0 .375em}.msg-bubble h2{font-size:1.1rem;font-weight:600;margin:.75em 0 .325em}.msg-bubble h3{font-size:.95rem;font-weight:600;margin:.625em 0 .275em;color:var(--text-secondary)}.msg-bubble ul,.msg-bubble ol{padding-left:1.25rem;margin:.5rem 0}.msg-bubble li{margin:.25rem 0;line-height:1.6}.msg-bubble li::marker{color:var(--dim)}.msg-bubble hr{border:none;border-top:1px solid var(--border);margin:.75rem 0}.msg-bubble table{border-collapse:collapse;width:100%;margin:.5rem 0;font-size:.8rem;border-radius:var(--radius-sm);overflow:hidden}.msg-bubble th,.msg-bubble td{border:1px solid var(--border);padding:.5rem .625rem;text-align:left}.msg-bubble th{background:#ffffff08;font-weight:600;color:var(--text-secondary);font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.msg-bubble td{color:var(--text-secondary)}.msg-bubble blockquote{border-left:3px solid var(--blue);padding:.375rem .875rem;color:var(--text-secondary);margin:.625rem 0;background:#2b4acb0a}.msg-bubble .checkbox{display:inline-block;width:15px;height:15px;border:1.5px solid var(--dim);border-radius:4px;vertical-align:middle;margin-right:.375rem;position:relative;transition:all var(--transition)}.msg-bubble .checkbox.checked{background:var(--success);border-color:var(--success);box-shadow:0 0 6px #34d3994d}.msg-bubble .checkbox.checked:after{content:"";position:absolute;left:3px;top:1px;width:5px;height:8px;border:solid var(--bg);border-width:0 2px 2px 0;transform:rotate(45deg)}.code-copy-btn{position:absolute;top:.5rem;right:.5rem;background:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.06);color:var(--muted);width:26px;height:26px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.6rem;transition:all var(--transition);opacity:0}.msg-bubble pre:hover .code-copy-btn{opacity:1}.code-copy-btn:hover{color:var(--text);background:#0000008c;border-color:#ffffff1f}.code-copy-btn.copied{color:var(--success);border-color:#34d3994d}.msg-ts{font-size:.62rem;color:var(--dim);margin-top:.3rem;font-family:var(--mono);letter-spacing:.02em}.msg-user .msg-ts{text-align:right}.date-sep{max-width:var(--msg-max);margin:.75rem auto;text-align:center;font-family:var(--mono);font-size:.65rem;color:var(--dim);display:flex;align-items:center;gap:.75rem}.date-sep:before,.date-sep:after{content:"";flex:1;height:1px;background:var(--border)}.tool-card{max-width:var(--msg-max);margin:0 auto .5rem;background:var(--surface);border:var(--border-w) solid var(--border);overflow:hidden;animation:msg-in .35s cubic-bezier(.16,1,.3,1);transition:all var(--transition)}.tool-card.completed-success{border-left:4px solid var(--success)}.tool-card.completed-error{border-left:4px solid var(--red)}.tool-emoji{flex-shrink:0;width:20px;text-align:center;font-family:var(--mono);font-size:.72rem;line-height:1;color:var(--dim)}.tool-card-row{padding:.625rem .875rem;font-family:var(--mono);font-size:.76rem;display:flex;align-items:center;gap:.5rem}.tool-icon{flex-shrink:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:.65rem}.tool-icon.running{color:var(--blue);animation:spin .8s linear infinite}.tool-icon.success{color:var(--success)}.tool-icon.error{color:var(--error)}.tool-icon.rejected{color:var(--dim)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tool-label{color:var(--muted);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-name{color:var(--blue-light);font-weight:500}.tool-timer{color:var(--dim);font-size:.62rem;font-variant-numeric:tabular-nums;min-width:36px;text-align:right}.tool-detail-toggle{background:none;border:none;color:var(--dim);cursor:pointer;font-size:.65rem;font-family:var(--mono);padding:0 .25rem;transition:color var(--transition)}.tool-detail-toggle:hover{color:var(--muted)}.tool-detail-body{display:none;border-top:1px solid var(--border);padding:.625rem .875rem;font-family:var(--mono);font-size:.72rem;color:var(--muted);max-height:200px;overflow-y:auto;background:#00000026}.tool-detail-body.open{display:block}.tool-detail-body pre{margin:0;white-space:pre-wrap;word-break:break-all}.tool-detail-section{margin-top:.625rem;padding-top:.625rem;border-top:1px solid var(--border-subtle)}.tool-detail-title{font-family:var(--mono);font-size:.62rem;color:var(--dim);letter-spacing:.05em;text-transform:uppercase;margin-bottom:.4rem}.tool-summary{color:var(--text-secondary);margin-bottom:.45rem;line-height:1.5}.tool-kv{display:grid;grid-template-columns:minmax(100px,160px) 1fr;gap:.4rem .6rem;align-items:start}.tool-kv-key{color:var(--dim);text-transform:uppercase;font-size:.62rem;letter-spacing:.04em}.tool-kv-value{color:var(--text);word-break:break-word}.tool-result-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:6px;background:#0000001a}.tool-result-table{width:100%;border-collapse:collapse;font-size:.7rem}.tool-result-table th,.tool-result-table td{padding:.45rem .5rem;border-bottom:1px solid var(--border-subtle);border-right:1px solid var(--border-subtle);text-align:left;white-space:nowrap;vertical-align:top}.tool-result-table th{color:var(--text-secondary);font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;background:#ffffff08;font-size:.62rem}.tool-result-table td:last-child,.tool-result-table th:last-child{border-right:0}.tool-status-chip{display:inline-flex;align-items:center;gap:.25rem;font-size:.6rem;text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--border);border-radius:999px;padding:.1rem .4rem;margin-bottom:.45rem;color:var(--dim)}.tool-status-chip.success{border-color:#34d39966;color:var(--success)}.tool-status-chip.error{border-color:#f8717166;color:var(--error)}.tool-status-chip.rejected{border-color:var(--border);color:var(--dim)}.signing-link-tile{display:flex;gap:1rem;align-items:flex-start;padding:1rem;margin-top:.5rem;background:var(--surface);border:var(--border-w) solid var(--blue);box-shadow:var(--shadow-md)}.signing-link-icon{font-size:1.5rem;line-height:1;flex-shrink:0;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;background:var(--blue);color:var(--bg)}.signing-link-body{flex:1;min-width:0}.signing-link-title{font-weight:700;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.signing-link-doc-id{font-family:var(--font-mono);font-size:.75rem;color:var(--dim);margin-bottom:.75rem;word-break:break-all}.signing-link-btn{display:inline-block;padding:.5rem 1.25rem;background:var(--blue);color:var(--bg);text-decoration:none;font-weight:700;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;transition:background .15s}.signing-link-btn:hover{background:var(--fg)}.approval-card{max-width:var(--msg-max);margin:0 auto .625rem;background:var(--surface);border:var(--border-w) solid var(--yellow);overflow:hidden;animation:msg-in .35s cubic-bezier(.16,1,.3,1);box-shadow:var(--shadow-md)}.approval-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-bottom:var(--border-w) solid rgba(232,184,49,.2);background:#e8b8310f}.approval-header .approval-icon{font-family:var(--mono);font-size:.72rem;color:var(--yellow)}.approval-header .approval-title{font-family:var(--display);font-size:.72rem;font-weight:600;color:var(--yellow);text-transform:uppercase;letter-spacing:.06em;flex:1}.approval-countdown{font-family:var(--mono);font-size:.68rem;color:var(--dim);font-variant-numeric:tabular-nums;min-width:32px;text-align:right}.approval-body{padding:.875rem 1rem}.approval-desc{font-size:.85rem;color:var(--text);margin-bottom:.75rem;line-height:1.5}.approval-tool-name{font-family:var(--mono);font-size:.72rem;color:var(--dim);margin-bottom:.875rem}.approval-args{background:var(--bg);border:var(--border-w) solid var(--border);padding:.625rem .75rem;margin-bottom:.875rem;font-family:var(--mono);font-size:.72rem;color:var(--muted);line-height:1.5;max-height:150px;overflow-y:auto;white-space:pre-wrap}.approval-fields{display:flex;flex-direction:column;gap:.5rem;background:var(--bg);border:var(--border-w) solid var(--border);padding:.75rem;margin-bottom:.875rem;max-height:220px;overflow-y:auto}.approval-field{display:flex;gap:.75rem;align-items:baseline;font-size:.8rem;line-height:1.5}.approval-field-label{font-family:var(--mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;color:var(--dim);min-width:100px;flex-shrink:0}.approval-field-value{font-family:var(--sans);color:var(--text);word-break:break-word}.approval-field-value.money{color:var(--blue-light);font-family:var(--mono);font-weight:600}.approval-field-list{list-style:none;padding:0;margin:0}.approval-field-list li:before{content:"•";color:var(--dim);margin-right:.375rem}@media(max-width:360px){.approval-field{flex-direction:column;gap:.125rem}.approval-field-label{min-width:unset}}.approval-actions{display:flex;gap:.5rem;padding-top:.25rem}.approval-btn{flex:1;padding:.625rem .875rem;border:var(--border-w) solid var(--border);font-family:var(--display);font-size:.78rem;font-weight:600;cursor:pointer;transition:all var(--transition);letter-spacing:-.01em}.approval-btn:active{transform:scale(.97)}.approval-btn.approve{background:var(--blue);border-color:var(--blue);color:#fff}.approval-btn.approve:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.approval-btn.reject{background:transparent;border-color:var(--border);color:var(--muted)}.approval-btn.reject:hover{border-color:var(--red);color:var(--red)}.approval-btn:disabled{opacity:.4;cursor:default;box-shadow:none}.approval-resolved{padding:.625rem .875rem;font-family:var(--mono);font-size:.78rem;text-align:center;font-weight:500}.approval-resolved.approved{color:var(--success)}.approval-resolved.rejected{color:var(--dim)}.typing{display:none;max-width:var(--msg-max);margin:0 auto .5rem;padding:0 1rem}.typing.active{display:block}.typing-dots{display:inline-flex;gap:5px;padding:.625rem .875rem;background:var(--surface);border:var(--border-w) solid var(--border)}.typing-dot{width:5px;height:5px;animation:bounce .7s ease-in-out infinite}.typing-dot:nth-child(1){background:var(--blue)}.typing-dot:nth-child(2){background:var(--red);animation-delay:.15s}.typing-dot:nth-child(3){background:var(--yellow);animation-delay:.3s}@keyframes bounce{0%,to{transform:translateY(0);opacity:.4}50%{transform:translateY(-5px);opacity:1}}.scroll-fab{position:absolute;bottom:1rem;left:50%;transform:translate(-50%) translateY(60px);background:var(--surface);border:var(--border-w) solid var(--text);color:var(--text);width:36px;height:36px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.85rem;box-shadow:var(--shadow-md);transition:all .25s cubic-bezier(.16,1,.3,1);z-index:5;opacity:0;pointer-events:none}.scroll-fab.visible{transform:translate(-50%) translateY(0);opacity:1;pointer-events:auto}.scroll-fab:hover{border-color:var(--border-focus);color:var(--text);box-shadow:var(--shadow-lg),0 0 12px #ffffff0d}.input-area{flex-shrink:0;border-top:var(--border-w) solid var(--border);background:var(--surface);padding:.625rem 1rem;padding-bottom:calc(.625rem + var(--safe-bottom));position:relative}.input-wrap{display:flex;align-items:flex-end;gap:.5rem;max-width:var(--msg-max);margin:0 auto}.input-field{flex:1;min-height:44px;max-height:120px;padding:.625rem .875rem;background:var(--bg);border:var(--border-w) solid var(--border);color:var(--text);font-family:var(--sans);font-size:.875rem;resize:none;outline:none;line-height:1.5;overflow-y:auto;transition:all var(--transition)}.input-field:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-dim)}.input-field::placeholder{color:var(--dim)}.send-btn{width:44px;height:44px;background:var(--blue);border:var(--border-w) solid var(--blue);color:#fff;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition)}.send-btn:disabled{opacity:.25;cursor:default}.send-btn:hover:not(:disabled){box-shadow:var(--shadow-sm);transform:translateY(-1px)}.send-btn:active:not(:disabled){transform:scale(.95) translateY(0)}.input-hint{position:absolute;bottom:100%;left:0;right:0;font-family:var(--mono);font-size:.65rem;color:var(--dim);padding:.375rem 1rem;display:none}.input-hint.active{display:block;animation:fade-in .3s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.input-shortcut{display:inline-flex;align-items:center;gap:.3rem;color:var(--dim)}.input-shortcut kbd{background:#ffffff0a;border:1px solid var(--border);border-radius:4px;padding:.05rem .35rem;font-family:var(--mono);font-size:.58rem;line-height:1.6}.cmd-menu{position:absolute;bottom:100%;left:1rem;right:1rem;max-width:var(--msg-max);margin:0 auto .375rem;background:var(--surface);border:var(--border-w) solid var(--border);box-shadow:var(--shadow-lg);overflow:hidden;display:none;z-index:20}.cmd-menu.open{display:block;animation:slide-up .2s cubic-bezier(.16,1,.3,1)}@keyframes slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.cmd-item{display:flex;align-items:center;gap:.75rem;padding:.625rem 1rem;cursor:pointer;transition:background var(--transition)}.cmd-item:hover,.cmd-item.active{background:#ffffff0a}.cmd-item.active{background:var(--blue-dim)}.cmd-item-icon{width:30px;height:30px;background:#f5f1eb0a;border:var(--border-w) solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.75rem;flex-shrink:0}.cmd-item.active .cmd-item-icon{border-color:var(--blue)}.cmd-item-text{flex:1}.cmd-item-name{font-family:var(--mono);font-size:.78rem;color:var(--text);font-weight:500}.cmd-item-desc{font-size:.68rem;color:var(--dim);margin-top:.15rem}.welcome{max-width:var(--msg-max);margin:0 auto;padding:2.5rem 1.25rem;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;animation:welcome-in .6s cubic-bezier(.16,1,.3,1)}@keyframes welcome-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.welcome-icon{width:56px;height:56px;background:var(--blue);border:var(--border-w) solid var(--text);display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem;position:relative}.welcome-icon:after{content:"";position:absolute;bottom:0;right:0;width:50%;height:50%;background:var(--red)}.welcome-title{font-family:var(--display);font-size:1.15rem;color:var(--text);font-weight:700;margin-bottom:.5rem;letter-spacing:-.02em}.welcome-sub{font-size:.85rem;color:var(--muted);line-height:1.6;margin-bottom:2rem;max-width:400px}.welcome-grid{display:grid;grid-template-columns:1fr 1fr;gap:.625rem;width:100%;max-width:440px}.welcome-card{background:var(--surface);border:var(--border-w) solid var(--border);padding:.875rem;cursor:pointer;transition:all .15s ease;text-align:left;position:relative;overflow:hidden}.welcome-card:hover{border-color:var(--blue);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.welcome-card:active{transform:translateY(0);box-shadow:none}.welcome-card-icon{font-family:var(--mono);font-size:.7rem;margin-bottom:.5rem;position:relative;color:var(--dim)}.welcome-card-title{font-family:var(--display);font-size:.78rem;color:var(--text);font-weight:600;position:relative}.welcome-card-desc{font-size:.68rem;color:var(--dim);margin-top:.25rem;line-height:1.4;position:relative}.welcome-commands{margin-top:1.5rem;font-size:.68rem;color:var(--dim);font-family:var(--mono);letter-spacing:.02em}.welcome-commands span{color:var(--muted)}.login-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:2rem 1.5rem;gap:2rem;position:relative;overflow:hidden}.login-screen:before{content:"";position:absolute;width:500px;height:500px;background:radial-gradient(circle,rgba(43,74,203,.06) 0%,transparent 70%);top:30%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.login-screen:after{content:"";position:absolute;width:300px;height:300px;background:radial-gradient(circle,rgba(212,44,44,.04) 0%,transparent 70%);bottom:10%;right:10%;pointer-events:none}.login-card{width:100%;max-width:380px;background:var(--surface);border:var(--border-w) solid var(--text);overflow:hidden;box-shadow:var(--shadow-lg);position:relative;animation:card-in .5s cubic-bezier(.16,1,.3,1) .15s both}@keyframes card-in{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.login-accent{height:4px;background:linear-gradient(to right,var(--blue) 33.33%,var(--red) 33.33%,var(--red) 66.66%,var(--yellow) 66.66%)}.login-body{padding:2rem 1.75rem;display:flex;flex-direction:column;gap:1.125rem}.login-title{font-family:var(--display);font-size:.85rem;font-weight:700;color:var(--muted);letter-spacing:.08em;text-align:center;text-transform:uppercase}.login-input{width:100%;padding:.75rem .875rem;background:var(--bg);border:var(--border-w) solid var(--border);color:var(--text);font-family:var(--sans);font-size:.875rem;outline:none;transition:all var(--transition)}.login-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-dim)}.login-btn{width:100%;padding:.75rem;background:var(--blue);border:var(--border-w) solid var(--blue);color:#fff;font-family:var(--display);font-size:.85rem;font-weight:700;cursor:pointer;letter-spacing:-.01em;transition:all var(--transition);text-transform:uppercase}.login-btn:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.login-btn:active{transform:translateY(0) scale(.98)}.login-btn:disabled{opacity:.4;cursor:default;box-shadow:none;transform:none}.login-error{font-size:.8rem;color:var(--error);text-align:center;display:none}.login-hint{font-size:.72rem;color:var(--dim);text-align:center}.login-hint a{color:var(--blue-light);text-decoration:none;border-bottom:1px solid rgba(43,74,203,.3);transition:all var(--transition)}.login-hint a:hover{border-bottom-color:var(--blue)}.tos-check{display:flex;align-items:flex-start;gap:.5rem;font-size:.72rem;color:var(--muted);cursor:pointer;line-height:1.5}.tos-check input[type=checkbox]{margin-top:2px;accent-color:var(--blue);cursor:pointer;flex-shrink:0}.tos-check a{color:var(--blue-light);text-decoration:none;border-bottom:1px solid rgba(43,74,203,.3)}.tos-check a:hover{border-bottom-color:var(--blue)}.toast-container{position:fixed;top:0;left:0;right:0;display:flex;flex-direction:column;align-items:center;padding-top:.75rem;z-index:100;pointer-events:none}.toast{background:var(--surface);border:var(--border-w) solid var(--text);padding:.625rem 1.125rem;font-family:var(--mono);font-size:.72rem;color:var(--text);box-shadow:var(--shadow-md);animation:toast-in .35s cubic-bezier(.16,1,.3,1);margin-bottom:.375rem}.toast.success{border-color:var(--success);color:var(--success)}.toast.error{border-color:var(--red);color:var(--red)}@keyframes toast-in{0%{opacity:0;transform:translateY(-12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:translateY(-8px) scale(.95)}}.hidden{display:none!important}::selection{background:#2b4acb4d;color:var(--text)}@media(max-width:480px){.msg-bubble{font-size:.82rem;padding:.75rem .875rem}.header{padding:.5rem .875rem}.welcome-grid{grid-template-columns:1fr}.welcome{padding:2rem 1rem}.login-body{padding:1.5rem 1.25rem}}
