pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub Dark Dimmed
  Description: Dark dimmed theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Colors taken from GitHub's CSS
*/.hljs{color:#adbac7;background:#22272e}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#f47067}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#dcbdfb}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#6cb6ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#96d0ff}.hljs-built_in,.hljs-symbol{color:#f69d50}.hljs-comment,.hljs-code,.hljs-formula{color:#768390}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#8ddb8c}.hljs-subst{color:#adbac7}.hljs-section{color:#316dca;font-weight:700}.hljs-bullet{color:#eac55f}.hljs-emphasis{color:#adbac7;font-style:italic}.hljs-strong{color:#adbac7;font-weight:700}.hljs-addition{color:#b4f1b4;background-color:#1b4721}.hljs-deletion{color:#ffd8d3;background-color:#78191b}.app{display:flex;height:100vh;width:100vw}.sidebar{width:280px;min-width:280px;background:linear-gradient(to right,var(--forge-ink-1) 0%,var(--forge-ink-0) 100%);border-right:1px solid var(--forge-border);display:flex;flex-direction:column;height:100%;transition:width .2s,min-width .2s}.sidebar.collapsed{width:36px;min-width:36px}.sidebar-header{padding:14px 16px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--forge-border);justify-content:space-between}.collapse-btn{background:none;border:none;color:var(--forge-text-dim);cursor:pointer;font-size:14px;padding:4px 6px;border-radius:4px;transition:color .2s;flex-shrink:0}.collapse-btn:hover{color:var(--forge-amber)}.sidebar.collapsed .collapse-btn{margin:0 auto;font-size:16px}.sidebar.collapsed .sidebar-header{padding:16px 4px 12px;justify-content:center}.sidebar-logo{height:30px;width:30px;object-fit:cover;border-radius:4px;border:1px solid var(--forge-brass-line);box-shadow:0 0 12px var(--forge-brass-glow);background:var(--forge-ink-2)}.sidebar-title{font-size:16px;font-weight:600;color:var(--forge-amber);letter-spacing:2px}.new-chat-btn{margin:14px 16px 10px;height:38px;display:flex;align-items:center;gap:10px;padding:0 12px;background:linear-gradient(180deg,var(--forge-ink-2),var(--forge-ink-1));border:1px solid var(--forge-brass-line);border-radius:5px;color:var(--forge-text);font-family:var(--forge-sans);font-size:13px;font-weight:500;cursor:pointer;transition:all .12s ease;position:relative;overflow:hidden}.new-chat-btn:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--forge-brass);box-shadow:0 0 8px var(--forge-brass-glow)}.new-chat-btn:hover{background:linear-gradient(180deg,var(--forge-ink-3),var(--forge-ink-2));border-color:var(--forge-brass)}.shortcuts-section{padding:8px 16px;border-bottom:1px solid var(--forge-border)}.shortcuts-label{font-family:var(--forge-mono);font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--forge-text-dim);margin-bottom:6px}.shortcut-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;font-size:13px;color:var(--forge-text);transition:background .15s}.shortcut-item:hover{background:var(--forge-hover)}.shortcut-dot{width:6px;height:6px;border-radius:50%;background:var(--forge-amber);flex-shrink:0}.chat-history{flex:1;overflow-y:auto;padding:8px}.chat-history-label{font-family:var(--forge-mono);font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--forge-text-dim);padding:8px 8px 6px}.chat-item{padding:8px 12px;border-radius:6px;cursor:pointer;margin-bottom:2px;transition:background .15s}.chat-item:hover{background:var(--forge-hover)}.chat-item.active{background:var(--forge-brass-faint);box-shadow:inset 2px 0 0 var(--forge-brass)}.chat-item-row{display:flex;align-items:center;gap:4px}.chat-item-title{font-size:13px;color:var(--forge-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.chat-delete-btn{background:none;border:none;color:var(--forge-text-dim);cursor:pointer;font-size:14px;padding:0 4px;border-radius:4px;opacity:0;transition:opacity .15s,color .15s;flex-shrink:0}.chat-item:hover .chat-delete-btn{opacity:1}.chat-delete-btn:hover{color:var(--forge-copper)}.chat-delete-btn.confirm{opacity:1;color:var(--forge-copper);font-weight:700}.chat-item-date{font-family:var(--forge-mono);font-size:10px;color:var(--forge-text-dim);margin-top:2px;letter-spacing:.04em}.sidebar-footer{padding:12px 16px;border-top:1px solid var(--forge-border);background:var(--forge-ink-1);display:flex;align-items:center;gap:8px}.mode-badge{font-family:var(--forge-mono);font-size:10px;padding:3px 8px;border-radius:4px;font-weight:600;letter-spacing:.06em}.mode-badge.rushing{background:#c0451533;color:var(--forge-copper)}.mode-badge.researching{background:#f0a83033;color:var(--forge-amber)}.mode-badge.planning{background:#a0704033;color:var(--forge-trace)}.brain-status{font-family:var(--forge-mono);font-size:10px;color:var(--forge-text-dim);letter-spacing:.04em}.brain-status.active{color:var(--forge-amber);animation:pulse 1.2s infinite}.main{flex:1;display:flex;flex-direction:column;height:100%;background:var(--forge-bg);position:relative}.main:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--forge-brass-faint) 1px,transparent 1px),linear-gradient(90deg,var(--forge-brass-faint) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(ellipse at 30% 20%,black 0%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 30% 20%,black 0%,transparent 70%);opacity:.5;pointer-events:none;z-index:0}.main>*{position:relative;z-index:1}.content-area{flex:1;display:flex;min-height:0}.chat-column{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:8px 24px;border-bottom:1px solid var(--forge-brass-line);background:#0c0805cc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-shrink:0;gap:12px;min-height:40px}.chat-header-title{font-family:IBM Plex Mono,monospace;font-size:.8rem;color:var(--forge-brass-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;cursor:pointer;border-bottom:1px dashed var(--forge-brass-line);padding-bottom:1px}.chat-header-title:hover{color:var(--forge-brass)}.chat-header-title-input{font-family:IBM Plex Mono,monospace;font-size:.8rem;color:var(--forge-brass);background:#080503;border:1px solid var(--forge-brass-line);border-radius:3px;padding:2px 8px;outline:none;min-width:0;flex:1}.chat-header-chips{display:flex;gap:8px;flex-shrink:0}.chat-header-chip{font-family:IBM Plex Mono,monospace;font-size:.65rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:3px 10px;border-radius:3px;border:1px solid var(--forge-brass-line);color:var(--forge-brass-soft);background:transparent}.chat-header-chip.mode-rushing{color:#fb9d59;border-color:#fb9d5966;background:#fb9d5914}.chat-header-chip.mode-researching{color:#6dba70;border-color:#6dba7066;background:#6dba7014}.chat-header-chip.mode-planning{color:#67aaed;border-color:#67aaed66;background:#67aaed14}.chat-header-chip.chip-count{color:var(--forge-text-muted);border-color:#484848}.messages{flex:1;overflow-y:auto;padding:24px 24px 12px;display:flex;flex-direction:column;gap:16px}.message{max-width:720px;width:100%;margin:0 auto;display:flex;gap:12px}.message.msg-user{flex-direction:column;align-items:flex-end}.message.msg-user .message-meta{display:flex;flex-direction:row-reverse;align-items:center;gap:8px;font-family:var(--forge-mono);font-size:10px;letter-spacing:.08em;color:var(--forge-text-dim);margin-bottom:6px;align-self:flex-end}.message.msg-user .msg-who{color:var(--forge-text-dim);font-weight:600;text-transform:uppercase}.message.msg-user .msg-time{color:#47423a}.message.msg-user .message-avatar,.message.msg-user .message-sender{display:none}.message.msg-user .message-content{max-width:75%}.message.msg-user .message-text{padding:12px 16px;background:var(--forge-brass-faint);border:1px solid var(--forge-brass-line);border-radius:4px;position:relative}.message.msg-user .message-text:before{content:"";position:absolute;right:-1px;top:0;bottom:0;width:2px;background:var(--forge-brass)}.message.msg-forge{display:grid;grid-template-columns:32px 1fr;gap:14px}.message.msg-forge .message-meta{display:flex;align-items:center;gap:8px;font-family:var(--forge-mono);font-size:10px;letter-spacing:.08em;color:#47423a;margin-bottom:6px}.message.msg-forge .msg-who{color:var(--forge-brass);font-weight:600;text-transform:uppercase}.message.msg-forge .msg-time{color:#47423a}.message.msg-forge .message-sender{display:none}.message-avatar{width:32px;height:32px;border-radius:4px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.message-avatar.user{background:var(--forge-user-bubble);color:var(--forge-amber)}.message-avatar.forge{background:var(--forge-ink-2);padding:0;overflow:hidden;border:1px solid var(--forge-brass-line);box-shadow:0 0 12px var(--forge-brass-glow)}.forge-avatar-icon{width:100%;height:100%;object-fit:cover;border-radius:4px}.message-content{flex:1;min-width:0}.message-sender{font-family:var(--forge-mono);font-size:11px;font-weight:600;color:var(--forge-text-dim);margin-bottom:4px;letter-spacing:.04em}.message-text{font-size:14px;line-height:1.6;color:var(--forge-text);word-wrap:break-word}.message-text p{margin-bottom:8px}.message-text p:last-child{margin-bottom:0}.message-text code{background:var(--forge-input-bg);padding:2px 6px;border-radius:4px;font-size:13px;font-family:var(--forge-mono)}.message-text pre{background:var(--forge-input-bg);padding:12px 16px;border-radius:var(--forge-radius);overflow-x:auto;margin:8px 0;border:1px solid var(--forge-border)}.message-text pre code{background:none;padding:0}.welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;opacity:.7}.welcome-logo{height:64px;object-fit:contain}.welcome-text{font-size:16px;color:var(--forge-text-dim)}.input-area{padding:12px 24px 20px;max-width:768px;width:100%;margin:0 auto}.attached-files{display:flex;flex-wrap:wrap;gap:6px;padding:0 4px 8px}.file-chip{display:flex;align-items:center;gap:6px;background:var(--forge-input-bg);border:1px solid var(--forge-border);border-radius:8px;padding:4px 8px;font-size:12px;color:var(--forge-text)}.file-icon{width:14px;height:14px;border-radius:3px;flex-shrink:0}.file-icon.img{background:var(--forge-amber)}.file-icon.pdf{background:var(--forge-copper)}.file-icon.file{background:var(--forge-text-dim)}.file-name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-remove{background:none;border:none;color:var(--forge-text-dim);cursor:pointer;font-size:14px;padding:0 2px;line-height:1}.file-remove:hover{color:var(--forge-copper)}.input-wrapper{display:flex;align-items:flex-end;gap:8px;background:var(--forge-ink-2);border:1px solid var(--forge-border-bright);border-radius:var(--forge-radius);padding:8px 12px;transition:border-color .12s ease}.input-wrapper:focus-within{border-color:var(--forge-brass-line)}.attach-btn{width:32px;height:32px;border-radius:8px;border:1px solid var(--forge-border);background:transparent;color:var(--forge-text-dim);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;transition:color .2s,border-color .2s}.attach-btn:hover{color:var(--forge-amber);border-color:var(--forge-amber)}.attach-btn:disabled{opacity:.3;cursor:not-allowed}.input-wrapper textarea{flex:1;background:none;border:none;outline:none;color:var(--forge-text);font-size:14px;font-family:inherit;line-height:1.5;resize:none;max-height:120px;min-height:20px}.input-wrapper textarea::placeholder{color:var(--forge-text-dim)}.send-btn{width:32px;height:32px;border-radius:var(--forge-radius-sm);border:1px solid var(--forge-brass-line);background:var(--forge-brass-faint);color:var(--forge-brass);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;transition:all .12s ease}.send-btn:hover{background:var(--forge-brass);color:var(--forge-ink-0);border-color:var(--forge-brass)}.send-btn:disabled{opacity:.3;cursor:not-allowed}.mic-btn{min-width:40px;height:40px;border-radius:50%;border:2px solid var(--forge-amber);background:#f0a83014;color:var(--forge-amber);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;letter-spacing:.5px;flex-shrink:0;transition:all .2s;padding:0;font-family:var(--forge-mono);user-select:none;-webkit-user-select:none;touch-action:none}.mic-btn:hover{background:#f0a8302e;border-color:var(--forge-amber);transform:scale(1.08)}.mic-btn:disabled{opacity:.3;cursor:not-allowed}.mic-btn.recording{color:#fff;border-color:#e04040;background:#e0404040;animation:mic-pulse 1.2s ease-in-out infinite;font-size:11px;min-width:52px;border-radius:20px}.mic-btn.transcribing{color:var(--forge-amber);border-color:var(--forge-brass-line);animation:mic-spin 1s linear infinite}@keyframes mic-pulse{0%,to{box-shadow:0 0 #cc55004d}50%{box-shadow:0 0 0 6px #c500}}@keyframes mic-spin{0%{opacity:1}50%{opacity:.4}to{opacity:1}}.mic-btn.speaking{color:#fff;background:var(--forge-amber);border-color:var(--forge-amber);animation:mic-pulse 1.2s ease-in-out infinite;font-size:9px;font-weight:700;letter-spacing:.5px}.stop-btn{width:32px;height:32px;border-radius:8px;border:none;background:var(--forge-copper);color:#1e1e1e;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;transition:opacity .2s}.stop-btn:hover{opacity:.85}.copy-icon{background:none;border:none;color:var(--forge-text-dim);font-size:13px;cursor:pointer;opacity:.5;transition:opacity .2s,color .2s;margin-left:8px;padding:2px 6px;border-radius:4px}.copy-icon:hover{opacity:1;color:var(--forge-amber);background:var(--forge-border)}.copy-icon.copied{opacity:1;color:var(--forge-amber)}.export-bar{display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:8px;border-top:1px solid var(--forge-border)}.export-btn{padding:5px 12px;background:transparent;border:1px solid var(--forge-border);border-radius:6px;color:var(--forge-text-dim);font-size:12px;cursor:pointer;transition:color .2s,border-color .2s}.export-btn:hover{color:var(--forge-amber);border-color:var(--forge-amber)}.export-btn:disabled{opacity:.4;cursor:not-allowed}.export-saved{font-size:11px;color:var(--forge-amber)}.export-saved-link{cursor:pointer;transition:color .2s}.export-saved-link:hover{color:var(--forge-orange);text-decoration:underline}.code-block-wrapper{position:relative;margin:8px 0}.code-block-header{display:flex;align-items:center;justify-content:space-between;background:var(--forge-ink-1);padding:6px 16px;border-radius:var(--forge-radius) var(--forge-radius) 0 0;border:1px solid var(--forge-border);border-bottom:none}.code-block-lang{font-size:10px;font-family:var(--forge-mono);color:var(--forge-text-dim);text-transform:lowercase;letter-spacing:.06em}.code-block-copy{background:none;border:none;color:var(--forge-text-dim);font-family:var(--forge-mono);font-size:10px;cursor:pointer;padding:2px 8px;border-radius:var(--forge-radius-sm);transition:color .2s,background .2s;letter-spacing:.04em}.code-block-copy:hover{color:var(--forge-amber);background:#f0a8301a}.code-block-copy.copied{color:var(--forge-amber)}.code-block-wrapper pre{margin:0;border-radius:0 0 var(--forge-radius) var(--forge-radius);border-top:none}.msg-toolbar{display:flex;gap:4px;margin-top:10px;opacity:0;transition:opacity .12s ease}.message.msg-forge:hover .msg-toolbar,.message.msg-user:hover .msg-toolbar{opacity:1}.msg-toolbar.user-toolbar{justify-content:flex-end}.inline-stop-btn{font-family:IBM Plex Mono,monospace;font-size:.65rem;font-weight:600;letter-spacing:.06em;color:var(--forge-copper);background:#6c151726;border:1px solid var(--forge-copper);border-radius:3px;padding:1px 8px;cursor:pointer;margin-left:4px;transition:all .12s ease}.inline-stop-btn:hover{background:#6c15174d}.action-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.action-btn{font-family:IBM Plex Mono,monospace;font-size:.72rem;padding:6px 14px;border-radius:4px;cursor:pointer;transition:all .12s ease;letter-spacing:.02em}.action-btn.action-primary{background:var(--forge-brass);color:#080503;border:1px solid var(--forge-brass);font-weight:600}.action-btn.action-primary:hover{background:#dc932e;border-color:#dc932e}.action-btn.action-secondary{background:transparent;color:var(--forge-brass-soft);border:1px solid var(--forge-brass-line)}.action-btn.action-secondary:hover{color:var(--forge-brass);border-color:var(--forge-brass);background:var(--forge-brass-faint)}.tool-blocks{display:flex;flex-direction:column;gap:4px;margin:8px 0}.tool-block{border:1px solid var(--forge-brass-line);border-radius:4px;overflow:hidden;background:#08070699}.tool-block.tool-subagent{border-style:dashed;border-color:var(--forge-brass)}.tool-block-header{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:.72rem;transition:background .12s ease}.tool-block-header:hover{background:#15110d66}.tool-icon{font-size:.65rem;flex-shrink:0;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid}.tool-icon.tool-ok{color:#6dba70;border-color:#6dba7080;background:#6dba701a}.tool-icon.tool-error{color:#f14d4c;border-color:#f14d4c80;background:#f14d4c1a}.tool-icon.tool-running{color:var(--forge-brass);border-color:#bd813080;background:#bd81301a;animation:tool-pulse 1.2s ease-in-out infinite;font-size:.5rem}@keyframes tool-pulse{0%,to{opacity:.4}50%{opacity:1}}.tool-name{color:var(--forge-brass-soft);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tool-expand{color:var(--forge-text-muted);font-size:.65rem;flex-shrink:0}.tool-block-detail{border-top:1px solid var(--forge-brass-line);padding:8px 12px;font-family:IBM Plex Mono,monospace;font-size:.68rem;color:var(--forge-text-muted)}.tool-input-line{padding:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tool-result{margin-top:6px;padding:6px 8px;background:#070504;border-radius:3px;white-space:pre-wrap;word-break:break-word;max-height:150px;overflow-y:auto;color:#9e9e9e}.tool-result.tool-result-error{color:#f14d4c;border-left:2px solid oklch(.65 .2 25)}.msg-meta-stats{font-family:IBM Plex Mono,monospace;font-size:.62rem;color:var(--forge-text-muted);margin-left:auto;white-space:nowrap}.plan-block{border:1px solid var(--forge-brass-line);border-radius:6px;margin:12px 0;overflow:hidden;background:#09070599}.plan-header{font-family:IBM Plex Mono,monospace;font-size:.7rem;font-weight:600;letter-spacing:.12em;color:var(--forge-brass);padding:8px 16px;border-bottom:1px solid var(--forge-brass-line);background:#0e0a0680}ol.plan-list{list-style:none;counter-reset:plan-step;padding:8px 16px;margin:0}ol.plan-list>li{counter-increment:plan-step;position:relative;padding:6px 0 6px 36px;border-bottom:1px solid oklch(.25 0 0 / .3)}ol.plan-list>li:last-child{border-bottom:none}ol.plan-list>li:before{content:counter(plan-step);position:absolute;left:0;top:6px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-family:IBM Plex Mono,monospace;font-size:.7rem;font-weight:700;color:var(--forge-brass);border:1px solid var(--forge-brass-line);border-radius:4px;background:#0e0a0766}.msg-toolbar button{background:transparent;border:1px solid var(--forge-border);color:#47423a;width:26px;height:26px;border-radius:3px;cursor:pointer;font-family:var(--forge-mono);font-size:12px;display:flex;align-items:center;justify-content:center;padding:0}.msg-toolbar button:hover{color:var(--forge-brass);border-color:var(--forge-brass-line);background:var(--forge-brass-faint)}.msg-toolbar button.speaking{color:var(--forge-amber);border-color:var(--forge-amber);background:#f0a8301a}.chat-day-divider{display:flex;align-items:center;gap:12px;font-family:var(--forge-mono);font-size:10px;letter-spacing:.18em;color:#47423a;max-width:720px;width:100%;margin:0 auto}.chat-day-divider:before,.chat-day-divider:after{content:"";flex:1;height:1px;background:linear-gradient(to right,transparent,var(--forge-border),transparent)}.streaming-dot{display:inline-block;width:7px;height:14px;background:var(--forge-brass);margin-left:3px;vertical-align:-2px;animation:blink 1s steps(2,start) infinite;box-shadow:0 0 8px var(--forge-brass-glow)}@keyframes blink{50%{opacity:0}}.mobile-topbar{display:none}@media(max-width:768px){.mobile-topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top,0px));background:var(--forge-bg);border-bottom:1px solid var(--forge-border);flex-shrink:0}.mobile-menu-btn,.mobile-newchat-btn{width:40px;height:40px;border-radius:8px;border:1px solid var(--forge-border);background:var(--forge-bg-secondary);color:var(--forge-text);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center}.mobile-menu-btn:active,.mobile-newchat-btn:active{background:var(--forge-hover)}.mobile-newchat-btn{background:var(--forge-brass-faint);color:var(--forge-brass);border:1px solid var(--forge-brass-line);font-weight:700}.sidebar{position:fixed;z-index:100;height:100%;left:0;top:0;width:280px;min-width:280px;box-shadow:4px 0 24px #0009;transition:transform .25s ease;padding-top:env(safe-area-inset-top,0px)}.sidebar.collapsed{transform:translate(-100%);box-shadow:none}.mobile-backdrop{display:block;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:99}.mobile-backdrop.hidden{display:none}.main{width:100vw;min-width:100vw}.messages{padding:16px 12px 8px}.message{max-width:100%}.message.msg-user .message-content{max-width:85%}.message.msg-forge{grid-template-columns:28px 1fr;gap:10px}.msg-toolbar{opacity:1}.input-area{padding:8px 12px 16px;max-width:100%;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}.input-wrapper textarea{font-size:16px}.send-btn,.stop-btn,.attach-btn,.mic-btn{width:44px;height:44px;min-width:44px}.welcome-logo{height:48px}.collapse-btn{font-size:20px;padding:8px 12px}}.mobile-backdrop{display:none}.dashboard{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;overflow-y:auto}.dashboard-loading,.dashboard-error{color:var(--forge-text-dim);font-size:14px}.dashboard-header{margin-bottom:32px}.dashboard-logo{height:48px;width:48px;object-fit:cover;border-radius:6px;border:1px solid var(--forge-brass-line);box-shadow:0 0 16px var(--forge-brass-glow);background:var(--forge-ink-2)}.dashboard-grid{display:flex;flex-direction:column;gap:12px;width:100%;max-width:400px}.dashboard-card{background:var(--forge-ink-1);border:1px solid var(--forge-border);border-radius:var(--forge-radius);padding:16px;position:relative;overflow:hidden}.dashboard-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(to right,transparent,var(--forge-brass-line),transparent)}.dashboard-card-label{font-family:var(--forge-mono);font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--forge-brass);font-weight:600;margin-bottom:8px}.dashboard-card-sub{font-size:12px;color:var(--forge-text-dim);margin-top:4px}.dashboard-mode-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-top:4px}.mode-btn{flex:1;padding:12px 6px 10px;border:1px solid var(--forge-border);border-radius:6px;background:var(--forge-ink-1);color:var(--forge-text-dim);font-family:var(--forge-sans);font-size:12px;font-weight:500;letter-spacing:.02em;cursor:pointer;transition:all .12s ease;position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;-webkit-tap-highlight-color:transparent}.mode-btn:hover{background:var(--forge-ink-2);color:var(--forge-text)}.mode-btn.mode-rushing.active,.mode-btn.mode-researching.active,.mode-btn.mode-planning.active{background:var(--forge-brass-faint);border-color:var(--forge-brass-line);color:var(--forge-text)}.mode-btn.mode-rushing.active:after,.mode-btn.mode-researching.active:after,.mode-btn.mode-planning.active:after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;background:var(--forge-brass);box-shadow:0 0 8px var(--forge-brass-glow)}.mode-btn.mode-rushing.active .mode-glyph,.mode-btn.mode-researching.active .mode-glyph,.mode-btn.mode-planning.active .mode-glyph{color:var(--forge-brass)}.mode-btn.active-backend{background:var(--forge-brass-faint);border-color:var(--forge-brass-line);color:var(--forge-text)}.mode-glyph{font-family:var(--forge-mono);font-size:16px;color:var(--forge-text-dim);line-height:1;transition:color .12s ease}.mode-label{font-family:var(--forge-mono);font-size:10px;letter-spacing:.06em}.mode-badge-glyph{margin-right:4px}.dashboard-backend-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:4px}.backend-btn{padding:10px 8px;border:1px solid var(--forge-border);border-radius:6px;background:var(--forge-ink-1);color:var(--forge-text-dim);font-family:var(--forge-sans);font-size:12px;font-weight:500;cursor:pointer;transition:all .12s ease;text-align:center;position:relative}.backend-btn:hover{background:var(--forge-ink-2);color:var(--forge-text)}.backend-btn.active{background:var(--forge-brass-faint);border-color:var(--forge-brass-line);color:var(--forge-text)}.backend-btn.active:after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;background:var(--forge-brass);box-shadow:0 0 8px var(--forge-brass-glow)}.dashboard-card-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.dropdown-arrow{font-size:12px;color:var(--forge-text-dim);transition:transform .2s}.dropdown-arrow.open{transform:rotate(90deg)}.reminder-count{display:inline-flex;align-items:center;justify-content:center;background:var(--forge-err);color:#000;font-family:var(--forge-mono);font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;margin-left:6px;padding:0 5px}.dashboard-empty{color:var(--forge-text-dim);font-size:13px;font-style:italic}.dashboard-reminders{list-style:none;padding:0;margin:0}.dashboard-reminders li{font-size:13px;color:var(--forge-text);padding:6px 0;border-bottom:1px solid var(--forge-border)}.dashboard-reminders li:last-child{border-bottom:none}.reminder-title{flex:1;word-break:break-word}.reminder-due{display:block;font-family:var(--forge-mono);font-size:11px;color:var(--forge-err);margin-top:2px;letter-spacing:.04em}.reminder-more{color:var(--forge-text-dim);font-style:italic}.dashboard-session{font-size:13px;color:var(--forge-text-dim);line-height:1.4}@media(max-width:768px){.dashboard{padding:40px 16px 24px;justify-content:flex-start}}.canvas-open-bar{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.canvas-open-btn{display:flex;align-items:center;gap:6px;padding:4px 10px;background:transparent;border:1px solid var(--forge-border);border-radius:6px;color:var(--forge-text-dim);font-size:12px;cursor:pointer;transition:all .2s}.canvas-open-btn:hover{border-color:var(--forge-amber);color:var(--forge-amber);background:#f0a8300f}.canvas-open-lang{font-weight:600;font-family:var(--forge-mono);font-size:10px;letter-spacing:.04em}.canvas-open-arrow{opacity:.7}.canvas-divider{width:5px;cursor:col-resize;background:var(--forge-border);flex-shrink:0;transition:background .15s}.canvas-divider:hover,.canvas-divider:active{background:var(--forge-amber)}.canvas-panel{width:100%;background:var(--forge-bg-secondary);display:flex;flex-direction:column;height:100%}.canvas-tabs{display:flex;align-items:center;border-bottom:1px solid var(--forge-border);background:var(--forge-bg-sidebar);min-height:40px;flex-shrink:0}.canvas-tab-list{flex:1;display:flex;overflow-x:auto;gap:0}.canvas-tab-list::-webkit-scrollbar{height:0}.canvas-tab{display:flex;align-items:center;gap:6px;padding:8px 12px;font-size:12px;color:var(--forge-text-dim);cursor:pointer;white-space:nowrap;border-right:1px solid var(--forge-border);transition:background .15s,color .15s;flex-shrink:0}.canvas-tab:hover{background:var(--forge-hover)}.canvas-tab.active{background:var(--forge-brass-faint);color:var(--forge-text);border-bottom:2px solid var(--forge-brass);box-shadow:0 2px 10px var(--forge-brass-glow)}.canvas-tab-title{max-width:140px;overflow:hidden;text-overflow:ellipsis}.canvas-tab-close{background:none;border:none;color:var(--forge-text-dim);cursor:pointer;font-size:13px;padding:0 2px;border-radius:3px;line-height:1;opacity:0;transition:opacity .15s,color .15s}.canvas-tab:hover .canvas-tab-close{opacity:1}.canvas-tab-close:hover{color:var(--forge-copper)}.canvas-close-btn{background:none;border:none;color:var(--forge-text-dim);cursor:pointer;font-size:16px;padding:8px 12px;transition:color .15s;flex-shrink:0}.canvas-close-btn:hover{color:var(--forge-copper)}.canvas-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--forge-border);flex-shrink:0}.canvas-lang{font-size:10px;font-weight:600;font-family:var(--forge-mono);color:var(--forge-brass);text-transform:uppercase;letter-spacing:.14em}.canvas-header-actions{display:flex;gap:6px}.canvas-action-btn{padding:4px 10px;background:transparent;border:1px solid var(--forge-border-bright);border-radius:var(--forge-radius-sm);color:var(--forge-text-dim);font-family:var(--forge-mono);font-size:11px;letter-spacing:.04em;cursor:pointer;transition:all .12s ease}.canvas-action-btn:hover{border-color:var(--forge-text-dim);color:var(--forge-text)}.canvas-action-btn.active{background:#f0a8301a;border-color:var(--forge-amber);color:var(--forge-amber)}.canvas-action-btn.copied{border-color:var(--forge-amber);color:var(--forge-amber)}.canvas-content{flex:1;overflow:auto;min-height:0}.canvas-code{margin:0;padding:16px;background:var(--forge-bg);font-family:var(--forge-mono);font-size:13px;line-height:1.6;color:var(--forge-text);overflow:auto;height:100%;white-space:pre;-moz-tab-size:4;tab-size:4}.canvas-code code{font-family:inherit}.canvas-editor{width:100%;height:100%;padding:16px;background:var(--forge-bg);color:var(--forge-text);border:none;outline:none;font-family:var(--forge-mono);font-size:13px;line-height:1.6;resize:none;-moz-tab-size:4;tab-size:4}.canvas-editor:focus{box-shadow:inset 0 0 0 1px var(--forge-amber)}.canvas-markdown{padding:16px 20px;font-size:14px;line-height:1.6;color:var(--forge-text)}.canvas-markdown h1,.canvas-markdown h2,.canvas-markdown h3{color:var(--forge-text);margin-top:16px;margin-bottom:8px}.canvas-markdown code{background:var(--forge-input-bg);padding:2px 6px;border-radius:4px;font-size:13px}.canvas-markdown pre{background:var(--forge-input-bg);padding:12px;border-radius:8px;overflow-x:auto}.canvas-html-preview{width:100%;height:100%;border:none;background:#fff}.canvas-action-btn.iterate{background:#f0a8301a;border-color:var(--forge-amber);color:var(--forge-amber)}.canvas-action-btn.iterate:hover{background:#f0a83033}.mermaid-diagram{padding:20px;overflow:auto;-webkit-overflow-scrolling:touch}.mermaid-diagram svg{min-width:max-content;height:auto;display:block}.canvas-mermaid-wrap{display:flex;flex-direction:column;height:100%}.canvas-mermaid{flex:1;overflow:auto;-webkit-overflow-scrolling:touch;padding:20px;touch-action:pan-x pan-y pinch-zoom}.canvas-mermaid svg{min-width:max-content;height:auto;display:block}.mermaid-zoom-controls{display:flex;align-items:center;gap:6px;padding:6px 12px;border-bottom:1px solid var(--forge-border);background:var(--forge-bg);flex-shrink:0}.mermaid-zoom-controls button{padding:4px 10px;background:transparent;border:1px solid var(--forge-border);border-radius:6px;color:var(--forge-text-dim);font-size:12px;cursor:pointer;transition:all .2s}.mermaid-zoom-controls button:hover{border-color:var(--forge-amber);color:var(--forge-amber)}.mermaid-zoom-level{font-size:11px;color:var(--forge-text-dim);min-width:40px;text-align:center}.mermaid-clickable{cursor:pointer;border-radius:8px;transition:outline .2s}.mermaid-clickable:hover{outline:1px solid var(--forge-amber)}.mermaid-loading{padding:20px;color:var(--forge-text-dim);font-size:13px;font-style:italic}@media(max-width:768px){.canvas-divider{display:none}.canvas-panel{position:fixed;top:0;left:0;right:0;bottom:0;width:100%!important;max-width:100%;min-width:0;z-index:200;border-left:none;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}.canvas-tab-title{max-width:100px}}:root{--forge-ink-0: #0a0908;--forge-ink-1: #0f0d0b;--forge-ink-2: #15120e;--forge-ink-3: #1c1812;--forge-ink-4: #241f17;--forge-ink-5: #2e271d;--forge-brass: oklch(.78 .12 78);--forge-brass-bright: oklch(.86 .14 82);--forge-brass-deep: oklch(.62 .11 70);--forge-brass-glow: oklch(.78 .12 78 / .18);--forge-brass-line: oklch(.78 .12 78 / .32);--forge-brass-faint: oklch(.78 .12 78 / .08);--forge-bg: var(--forge-ink-0);--forge-bg-secondary: var(--forge-ink-1);--forge-bg-sidebar: var(--forge-ink-1);--forge-amber: var(--forge-brass);--forge-orange: var(--forge-brass-bright);--forge-copper: oklch(.68 .18 25);--forge-trace: var(--forge-brass-deep);--forge-text: oklch(.92 .01 80);--forge-text-dim: oklch(.52 .015 80);--forge-text-mid: oklch(.72 .015 80);--forge-border: oklch(1 0 0 / .06);--forge-border-bright: oklch(1 0 0 / .1);--forge-input-bg: var(--forge-ink-2);--forge-hover: var(--forge-ink-2);--forge-user-bubble: var(--forge-ink-3);--forge-forge-bubble: var(--forge-ink-1);--forge-scrollbar: var(--forge-ink-4);--forge-scrollbar-hover: var(--forge-ink-5);--forge-ok: oklch(.72 .13 145);--forge-warn: oklch(.78 .14 65);--forge-err: oklch(.68 .18 25);--forge-sans: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--forge-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--forge-radius: 6px;--forge-radius-sm: 4px}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:var(--forge-sans);background:var(--forge-bg);color:var(--forge-text);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--forge-scrollbar);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--forge-scrollbar-hover)}::selection{background:var(--forge-brass-glow);color:var(--forge-text)}
