:root{color-scheme:light;--paper:#fff;--white:#fff;--ink:#222;--muted:#717171;--line:#e8e8e8;--sidebar:#f7f7f7;--surface:#f5f5f5;--shadow:0 16px 48px rgba(0,0,0,.1);--drawing-width:46%;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink)}
body{overflow:hidden}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #606060;outline-offset:3px}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.icon-sprite{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.ui-icon{display:block;flex:none;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.external-icon{width:15px;height:15px;margin-left:auto;color:#777}
.app-shell{display:grid;grid-template-columns:236px minmax(0,1fr);height:100dvh;min-height:480px}
.sidebar{display:flex;flex-direction:column;min-width:0;min-height:0;padding:18px 12px 12px;background:var(--sidebar);border-right:1px solid var(--line)}
.sidebar-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px}
.brand{display:inline-flex;align-items:center;gap:10px;font-weight:750;font-size:18px;letter-spacing:-.04em}
.brand img{display:block}
.icon-button{display:inline-grid;place-items:center;width:32px;height:32px;border:0;background:transparent;border-radius:9px;color:#666;font-size:20px}
.icon-button:hover,.icon-button:focus-visible{background:#e9e9e9}
.sidebar-close,.menu-button{display:none}
.new-chat{display:flex;align-items:center;gap:10px;flex:none;width:100%;margin-top:21px;padding:10px 11px;background:transparent;border:1px solid transparent;border-radius:8px;color:#333;font-size:13px;font-weight:600;text-align:left}
.new-chat:hover,.new-chat:focus-visible{border-color:#e2e2e2;background:#fff}
.history-search{display:flex;align-items:center;gap:8px;flex:none;margin:10px 2px 2px;padding:0 10px;height:35px;border:1px solid #e5e5e5;border-radius:8px;background:#fff;color:#767676}
.history-search .ui-icon{width:15px;height:15px}
.history-search:focus-within{border-color:#888;box-shadow:0 0 0 3px #ececec}
.history-search input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:#333;font-size:12px}
.history-search input::placeholder{color:#757575}
.history-heading{display:flex;justify-content:space-between;align-items:center;flex:none;margin:23px 11px 8px;color:#737373;font-size:11px;font-weight:600}
.history-count{letter-spacing:0}
.conversation-list{display:flex;flex:1;flex-direction:column;gap:3px;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d5d5d5 transparent;padding:0 0 12px}
.conversation-item{display:flex;gap:9px;align-items:center;min-height:38px;width:100%;padding:9px 11px;border:0;border-radius:7px;color:#505050;background:transparent;text-align:left;font-size:12px}
.conversation-item:hover,.conversation-item:focus-visible{background:#ededed}
.conversation-item.active{color:#222;background:#eaeaea;font-weight:650}
.conversation-item .chat-icon{flex:none;color:#767676}
.conversation-item .chat-icon .ui-icon{width:15px;height:15px}
.conversation-item .chat-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.history-group{padding:17px 11px 6px;color:#737373;font-size:10px;font-weight:600;letter-spacing:.02em}
.history-row{position:relative;display:flex;align-items:center;min-width:0;border-radius:8px}
.history-row:hover,.history-row:focus-within{background:#ededed}
.history-row.active{background:#eaeaea}
.history-row .conversation-item{min-width:0;flex:1;padding-right:4px}
.history-row .conversation-item:hover,.history-row .conversation-item:focus-visible,.history-row .conversation-item.active{background:transparent}
.history-row.active .conversation-item{color:#222;font-weight:650}
.history-menu{position:relative;flex:none;margin-right:4px}
.history-menu-trigger{display:grid;place-items:center;width:28px;height:27px;border-radius:7px;list-style:none;cursor:pointer;color:#666;font-size:15px;font-weight:700;opacity:0}
.history-menu-trigger::-webkit-details-marker{display:none}
.history-row:hover .history-menu-trigger,.history-row:focus-within .history-menu-trigger,.history-menu[open] .history-menu-trigger{opacity:1}
.history-menu-trigger:hover,.history-menu-trigger:focus-visible{background:#dedede}
.history-menu[open]{z-index:4}
.history-menu-action{display:flex;align-items:center;gap:9px;position:relative;width:100%;min-height:34px;padding:8px 10px;border:0;border-radius:5px;background:#fff;color:#333;text-align:left;font-size:12px;white-space:nowrap}
.history-menu-action .ui-icon{width:15px;height:15px;color:#777}
.history-menu> .history-menu-action{position:absolute;right:0;width:142px;border:1px solid #e2e2e2;border-radius:0;box-shadow:0 8px 20px rgba(0,0,0,.08)}
.history-menu> .history-menu-action:nth-of-type(1){top:30px;border-radius:8px 8px 0 0}
.history-menu> .history-menu-action:nth-of-type(2){top:64px}
.history-menu> .history-menu-action:nth-of-type(3){top:98px}
.history-menu> .history-menu-action:last-of-type{border-radius:0 0 8px 8px}
.history-menu-popup,.history-menu-popover,.history-menu-dropdown,.history-menu-actions{position:fixed;inset:auto;z-index:40;width:168px;max-height:min(300px,calc(100dvh - 24px));margin:0;padding:5px;border:1px solid #dedede;border-radius:9px;background:#fff;box-shadow:0 8px 28px rgba(0,0,0,.12);overflow-y:auto;overscroll-behavior:contain;color:var(--ink)}
.history-menu-popup::backdrop,.history-menu-popover::backdrop{background:transparent}
.history-menu-action:hover,.history-menu-action:focus-visible{background:#f5f5f5}
.history-menu-action.danger{color:#444}
.history-empty{padding:12px;color:#737373;font-size:12px;text-align:center}
@media(hover:none){.history-menu-trigger{opacity:1}}
.sidebar-bottom{display:flex;flex:none;flex-direction:column;gap:2px;margin-top:auto;padding-top:10px;border-top:1px solid #e5e5e5}
.editor-link{display:flex;gap:9px;align-items:center;padding:10px 12px;border-radius:8px;font-size:13px;color:#505050}
.editor-link .external-icon{margin-left:auto}
.editor-link:hover,.docs-link:hover{background:#ededed;color:#222}
.docs-link{display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:8px;color:#6b6b6b;font-size:12px}
.main-panel{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:none;height:62px;padding:0 24px;border-bottom:1px solid var(--line);background:#fff}
.topbar-left,.topbar-actions{display:flex;align-items:center;gap:11px;min-width:0}
.topbar-title{font-weight:680;font-size:15px;white-space:nowrap}
.topbar-badge{font-size:11px;font-weight:550;color:#737373;white-space:nowrap}
.connection-pill{display:inline-flex;align-items:center;gap:7px;color:#6b6b6b;font-size:12px;white-space:nowrap}
.connection-dot{width:7px;height:7px;border-radius:50%;background:#b5b5b5}
.connection-pill.connected{color:#555}.connection-pill.connected .connection-dot{background:#37845b}
.topbar-button{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;background:#fff;border:1px solid #dedede;border-radius:8px;color:#444;font-size:12px;font-weight:600;white-space:nowrap}
.topbar-button:hover,.topbar-button:focus-visible{border-color:#aaa;background:#fafafa}
.topbar-button:disabled{opacity:.45;cursor:not-allowed}
.drawing-history-actions{display:flex;align-items:center;gap:7px;margin:0 0 9px;min-width:0}
.drawing-history-actions small{margin-left:auto;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.lang-button{border:0;background:transparent;color:#737373;padding:6px;font-size:12px;font-weight:700}
.lang-button:hover{color:#222}
.conversation{flex:1;min-height:0;overflow-y:auto;scroll-behavior:smooth}
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;padding:40px 24px 28px;text-align:center}
.chat-empty .chat-panel{justify-content:center;padding-bottom:clamp(24px,8dvh,80px)}
.chat-empty .conversation{display:block;flex:none;overflow-y:auto}
.chat-empty .empty-state{min-height:0;padding:16px 24px 28px}
.chat-empty .composer-wrap{margin-bottom:0}
h1{margin:0 0 12px;font-size:clamp(26px,2.6vw,32px);line-height:1.3;letter-spacing:-.035em;font-weight:620}
.empty-state p{max-width:510px;margin:0;color:#6b6b6b;line-height:1.7;font-size:14px}
.suggestions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:26px}
.suggestions button{padding:9px 12px;border:1px solid #e2e2e2;border-radius:9px;background:#fff;color:#606060;font-size:12px}
.suggestions button:hover,.suggestions button:focus-visible{border-color:#aaa;color:#222;background:#fafafa}
.composer-wrap{flex:none;width:min(800px,calc(100% - 48px));margin:0 auto 15px}
.import-error{margin:0 0 9px;padding:9px 12px;border:1px solid #d9d9d9;border-radius:8px;background:#f7f7f7;color:#444;font-size:12px}
.drawing-context{margin:0 0 10px;border:1px solid #e2e2e2;border-radius:10px;background:#fff;overflow:hidden}
.drawing-context summary{display:flex;align-items:center;gap:10px;padding:10px 13px;cursor:pointer;color:#333;font-size:12px;font-weight:650}
.drawing-context summary::-webkit-details-marker{display:none}
.drawing-context summary small{margin-left:auto;color:#737373;font-size:11px;font-weight:500}
.drawing-context summary>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drawing-context summary small{flex-shrink:0}
.remove-drawing{display:inline-grid;place-items:center;flex:none;width:28px;height:28px;margin:-5px -5px -5px 0;padding:5px;border:0;border-radius:6px;background:transparent;color:#777}
.remove-drawing:hover,.remove-drawing:focus-visible{background:#f1f1f1;color:#222}
.remove-drawing:disabled{opacity:.4;cursor:not-allowed}
.remove-drawing .ui-icon{width:16px;height:16px}
.drawing-context>canvas{display:block;width:100%;height:250px;border-top:1px solid var(--line);background:#fff}
.drawing-drop-overlay{position:absolute;z-index:12;inset:62px 0 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:2px dashed #888;background:rgba(250,250,250,.96);color:#333;font-size:18px;font-weight:650;pointer-events:none}
.drawing-drop-overlay small{font-size:12px;color:#6b6b6b;font-weight:500}
.composer{border:1px solid #d8d8d8;border-radius:12px;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.025);transition:border-color .15s,box-shadow .15s}
.composer:focus-within{border-color:#888;box-shadow:0 0 0 2px #f0f0f0}
.composer textarea{display:block;width:100%;min-height:80px;max-height:min(240px,28dvh);resize:none;padding:17px 18px 8px;border:0;outline:0;background:transparent;color:#292929;line-height:1.55;font-size:14px}
.composer textarea::placeholder{color:#757575}
.composer-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:0 10px 10px 14px}
.composer-tools{display:flex;align-items:center;gap:13px;min-width:0}
.attach-drawing{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:6px;background:transparent;color:#666;padding:5px 4px;font-size:12px;font-weight:550;white-space:nowrap}
.attach-drawing:hover,.attach-drawing:focus-visible{color:#222;background:#f5f5f5}
.composer-hint{color:#737373;font-size:11px}
.send-button{display:inline-flex;gap:8px;align-items:center;justify-content:center;min-width:78px;padding:9px 11px;border:0;border-radius:9px;background:#262626;color:#fff;font-size:12px;font-weight:650}
.send-button:hover,.send-button:focus-visible{background:#444}
.send-button:disabled{opacity:.52;cursor:wait}
.send-button .ui-icon,.stop-button .ui-icon{width:16px;height:16px}
.stop-button{display:inline-flex;gap:8px;align-items:center;justify-content:center;min-width:78px;padding:9px 11px;border:1px solid #d6d6d6;border-radius:9px;background:#fff;color:#444;font-size:12px;font-weight:650}
.stop-button:hover,.stop-button:focus-visible{border-color:#999;background:#fafafa}
.disclaimer{margin:8px 4px 0;text-align:left;color:#737373;font-size:11px;line-height:1.6}
.messages{display:flex;flex-direction:column;gap:30px;width:min(800px,calc(100% - 48px));margin:0 auto;padding:34px 0 42px}
.message{display:flex;align-items:flex-start;gap:13px}
.message.user{justify-content:flex-end}
.message-avatar{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:9px;background:#f0f0f0;color:#444;font-size:12px;font-weight:700}
.message.user .message-avatar,.message.user .message-role{display:none}
.message-body{flex:1;min-width:0;max-width:100%;padding-top:4px}
.message.user .message-body{flex:0 1 auto;max-width:min(85%,740px);margin-left:auto;padding:11px 16px;border-radius:16px;background:#f3f3f3}
.message-role{margin:0 0 8px;font-size:12px;font-weight:730;color:#333}
.message-content{white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px;line-height:1.65;color:#333}
.message.user .message-content{font-size:14px;color:#333}
.message.error .message-content{color:#555}
.message-content.message-markdown{min-width:0;white-space:normal}
.message-content.message-markdown p{margin:0 0 .8em}
.message-content.message-markdown :is(h1,h2,h3,h4,h5,h6){margin:1.1em 0 .45em;line-height:1.4;letter-spacing:0;font-weight:650;color:inherit}
.message-content.message-markdown h1{font-size:1.5em}
.message-content.message-markdown h2{font-size:1.3em}
.message-content.message-markdown h3{font-size:1.15em}
.message-content.message-markdown :is(h4,h5,h6){font-size:1em}
.message-content.message-markdown :is(ul,ol){margin:.5em 0 .9em;padding-left:1.6em}
.message-content.message-markdown li{margin:.3em 0;padding-left:.15em}
.message-content.message-markdown li>p{margin:0}
.message-content.message-markdown li>p+p{margin-top:.65em}
.message-content.message-markdown li>:is(ul,ol){margin:.3em 0}
.message-content.message-markdown blockquote{margin:.8em 0;padding:.15em 0 .15em 1em;border-left:3px solid #d6d6d6;color:#666}
.message-content.message-markdown blockquote>:last-child{margin-bottom:0}
.message-content.message-markdown strong{font-weight:650}
.message-content.message-markdown a{color:inherit;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.message-content.message-markdown a:hover{color:#111}
.message-content.message-markdown code{padding:.13em .35em;border-radius:4px;background:#f1f1f1;font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:.87em;white-space:pre-wrap;overflow-wrap:anywhere}
.message-content.message-markdown pre{max-width:100%;margin:.8em 0;padding:13px 15px;border:1px solid var(--line);border-radius:8px;background:#f7f7f7;overflow:auto;white-space:pre;overflow-wrap:normal;line-height:1.55}
.message-content.message-markdown pre>code{display:block;padding:0;background:transparent;border-radius:0;white-space:pre;overflow-wrap:normal}
.message-content .message-table-scroll{max-width:100%;margin:.9em 0;border:1px solid var(--line);border-radius:8px;overflow-x:auto;overscroll-behavior-x:contain}
.message-content .message-table-scroll table{width:max-content;min-width:100%;border-collapse:collapse;text-align:left;font-size:.93em;line-height:1.55}
.message-content .message-table-scroll :is(th,td){min-width:6em;max-width:28em;padding:9px 12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:top;white-space:normal;overflow-wrap:anywhere}
.message-content .message-table-scroll th{background:#f7f7f7;font-weight:650}
.message-content .message-table-scroll :is(th,td):last-child{border-right:0}
.message-content .message-table-scroll tbody tr:last-child td{border-bottom:0}
.message-content .message-table-scroll [data-align=center]{text-align:center}
.message-content .message-table-scroll [data-align=right]{text-align:right}
.message-content.message-markdown :is(pre,.message-table-scroll):focus-visible{outline:2px solid #606060;outline-offset:2px}
.message-content.message-markdown hr{margin:1em 0;border:0;border-top:1px solid var(--line)}
.message-content.message-markdown>:first-child{margin-top:0}
.message-content.message-markdown>:last-child{margin-bottom:0}
.message-progress{display:inline-flex;align-items:center;gap:8px;color:#6b6b6b;font-size:13px}
.message-progress:before{content:"";width:8px;height:8px;border-radius:50%;background:#777;animation:pulse 1.2s infinite}
@keyframes pulse{50%{opacity:.25;transform:scale(.8)}}
.proposal-card{margin-top:17px;width:100%;border:1px solid #e1e1e1;border-radius:12px;background:#fff;overflow:hidden}
.proposal-head{display:flex;justify-content:space-between;gap:12px;padding:15px 17px;border-bottom:1px solid var(--line)}
.proposal-head>div{min-width:0;overflow-wrap:anywhere}
.proposal-title{margin:0;font-size:13px;font-weight:700}
.proposal-subtitle{margin:4px 0 0;color:#737373;font-size:11px}
.proposal-tag{align-self:flex-start;flex:none;padding:4px 7px;background:#f0f0f0;border-radius:5px;color:#606060;font-size:11px;font-weight:650}
.proposal-tag.approved{background:#edf4ef;color:#397653}.proposal-tag.rejected{background:#f0f0f0;color:#555}
.proposal-preview{position:relative;height:380px;background:#fafafa;border-bottom:1px solid var(--line)}
.proposal-preview canvas{display:block;width:100%;height:100%}
.proposal-preview-fallback{display:grid;place-items:center;height:100%;padding:20px;text-align:center;color:#737373;font-size:12px}
.proposal-details{padding:11px 17px 1px;color:#666;font-size:12px;line-height:1.6}
.source-review{padding:12px 17px;max-height:240px;overflow:auto;border-top:1px solid var(--line)}
.source-review h4{margin:0 0 9px;font-size:13px;font-weight:600}
.source-review table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}
.source-review th,.source-review td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top;white-space:pre-wrap;overflow-wrap:anywhere}
.source-review th{color:#666;font-weight:500;background:#f7f7f7}
.source-review td:first-child{min-width:105px}
.proposal-details summary{cursor:pointer;color:#555;font-weight:600}
.proposal-details pre{max-height:220px;overflow:auto;padding:10px;border-radius:7px;background:#f5f5f5;color:#444;font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere}
.proposal-actions{display:flex;flex-wrap:wrap;gap:8px;padding:14px 17px}
.proposal-actions button,.proposal-actions a{padding:8px 11px;border:1px solid #ddd;border-radius:7px;background:#fff;color:#555;font-size:12px;font-weight:620}
.proposal-actions button:hover,.proposal-actions a:hover{border-color:#999;background:#fafafa}
.proposal-actions .approve{background:#262626;border-color:#262626;color:#fff}
.proposal-actions .approve:hover{background:#444;border-color:#444}
.proposal-actions button:disabled{opacity:.5;cursor:not-allowed}
.drawing-viewer{display:flex;flex-direction:column;min-width:0;min-height:0;background:#fff}
.drawing-viewer-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;flex:none;padding:10px 14px;border-bottom:1px solid var(--line);background:#fafafa}
.drawing-viewer-controls{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}
.drawing-viewer-toolbar button,.drawing-viewer-dialog-head button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:32px;min-height:32px;padding:6px 9px;border:1px solid #dedede;border-radius:7px;background:#fff;color:#444;font-size:12px;font-weight:600;line-height:1.25;white-space:nowrap}
.drawing-viewer-toolbar button:hover,.drawing-viewer-dialog-head button:hover{border-color:#aaa;background:#f0f0f0}
.drawing-viewer-toolbar button:disabled{color:#999;cursor:not-allowed;background:#f7f7f7}
.drawing-viewer-stage{position:relative;flex:none;min-width:0;min-height:0;width:100%;height:380px;overflow:hidden;background:#fff}
.drawing-viewer-stage canvas{display:block;width:100%;height:100%;border:0;background:#fff;cursor:grab;touch-action:none}
.drawing-viewer-stage canvas:active{cursor:grabbing}
.drawing-viewer-stage.is-panning canvas{cursor:grabbing}
.drawing-viewer-stage:focus-visible{outline:2px solid #777;outline-offset:-3px}
.drawing-viewer-stage canvas:focus-visible{outline:2px solid #777;outline-offset:-3px}
.drawing-viewer-status{min-width:42px;color:#6b6b6b;text-align:center;white-space:nowrap;font-size:11px;line-height:1.5;font-variant-numeric:tabular-nums}
.drawing-viewer-hint{min-width:0;color:#737373;font-size:11px;line-height:1.5}
.proposal-preview:has(>.drawing-viewer){height:auto;background:#fff}
.drawing-context .drawing-viewer-stage{height:250px}
.drawing-viewer-dialog{width:min(1440px,90vw);height:min(960px,90dvh);max-width:none;max-height:none;padding:0;border:1px solid #ddd;border-radius:14px;background:#fff;color:var(--ink);box-shadow:0 24px 80px rgba(0,0,0,.2);overflow:hidden}
.drawing-viewer-dialog[open]{display:flex;flex-direction:column}
.drawing-viewer-dialog::backdrop{background:rgba(0,0,0,.38);backdrop-filter:blur(3px)}
.drawing-viewer-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex:none;min-height:64px;padding:14px 20px;border-bottom:1px solid var(--line)}
.drawing-viewer-dialog-head h2,.drawing-viewer-dialog-head h3{min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:650}
.drawing-viewer-dialog-body{display:flex;flex:1;min-width:0;min-height:0;overflow:hidden}
.drawing-viewer-dialog>.drawing-viewer{flex:1;min-height:0}
.drawing-viewer-dialog-body>.drawing-viewer{flex:1;min-height:0}
.drawing-viewer-dialog .drawing-viewer-stage{flex:1;min-height:0;height:auto}
.drawing-viewer-dialog .drawing-viewer-toolbar{padding:10px 20px}
.settings-dialog{width:min(470px,calc(100% - 30px));max-height:calc(100dvh - 28px);padding:0;border:1px solid #e1e1e1;border-radius:16px;background:#fff;color:var(--ink);box-shadow:var(--shadow)}
.settings-dialog::backdrop{background:rgba(0,0,0,.29);backdrop-filter:blur(3px)}
.settings-dialog form{padding:24px}
.dialog-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.dialog-eyebrow{color:#737373;font-size:11px;font-weight:750;letter-spacing:.13em}
.dialog-header h2{margin:7px 0 0;font-size:22px;letter-spacing:-.03em}
.dialog-intro{margin:15px 0 23px;color:#6b6b6b;font-size:12px;line-height:1.7}
.settings-dialog label{display:block;margin:14px 0 7px;color:#444;font-size:12px;font-weight:650}
.settings-dialog input,.settings-dialog select{display:block;width:100%;height:40px;padding:0 11px;border:1px solid #dcdcdc;border-radius:8px;outline:0;background:#fff;color:#292929;font-size:13px}
.settings-dialog input:focus,.settings-dialog select:focus{border-color:#888;box-shadow:0 0 0 3px #ececec}
.settings-dialog input::placeholder{color:#757575}
.settings-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.settings-pair>div{min-width:0}
.connection-details{margin-top:17px;padding-top:12px;border-top:1px solid var(--line)}
.connection-details summary{cursor:pointer;color:#666;font-size:12px}
.connection-details summary:hover{color:#222}
.settings-error{margin:13px 0 0;color:#555;font-size:12px}
.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:25px}
.dialog-actions button{padding:9px 13px;border-radius:8px;font-size:12px;font-weight:650}
.secondary-button{background:#fff;border:1px solid #ddd;color:#555}
.primary-button{background:#262626;border:1px solid #262626;color:#fff}
.history-dialog{width:min(420px,calc(100% - 28px));padding:24px;border:1px solid #e1e1e1;border-radius:14px;background:#fff;color:var(--ink);box-shadow:var(--shadow)}
.history-dialog::backdrop{background:rgba(0,0,0,.28);backdrop-filter:blur(2px)}
.history-dialog h2{margin:0;font-size:19px;line-height:1.35}
.history-dialog p{margin:12px 0 0;color:#6b6b6b;font-size:13px;line-height:1.6}
.history-dialog input{width:100%;height:42px;margin-top:18px;padding:0 12px;border:1px solid #dcdcdc;border-radius:8px;outline:0}
.history-dialog input:focus{border-color:#888;box-shadow:0 0 0 3px #ececec}
.history-dialog .primary-button.danger{background:#262626;border-color:#262626}
.app-shell.sidebar-collapsed,body.sidebar-collapsed .app-shell{grid-template-columns:minmax(0,1fr)}
.app-shell.sidebar-collapsed>.sidebar,body.sidebar-collapsed .sidebar{display:none}
.app-shell.sidebar-collapsed .menu-button,body.sidebar-collapsed .menu-button{display:inline-grid}
.topbar-actions{gap:8px}
.workspace-toggle{width:34px;min-width:34px;padding:7px;justify-content:center}
.workspace-toggle>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.connection-pill{gap:0;margin-left:4px;margin-right:-3px}
.connection-pill>span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
#settings-open{max-width:175px;overflow:hidden}
#settings-open>span{overflow:hidden;text-overflow:ellipsis}
.workspace-body{display:flex;flex:1;min-width:0;min-height:0;overflow:hidden}
.chat-panel{position:relative;display:flex;flex:1;flex-direction:column;min-width:0;min-height:0;overflow:hidden}
.workspace-tabs{display:none;flex:none;align-items:center;justify-content:center;gap:20px;min-height:43px;padding:0 16px;border-bottom:1px solid var(--line);background:#fff}
.workspace-tab{display:inline-flex;align-items:center;justify-content:center;gap:7px;align-self:stretch;min-width:80px;padding:10px 8px;border:0;border-bottom:2px solid transparent;background:transparent;color:#777;font-size:12px;font-weight:600}
.workspace-tab[aria-selected=true]{border-bottom-color:#333;color:#222}
.workspace-tab .ui-icon{width:16px;height:16px}
.workspace-divider{position:relative;flex:none;width:8px;background:#fff;cursor:col-resize;touch-action:none}
.workspace-divider:before{content:"";position:absolute;inset:0 3px;border-left:1px solid var(--line)}
.workspace-divider:hover:before,.workspace-divider:focus-visible:before,.workspace-body.is-resizing .workspace-divider:before{border-left-color:#999;border-left-width:2px}
.workspace-divider:focus-visible{outline:0}
.workspace-body.is-resizing{cursor:col-resize;user-select:none}
.workspace-body.is-resizing .drawing-viewer-stage{pointer-events:none}
.has-drawing .chat-empty h1,.has-drawing.chat-empty h1{font-size:24px}
.has-drawing .chat-empty .empty-state,.has-drawing.chat-empty .empty-state{padding-bottom:24px}
.has-drawing .chat-empty .empty-state p,.has-drawing.chat-empty .empty-state p{font-size:13px}
.has-drawing .chat-empty .suggestions,.has-drawing.chat-empty .suggestions{gap:6px;margin-top:20px}
.has-drawing .chat-empty .suggestions button,.has-drawing.chat-empty .suggestions button{font-size:11px;padding:8px 10px}
.drawing-panel{display:flex;flex:none;flex-direction:column;width:var(--drawing-width);min-width:300px;max-width:calc(100% - 260px);min-height:0;background:#fff;overflow:hidden}
.workspace-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none;min-height:62px;padding:13px 16px;border-bottom:1px solid var(--line)}
.workspace-heading{min-width:0}
.workspace-heading h2{margin:0;color:#333;font-size:13px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.workspace-heading small{display:block;margin-top:5px;color:#777;font-size:10px;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.workspace-heading small:empty{display:none}
.workspace-view-tabs{display:flex;align-items:center;gap:18px;flex:none;min-height:40px;padding:0 16px;border-bottom:1px solid var(--line)}
.workspace-view-tab{align-self:stretch;padding:10px 1px;border:0;border-bottom:2px solid transparent;background:transparent;color:#777;font-size:12px;font-weight:550}
.workspace-view-tab[aria-selected=true]{border-bottom-color:#333;color:#222;font-weight:650}
.workspace-viewer{display:flex;flex:1;min-width:0;min-height:0;overflow:hidden}
.workspace-viewer>.drawing-viewer{flex:1;min-height:0}
.workspace-viewer .drawing-viewer-stage{flex:1;min-height:0;height:auto}
.workspace-viewer .drawing-viewer-toolbar{gap:6px 10px;padding:9px 12px;background:#fff}
.workspace-viewer .drawing-viewer-toolbar button{min-width:30px;min-height:30px;padding:5px 8px;font-size:11px}
.workspace-viewer .drawing-viewer-hint{font-size:10px}
.workspace-viewer>.proposal-preview-fallback{flex:1;margin:0}
.workspace-review{flex:none;max-height:38%;padding:16px;border-top:1px solid var(--line);background:#fafafa;overflow:auto;overscroll-behavior:contain}
.workspace-review-title{margin:0;color:#333;font-size:12px;font-weight:650}
.workspace-review-summary{margin:7px 0 0;color:#777;font-size:11px;line-height:1.65}
.workspace-change-count{display:block;margin-top:5px;color:#555;font-variant-numeric:tabular-nums}
.workspace-review-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.workspace-review-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:33px;padding:7px 12px;border:1px solid #d7d7d7;border-radius:6px;background:#fff;color:#555;font-size:12px;font-weight:600}
.workspace-review-actions button.approve{border-color:#262626;background:#262626;color:#fff}
.workspace-review-actions button:hover{border-color:#999}
.workspace-review-actions button.approve:hover{background:#444;border-color:#444}
.workspace-review-actions button:disabled{opacity:.45;cursor:not-allowed}
.workspace-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:none;min-height:56px;padding:10px 12px;border-top:1px solid var(--line)}
.workspace-history{display:flex;align-items:center;gap:3px}
.workspace-action{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:7px 9px;border:0;border-radius:6px;background:transparent;color:#555;font-size:11px;font-weight:550;white-space:nowrap}
.workspace-action .ui-icon{width:15px;height:15px}
.workspace-action:hover{background:#f2f2f2;color:#222}
.workspace-action:disabled,.workspace-action[aria-disabled=true]{color:#aaa;cursor:not-allowed;pointer-events:none}
.workspace-download{border:1px solid #ddd;background:#fff}
.jump-latest{position:absolute;right:24px;bottom:166px;z-index:3;display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:6px 10px;border:1px solid #ddd;border-radius:18px;background:#fff;color:#666;box-shadow:0 2px 8px rgba(0,0,0,.06);font-size:11px}
.jump-latest .ui-icon{width:14px;height:14px}
.jump-latest:hover{border-color:#999;color:#222}
.privacy-disclosure{margin-top:9px;color:#777;font-size:11px}
.privacy-disclosure summary{display:flex;align-items:center;justify-content:center;gap:6px;min-height:22px;cursor:pointer;list-style:none}
.privacy-disclosure summary::-webkit-details-marker{display:none}
.privacy-disclosure summary .ui-icon{width:12px;height:12px}
.privacy-disclosure summary:hover{color:#444}
.disclosure-icon{width:14px;height:14px;transition:transform .15s}
details[open]>summary>.disclosure-icon{transform:rotate(180deg)}
.privacy-disclosure .disclaimer{padding:8px 10px;margin-top:4px;border:1px solid var(--line);border-radius:6px;background:#fafafa}
.message-actions{display:flex;align-items:center;gap:4px;margin-top:9px;min-height:25px}
.message-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:27px;padding:4px 6px;border:0;border-radius:5px;background:transparent;color:#888;font-size:11px}
.message-actions button .ui-icon{width:15px;height:15px}
.message-actions button:hover,.message-actions button:focus-visible{background:#f3f3f3;color:#333}
.message-actions button:disabled{opacity:.4;cursor:not-allowed}
.message.user .message-actions{justify-content:flex-end;margin-top:6px}
.message-copy,.message-retry{font-weight:500}
.message-progress{line-height:1.6}
.message-streaming+.message-progress{margin-top:10px;font-size:11px}
.progress-details{margin-top:10px;color:#777;font-size:11px;line-height:1.6}
.progress-details summary{cursor:pointer}
.progress-list,.progress-steps{display:flex;flex-direction:column;gap:6px;margin:8px 0 0;padding:0;list-style:none}
.progress-item,.progress-step{display:flex;align-items:flex-start;gap:7px;overflow-wrap:anywhere}
.progress-item .ui-icon,.progress-step .ui-icon{width:13px;height:13px;margin-top:2px}
.proposal-card.compact,.proposal-card.proposal-compact{border-radius:9px}
.proposal-card.compact .proposal-head,.proposal-card.proposal-compact .proposal-head{padding:12px 14px}
.proposal-card.compact .proposal-preview,.proposal-card.proposal-compact .proposal-preview{height:220px}
.proposal-card.compact .drawing-viewer-stage,.proposal-card.proposal-compact .drawing-viewer-stage{height:200px}
.proposal-card.compact .proposal-details,.proposal-card.proposal-compact .proposal-details{padding:9px 14px 0}
.proposal-card.compact .proposal-actions,.proposal-card.proposal-compact .proposal-actions{padding:11px 14px}
.open-in-pane,.proposal-open-workspace,.proposal-open-pane{display:inline-flex;align-items:center;gap:6px}
.open-in-pane .ui-icon,.proposal-open-workspace .ui-icon,.proposal-open-pane .ui-icon{width:15px;height:15px}
.history-menu-items{display:flex;flex-direction:column;gap:2px}
.history-menu-items[popover]:not(:popover-open){display:none}
.history-menu-items .history-menu-action{position:static;width:100%;border:0;border-radius:5px;box-shadow:none}
.history-pin,.history-pinned{color:#777}
.history-pin .ui-icon,.history-pinned .ui-icon{width:12px;height:12px}
@media(min-width:801px) and (max-width:1040px){.app-shell{grid-template-columns:196px minmax(0,1fr)}.app-shell.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.sidebar{padding-right:9px;padding-left:9px}.brand{font-size:16px;gap:8px}.brand img{width:25px;height:25px}.topbar{padding:0 16px}.topbar-badge{display:none}.topbar-title{font-size:14px}.topbar-button{padding:7px 9px}.workspace-toggle{padding:7px}.composer-hint{display:none}.composer-wrap,.messages{width:calc(100% - 32px)}.message{gap:9px}.message-avatar{width:26px;height:26px}}
@media(max-width:800px){.app-shell{grid-template-columns:1fr;min-height:0}.sidebar{position:fixed;z-index:20;inset:0 auto 0 0;width:min(280px,85vw);transform:translateX(-100%);transition:transform .2s;box-shadow:var(--shadow)}.sidebar.open{transform:translateX(0)}.sidebar-close,.menu-button{display:inline-grid}.mobile-scrim:not([hidden]){position:fixed;z-index:19;inset:0;background:rgba(0,0,0,.25)}.topbar{padding:0 20px}.empty-state{padding-top:20px}}
@media(max-width:560px){
  .topbar{height:59px;padding:0 12px}
  .topbar-left,.topbar-actions{gap:6px}
  .topbar{gap:8px}
  .topbar-left{flex:none}
  .topbar-actions{justify-content:flex-end;flex:1;min-width:0}
  .topbar-actions .topbar-button{min-width:0;overflow:hidden}
  .topbar-actions .topbar-button>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #open-drawing{max-width:78px;flex-shrink:1;text-overflow:ellipsis}
  #settings-open{max-width:116px;flex-shrink:1}
  .topbar-title{font-size:14px}
  .topbar-badge,.connection-pill{display:none}
  .topbar-button{padding:7px 9px}
  .composer-wrap,.messages{width:calc(100% - 24px)}
  .composer-wrap{margin-bottom:11px}
  .composer textarea{min-height:76px;padding:15px 15px 6px}
  .composer-footer{padding-left:15px}
  .composer-hint{display:none}
  .disclaimer{font-size:10px}
  .suggestions{max-width:300px}
  .suggestions button{width:100%}
  .empty-state{padding:30px 22px 5px}
  .chat-empty .empty-state{padding:70px 22px 18px}
  .empty-state p{font-size:13px}
  .messages{gap:24px;padding-top:23px}
  .message{gap:9px}
  .message-avatar{width:26px;height:26px;border-radius:8px}
  .message.user .message-body{max-width:90%}
  .proposal-head{padding:13px;gap:8px}
  .proposal-preview,.drawing-viewer-stage{height:280px}
  .proposal-details,.proposal-actions,.source-review{padding-left:13px;padding-right:13px}
  .drawing-viewer-toolbar{padding:9px 10px;gap:7px}
  .drawing-viewer-hint{flex-basis:100%}
  .drawing-viewer-controls{gap:5px}
  .drawing-viewer-toolbar button{min-height:36px;padding:7px 9px}
  .drawing-context .drawing-viewer-stage{height:240px}
  .drawing-viewer-dialog{width:calc(100vw - 16px);height:calc(100dvh - 16px);border-radius:10px}
  .drawing-viewer-dialog-head{min-height:58px;padding:12px}
  .drawing-viewer-dialog .drawing-viewer-toolbar{padding:9px 12px}
  .drawing-viewer-dialog .drawing-viewer-stage{height:auto}
  .settings-pair{grid-template-columns:1fr;gap:0}
  .drawing-context summary small{max-width:85px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .drawing-drop-overlay{inset:59px 0 0}
}
@media(max-width:800px){
  .app-shell.sidebar-collapsed>.sidebar,body.sidebar-collapsed .sidebar{display:flex}
  .sidebar-toggle{display:none}
  body.has-drawing .workspace-tabs{display:flex}
  .workspace-divider{display:none!important}
  .workspace-body[data-mobile-view=chat]>.drawing-panel{display:none}
  .workspace-body[data-mobile-view=drawing]>.chat-panel{display:none}
  .workspace-body[data-mobile-view=drawing]>.drawing-panel:not([hidden]){display:flex;flex:1;width:100%;min-width:0;max-width:none}
  .drawing-panel{width:100%;min-width:0;max-width:none}
  .workspace-head{min-height:55px;padding:10px 16px}
  .workspace-viewer .drawing-viewer-stage{height:auto;min-height:0}
  .workspace-review{max-height:34%;padding:13px 16px}
  .workspace-footer{min-height:53px}
  .chat-empty .chat-panel{padding-bottom:30px}
  .chat-empty .composer-wrap{margin-bottom:0}
  .jump-latest{right:16px;bottom:152px}
  .topbar-title{font-size:14px}
  .topbar-badge{display:none}
  .topbar-actions{gap:6px}
  .composer-hint{display:none}
}
@media(max-width:560px){
  .topbar{height:57px}
  .topbar-left{gap:4px}
  #open-drawing{max-width:88px;padding:7px 8px}
  #open-drawing .ui-icon{width:15px;height:15px}
  #settings-open{max-width:112px}
  .workspace-toggle{width:30px;min-width:30px;padding:6px;border-color:transparent}
  .lang-button{padding:6px 3px;font-size:11px}
  .chat-empty .empty-state{padding:24px 20px}
  .chat-empty .composer-wrap{margin-bottom:0}
  .suggestions{gap:7px;margin-top:20px}
  .suggestions button{width:auto;max-width:100%;font-size:11px;padding:8px 10px}
  .composer-wrap,.messages{width:calc(100% - 24px)}
  .composer textarea{font-size:16px;min-height:76px;max-height:25dvh;padding:14px 14px 7px}
  .composer-footer{padding:0 9px 9px 10px}
  .attach-drawing{font-size:11px}
  .send-button,.stop-button{min-width:65px;padding:8px 10px;gap:6px}
  .privacy-disclosure{font-size:10px}
  .messages{padding-bottom:28px}
  .message-content{font-size:14px}
  .message.user .message-body{max-width:92%}
  .workspace-viewer .drawing-viewer-toolbar{padding:8px 10px}
  .workspace-viewer .drawing-viewer-toolbar button{min-height:34px}
  .workspace-viewer .drawing-viewer-hint{flex-basis:100%}
  .workspace-review-actions button{min-height:36px}
  .workspace-action{min-height:35px}
  .drawing-drop-overlay{inset:57px 0 0}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
