:root{color-scheme:dark;--bg:#0c1723;--panel:#132333;--line:#294153;--text:#edf5f7;--muted:#a5bac7;--accent:#77e3e0;--danger:#ffb3a7;font-family:"Segoe UI","Microsoft YaHei",sans-serif;font-size:16px;background:var(--bg);color:var(--text)}*{box-sizing:border-box}body{margin:0}main{max-width:740px;margin:auto;padding:36px 22px 24px}header,.section-title,.connection,.input-row{display:flex;align-items:center;justify-content:space-between;gap:16px}header{margin-bottom:32px}h1{font-weight:600;font-size:30px;letter-spacing:.04em;margin:8px 0}h2{font-size:18px;font-weight:600;margin:0 0 12px}.eyebrow{font-size:11px;letter-spacing:.18em;font-weight:600;color:var(--accent);margin:0 0 12px}.private{font-size:12px;border:1px solid var(--line);padding:8px 10px;white-space:nowrap;border-radius:3px;color:var(--accent)}.connection{justify-content:flex-start;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:24px}.connection p{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.6}.dot{width:9px;height:9px;flex-shrink:0;background:#7591a5;border-radius:50%}.dot.online{background:var(--accent)}.panel{background:var(--panel);padding:24px;border-radius:4px;border:1px solid var(--line)}.panel>p{line-height:1.8;color:var(--muted);font-size:14px}.panel>.eyebrow{color:var(--accent);font-size:11px}.hint{color:var(--muted);font-size:12px!important;line-height:1.7;margin:12px 0 0}button,.file-button{display:inline-block;border:1px solid var(--line);border-radius:3px;background:#20374a;color:var(--text);padding:12px 18px;min-height:46px;font:inherit;font-size:14px;font-weight:600;cursor:pointer}button:disabled{opacity:.45;cursor:wait}button:hover:not(:disabled),.file-button:hover{border-color:var(--accent)}button:focus-visible,.file-button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.file-button{background:var(--accent);color:var(--bg);margin:12px 0}#pair-file{display:block;font-size:12px;max-width:100%;color:var(--muted)}.section-title{margin-bottom:16px}.section-title h2{margin:0}.section-title>span{color:var(--muted);font-size:11px}.primary{background:var(--accent);color:var(--bg);width:100%;display:flex;justify-content:space-between;margin-top:20px;border-color:var(--accent)}form{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}label{display:block;font-size:13px;margin-bottom:10px}.input-row{gap:8px}input:not([type=file]){width:100%;min-width:0;min-height:46px;border:1px solid var(--line);border-radius:3px;background:var(--bg);padding:12px;color:var(--text);font:inherit;font-size:14px}.input-row button{white-space:nowrap}.activity{margin-top:36px}#empty{font-size:14px;line-height:1.8;color:var(--muted);border-left:2px solid var(--line);padding:10px 18px}ol{list-style:none;padding:0;margin:0}.job{margin:0 0 20px;padding:0 0 20px 18px;border-left:2px solid var(--line);border-bottom:1px solid var(--line);overflow-wrap:anywhere}.job.complete{border-left-color:var(--accent)}.job h3{font-size:14px;margin:0 0 8px;font-weight:500}.job .meta{font:11px/1.7 Consolas,monospace;color:var(--muted);margin:0 0 12px}.event{font-size:14px;line-height:1.8;white-space:pre-wrap;margin:14px 0 0}.event.result{color:var(--text)}.event.progress,.event.waiting,.event.submitted{color:var(--muted)}.event.rejected,.event.uncertain{color:var(--danger)}#notice:not(:empty){color:var(--danger);font-size:13px;line-height:1.7;border:1px solid #665052;padding:12px}footer{display:flex;justify-content:space-between;color:#839eaf;font-size:11px;border-top:1px solid var(--line);padding-top:20px;margin-top:40px}@media(max-width:480px){main{padding:24px 16px}header{gap:8px}h1{font-size:25px}.private{font-size:10px;padding:7px}.panel{padding:18px}.section-title>span{font-size:10px}}[hidden]{display:none!important}

#login-form,#chat-form{border-top:0;margin-top:16px;padding-top:0}#password,textarea{font-size:16px}textarea{display:block;width:100%;min-height:112px;resize:vertical;border:1px solid var(--line);border-radius:3px;background:var(--bg);color:var(--text);padding:12px;font-family:inherit;line-height:1.7}textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.job h3{white-space:pre-wrap;line-height:1.7}.job .meta{white-space:pre-line}#chat-send{margin-top:12px}

/* Chat view; login and setup keep their existing layout. */
body.chat-mode{color-scheme:light;--bg:#f1f3f6;--panel:#fff;--line:#dce2e8;--text:#1d2734;--muted:#778393;--accent:#0099f7;--danger:#b34438;background:#e7ecf2;color:var(--text);height:100vh;height:100dvh;overflow:hidden}
.chat-mode main{position:fixed;top:var(--chat-top,0px);left:0;right:0;display:flex;flex-direction:column;max-width:780px;height:var(--chat-height,100dvh);min-height:0;padding:0;background:#f1f3f6;border-inline:1px solid #dce2e8}
.chat-mode header{flex:none;min-height:58px;margin:0;padding:12px 90px 8px 18px;background:#fff;gap:0}
.chat-mode header .eyebrow,.chat-mode header .private,.chat-mode footer{display:none}
.chat-mode h1{font-size:18px;letter-spacing:0;line-height:1.5;margin:0}
.chat-mode .connection{flex:none;margin:0;padding:0 18px 10px;background:#fff;border-top:0;border-bottom:1px solid #e5e9ee;gap:7px}
.chat-mode .connection strong{font-size:12px;font-weight:400;color:#657486}
.chat-mode .connection p{display:none}
.chat-mode .dot{width:7px;height:7px;background:#9ca8b5}
.chat-mode .dot.online{background:#28b779}
.chat-mode #notice{flex:none;margin:0;border:0;border-bottom:1px solid #edcdc5;background:#fff2ed;color:#934538;padding:8px 16px;font-size:12px}
.chat-mode #notice:empty{display:none}
.chat-mode #console{display:flex;flex:1;flex-direction:column;min-height:0}
.chat-tools{position:absolute;top:12px;right:14px;z-index:5}
.chat-tools>summary{list-style:none;padding:8px 12px;border-radius:8px;cursor:pointer;font-size:14px;color:#526476;user-select:none}
.chat-tools>summary::-webkit-details-marker{display:none}
.chat-tools[open]>summary{background:#e8f4ff;color:#007bcc}
.chat-mode .tools-panel{position:absolute;top:44px;right:0;width:min(340px,calc(100vw - 28px));padding:18px;background:#fff;border:1px solid #e0e6ed;border-radius:12px;box-shadow:0 10px 35px #23374e26}
.chat-mode .tools-panel h2{font-size:15px}
.chat-mode .tools-panel .hint{font-size:12px!important}
.chat-mode .tools-panel button{border:1px solid #d8e3ed;background:#f1f7fc;color:#1674b2;border-radius:7px;min-height:40px;padding:8px 12px}
.chat-mode .tools-panel #query{width:100%;margin-top:14px}
.chat-mode .tools-panel form{margin-top:16px;padding-top:16px}
.chat-mode .tools-panel input{font-size:14px;background:#f7f9fb;border-radius:7px}
.chat-mode #chat-history{flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;margin:0;padding:16px 14px 20px;scrollbar-width:thin}
.chat-mode #empty{border:0;text-align:center;margin:45px 0;color:#8b96a4;font-size:13px;padding:0}
.chat-mode .job{border:0;margin:0 0 22px;padding:0;overflow-wrap:anywhere}
.message-time{text-align:center;color:#929ba8;font-size:11px;margin:0 0 14px}
.message-row{display:flex;align-items:flex-start;gap:9px;margin:10px 0}
.message-row.outgoing{flex-direction:row-reverse}
.message-avatar{display:flex;flex:none;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;font-size:12px;font-weight:600;background:#dce5ee;color:#52718c}
.outgoing .message-avatar{background:#cceafd;color:#167ab7}
.incoming .message-avatar{background:#fff;color:#0b8ade;border:1px solid #e5eaf0}
.message-bubble{max-width:min(78%,560px);min-width:32px;margin:0;padding:11px 13px;border-radius:12px;font-size:16px;line-height:1.65;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}
.outgoing .message-bubble{background:#0099f7;color:#fff;border-top-right-radius:4px}
.incoming .message-bubble{background:#fff;color:#222e3d;border:1px solid #e5e9ef;border-top-left-radius:4px}
.message-row.progress .message-bubble{color:#5f6f82}
.message-details{margin:2px 44px 12px;text-align:right;font-size:11px;color:#8793a2}
.message-details>summary{cursor:pointer;list-style:none}
.message-details>summary::-webkit-details-marker{display:none}
.message-details[open]{padding:8px 10px;background:#e7ecf2;border-radius:8px}
.chat-mode .message-details .meta{font:11px/1.7 Consolas,monospace;white-space:pre-line;margin:7px 0 0;word-break:break-all}
.delivery-status{font-size:11px;text-align:center;color:#8c97a5;line-height:1.65;margin:8px 36px;white-space:pre-wrap}
.delivery-status.error{color:#ac5144;background:#fff0eb;padding:8px 10px;border-radius:8px}
.chat-mode .composer{flex:none;background:#f8f9fb;border-top:1px solid #dce3ea;padding:10px 12px calc(10px + env(safe-area-inset-bottom));margin:0}
.chat-mode #chat-form{display:flex;align-items:flex-end;gap:9px;border:0;padding:0;margin:0}
.chat-mode #message{flex:1;min-width:0;width:auto;min-height:44px;max-height:120px;height:44px;margin:0;resize:none;border:1px solid #dfe5eb;border-radius:10px;background:#fff;color:#172433;padding:9px 12px;font-size:16px;line-height:24px;overflow-y:auto}
.chat-mode #chat-send{flex:none;width:auto;margin:0;min-height:44px;padding:10px 17px;border:0;border-radius:9px;background:#0099f7;color:#fff;font-size:15px}
.chat-mode #chat-send:disabled{opacity:.5}
.chat-mode button:focus-visible,.chat-mode summary:focus-visible,.chat-mode textarea:focus-visible{outline:2px solid #008ee5;outline-offset:2px}
.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}
@media(min-width:781px){.chat-mode main{box-shadow:0 0 32px #34486312}.chat-mode #chat-history{padding:20px 28px}}

html,body{touch-action:pan-y;-webkit-text-size-adjust:100%;text-size-adjust:100%}
input:not([type=file]){font-size:16px}
#topics-open{display:none}
.chat-mode #topics-open{display:block;flex:none;border:0;background:transparent;color:#476279;font-size:23px;padding:4px 10px;min-height:38px;margin-right:8px}
.chat-mode header{padding-left:8px;justify-content:flex-start}
.chat-heading{min-width:0}
.chat-mode #topic-title{font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-mode select{width:100%;min-height:42px;font:inherit;font-size:16px;border:1px solid #d8e3ed;border-radius:8px;padding:8px 10px;background:#fff;color:#25384a}
.topics-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0;background:#172b4866;z-index:20}
.topics-drawer{position:absolute;inset:0 auto 0 0;width:min(340px,86%);z-index:21;display:flex;flex-direction:column;background:#f8fafc;border-right:1px solid #d7e1ec;box-shadow:10px 0 32px #223b4922;padding:18px 12px calc(12px + env(safe-area-inset-bottom));min-height:0}
.drawer-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.drawer-heading h2{margin:0;font-size:18px}
.chat-mode #topics-close{border:0;background:transparent;color:#526476;font-size:24px;min-height:38px;padding:0 10px}
#topic-list{overflow-y:auto;min-height:0;flex:1;margin-top:12px;overscroll-behavior-y:contain;touch-action:pan-y}
.chat-mode .topic-choice{display:block;width:100%;text-align:left;white-space:normal;overflow-wrap:anywhere;font-weight:400;line-height:1.5;color:#293a4e;background:#fff;border:1px solid #e3eaf0;border-radius:9px;margin:0 0 8px;padding:10px 12px}
.chat-mode .topic-choice[aria-current=true]{background:#e4f3ff;border-color:#78bdf0;color:#006eb4}
.topic-meta{display:block;font-size:11px;color:#8793a2;margin-top:5px}
.chat-mode #history-older{display:block;margin:0 auto 12px;border:0;background:#e4eaf0;color:#60778b;min-height:32px;font-size:12px;font-weight:400;padding:6px 14px;border-radius:14px}
#history-state{text-align:center;margin:0 0 12px;font-size:11px!important;color:#8793a2}
.chat-mode #chat-history,.chat-mode #message{touch-action:pan-y}
.history-message{margin-bottom:18px;overflow-wrap:anywhere}
