:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#252824;background:#fafbf9;font-size:14px;--bg:#fafbf9;--surface:#fff;--subtle:#f0f2ee;--line:#e4e7e0;--muted:#7c8278;--accent:#32634e;--accent-soft:#e5eee6;--text:#252824;--danger:#ad473a}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;color:inherit;border:0;background:transparent;transition:background .15s,transform .15s}button:hover{background:var(--subtle)}button:disabled{opacity:.4;cursor:not-allowed}input,textarea,select{color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:10px 12px;outline:none}input:focus,textarea:focus,select:focus{border-color:#91af97;box-shadow:0 0 0 3px #32634e12}textarea{resize:vertical;line-height:1.65}input[type=checkbox]{width:auto}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:570;letter-spacing:-.03em}h1{font-size:38px}h2{font-size:25px}h3{font-size:16px}p{line-height:1.8}.hidden{display:none!important}.muted{color:var(--muted)}.error{color:var(--danger);font-size:13px;white-space:pre-wrap}.eyebrow{font-size:11px;letter-spacing:.15em;font-weight:600;color:var(--muted)}.primary{background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:7px;padding:11px 18px}.primary:hover{background:#254f3c}.secondary{border:1px solid var(--line);border-radius:7px;background:var(--surface);padding:10px 16px}.danger{color:var(--danger)}.wide{width:100%;display:flex;justify-content:space-between}.text-button{font-size:12px;color:var(--muted);padding:8px}.icon-button{display:grid;place-items:center;min-width:32px;height:32px;border-radius:6px;font-size:19px}.brand{font-size:22px;display:flex;align-items:center;gap:9px;letter-spacing:-.05em;font-weight:650}.logo{display:inline-grid;place-items:center;background:var(--accent);color:#fff;width:31px;height:31px;border-radius:9px;font-size:25px}.web-tag{font-family:monospace;letter-spacing:.09em;font-size:9px;font-weight:500;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:3px 5px;margin-top:2px}.login-screen{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.login-intro{margin:22px;background:#edf1e8;border-radius:16px;padding:48px 54px;display:flex;flex-direction:column;justify-content:space-between;min-height:650px}.login-intro h1{font-size:49px;line-height:1.45;margin:20px 0}.login-intro p{color:#78816f;font-size:16px}.login-form-wrap{display:flex;align-items:center;justify-content:center;padding:40px}.login-form-wrap form{width:100%;max-width:345px}.login-form-wrap h2{margin:17px 0 10px;font-size:28px}.login-form-wrap label{display:block;margin-top:25px;font-size:13px}.login-form-wrap input{display:block;width:100%;margin-top:10px;height:46px}.login-form-wrap .primary{margin-top:24px}.login-note{color:var(--muted);font-size:12px;margin-top:24px}.app{display:flex;height:100dvh;overflow:hidden}.sidebar{width:236px;flex-shrink:0;background:#f0f2ed;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:25px 14px 12px}.sidebar .brand{padding-left:9px;margin-bottom:26px}.new-thread{display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;border:1px solid #dbe1d5;border-radius:7px;background:#fafbf8;margin-bottom:19px;font-size:13px}.new-thread>span{font-size:19px;line-height:18px}kbd{font:10px monospace;color:var(--muted);margin-left:auto}nav{display:grid;gap:3px}nav button{display:flex;align-items:center;text-align:left;gap:12px;padding:10px 13px;border-radius:6px;font-size:13px;color:#6b7366}nav button.active{background:#e1e7dc;color:#2e4936;font-weight:600}.nav-icon{width:18px;text-align:center;font-size:17px}.sidebar-section{font-size:11px;color:var(--muted);padding:26px 12px 8px;display:flex;align-items:center;justify-content:space-between}.sidebar-section button{font-size:15px}.thread-search{border:0;background:transparent;width:100%;padding:8px 12px;font-size:12px}.threads{overflow:auto;min-height:60px;flex:1}.thread-row{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;text-align:left;border-radius:5px;font-size:12px;color:#62685f}.thread-row.active{background:#e3e8df;color:var(--text)}.thread-row span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.thread-dot{width:5px;height:5px;border-radius:50%;background:#a5ada0;flex-shrink:0}.thread-row.running .thread-dot{background:#609b69}.empty-threads{font-size:11px;color:#949c90;line-height:1.8;padding:15px 12px}.sidebar-footer{border-top:1px solid var(--line);padding-top:10px}.profile{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:8px;border-radius:8px}.avatar{background:#e0e6da;color:#59744d;width:32px;height:32px;border-radius:50%;display:grid;place-items:center}.profile strong{font-size:12px;display:block;font-weight:600}.profile small{font-size:10px;color:var(--muted);display:block;margin-top:4px}.profile-arrow{margin-left:auto;color:var(--muted)}.connection{padding:11px 8px 4px;font-size:10px;color:var(--muted);display:flex;align-items:center;gap:6px}.connection button{margin-left:auto;color:var(--accent);font-size:10px}.dot{width:5px;height:5px;border-radius:50%;background:#c0a77a}.dot.online{background:#6d9874}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:65px;flex-shrink:0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:var(--surface)}.breadcrumbs{display:flex;align-items:center;gap:12px;font-size:12px;color:#92988c}.breadcrumbs strong{color:#525a4d;font-weight:500}.top-actions{display:flex;align-items:center;gap:16px}.status-pill{background:#f3f5f0;border:1px solid var(--line);font-size:10px;color:#88917f;border-radius:20px;padding:4px 9px}.workbench{display:flex;flex:1;min-height:0}.main-content{flex:1;min-width:0;overflow:hidden}.chat-view{height:100%;display:flex;flex-direction:column}.thread-toolbar{padding:12px 28px;border-bottom:1px solid var(--line);display:flex;gap:8px;justify-content:space-between;font-size:12px;align-items:center}.thread-toolbar>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.thread-toolbar button{font-size:11px;color:var(--muted);padding:5px}.conversation{flex:1;overflow:auto;padding:24px max(30px,calc((100% - 820px)/2));scroll-behavior:smooth}.welcome{max-width:690px;margin:clamp(35px,9vh,110px) auto 28px}.welcome-symbol{font-size:36px;font-weight:300;color:#688d6b;width:60px;height:60px;display:grid;place-items:center;margin-bottom:27px;background:#ecf1e8;border-radius:16px}.welcome .eyebrow{font-size:10px}.welcome h1{font-size:34px;line-height:1.5;margin:15px 0 8px;font-weight:540}.welcome>p{color:var(--muted);font-size:13px}.suggestions{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-top:32px}.suggestion{border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:18px 16px;text-align:left}.suggestion:hover{border-color:#bbc9b4;background:#f5f7f0;transform:translateY(-2px)}.suggestion .symbol{display:block;font-size:21px;color:#7e9575;margin-bottom:18px}.suggestion strong{font-size:12px;font-weight:550;display:block;margin-bottom:7px}.suggestion small{font-size:10px;color:var(--muted);line-height:1.7;display:block}.welcome-bottom{display:flex;gap:20px;margin-top:22px;color:#9da494;font-size:10px}.composer-area{padding:0 max(30px,calc((100% - 820px)/2)) 20px}.composer{background:var(--surface);border:1px solid #dce2d6;border-radius:13px;box-shadow:0 4px 15px #1d2c1604}.composer:focus-within{border-color:#a8bda1;box-shadow:0 4px 18px #1d2c1608}.composer textarea{width:100%;border:0;background:transparent;resize:none;max-height:180px;box-shadow:none;padding:17px 18px;font-size:13px}.composer-tools{padding:0 11px 11px;display:flex;justify-content:space-between;align-items:center;gap:8px}.composer-tools>div{display:flex;align-items:center;gap:5px}.composer-tools select{border:0;padding:5px;font-size:10px;max-width:180px;background:transparent;color:#7f8978}.send{width:32px;height:32px;border-radius:8px;color:#fff;background:#47734e;font-size:21px}.send:hover{background:#335d39}.composer-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px;color:#a0a697;font-size:9px;gap:10px}.composer-footer select{border:0;background:transparent;font-size:10px;padding:3px;color:#7a8570;max-width:220px}.stop{font-size:11px;color:var(--danger);padding:5px}.message{margin-bottom:26px;font-size:13px;line-height:1.85;overflow-wrap:anywhere}.message-head{display:flex;align-items:center;gap:8px;font-size:11px;color:#8e9786;margin-bottom:9px}.message.user{background:#edf1e8;padding:13px 19px;border-radius:12px;margin-left:10%;white-space:pre-wrap}.message.user .message-head{color:#7a8970}.message p{margin:0 0 10px}.message h3{margin:16px 0 6px;font-size:15px}.message ul{padding-left:23px}.message pre,.output,pre.code{background:#f0f3ed;border:1px solid var(--line);border-radius:7px;padding:13px;overflow:auto;font-size:11px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;line-height:1.7}.message code{font-family:ui-monospace,monospace;background:#eaf0e5;border-radius:3px;padding:2px 4px;font-size:12px}.message pre code{padding:0;background:transparent}.tool-item{border:1px solid var(--line);border-radius:7px;margin:10px 0;background:var(--surface);font-size:11px}.tool-item summary{cursor:pointer;padding:11px;color:#7a8372}.tool-item pre{max-height:280px;margin:0;border:0}.tool-status{float:right;color:#8b987c}.notice{padding:10px 30px;border-bottom:1px solid #e6dcc7;background:#faf7ed;font-size:12px;color:#8b7750;line-height:1.7}.notice button{margin-left:10px;text-decoration:underline}.page-view{height:100%;overflow:auto;padding:38px 40px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:30px}.page-heading h2{margin:0 0 9px}.page-heading p{color:var(--muted);font-size:12px;margin:0}.page-heading button{font-size:12px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:17px}.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:22px;overflow:hidden}.card p{font-size:12px;color:var(--muted)}.card .card-icon{font-size:24px;color:#8b9e7e;display:block;margin-bottom:22px}.card h3{margin-bottom:8px}.card small{color:var(--muted);font-size:10px;display:block;overflow-wrap:anywhere}.card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.card-actions button{font-size:11px;padding:6px 9px;border:1px solid var(--line);border-radius:5px}.empty-state{padding:60px 25px;text-align:center;color:var(--muted);border:1px dashed #dce2d5;border-radius:12px}.empty-state .symbol{font-size:36px;display:block;margin-bottom:15px;color:#93a284}.empty-state h3{font-size:16px;color:#5b6852}.empty-state p{font-size:12px;max-width:400px;margin:0 auto 20px}.settings-section{background:var(--surface);padding:24px;border:1px solid var(--line);border-radius:9px;margin-bottom:18px}.settings-section p{font-size:12px;color:var(--muted)}.settings-section .row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.settings-section .row button{font-size:12px}.settings-section code{font-size:11px;overflow-wrap:anywhere}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;background:var(--surface);font-size:12px}th,td{text-align:left;padding:15px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:11px;font-weight:500;color:var(--muted)}td button{font-size:11px;color:var(--accent);margin-right:6px}.badge{padding:3px 7px;background:var(--accent-soft);color:var(--accent);border-radius:4px;font-size:10px;display:inline-block}.badge.warn{background:#f8efda;color:#9b803f}.badge.error{background:#f8e9e3;color:#a45944}.inspector{width:390px;border-left:1px solid var(--line);display:flex;flex-direction:column;background:var(--surface);flex-shrink:0;min-width:0}.inspector-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);padding:6px 12px}.inspector-tabs button{font-size:11px;padding:10px 12px;border-radius:5px}.inspector-tabs button.active{color:var(--accent);background:var(--accent-soft)}#inspector-body{overflow:auto;padding:16px;flex:1;font-size:12px}.panel-actions{display:flex;gap:6px;align-items:center;margin-bottom:15px;flex-wrap:wrap}.panel-actions button{border:1px solid var(--line);border-radius:5px;padding:6px 8px;font-size:10px}.file-row{display:block;width:100%;text-align:left;padding:9px 8px;border-radius:5px;font-size:12px;color:#68755c}.file-row:hover{background:#f0f4ea}.file-editor{width:100%;min-height:350px;font:11px/1.7 ui-monospace,monospace;tab-size:2;white-space:pre}.file-path{font-size:10px;color:var(--muted);overflow-wrap:anywhere;line-height:1.8}.diff-line{display:block;white-space:pre-wrap;overflow-wrap:anywhere}.diff-line.add{background:#edf6e5;color:#467039}.diff-line.del{background:#fae9e3;color:#ab5e4a}.diff-line.meta{color:#8397b2}.diff{font:10px/1.8 ui-monospace,monospace}.terminal-output{min-height:240px;max-height:55vh;overflow:auto;background:#22291f;color:#c4cfb8;padding:14px;border-radius:7px;font:11px/1.7 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.terminal-form{display:flex;gap:6px;margin-top:10px}.terminal-form input{min-width:0;flex:1;font-size:11px}.terminal-form button{font-size:11px}.event-row{margin:8px 0;border-bottom:1px solid var(--line);font-size:10px;padding-bottom:8px}.event-row summary{cursor:pointer;color:var(--muted);overflow-wrap:anywhere}.event-row pre{font-size:9px;max-height:180px;overflow:auto;white-space:pre-wrap}.approval{background:#fbf8ef;border:1px solid #e8ddbd;border-radius:9px;padding:15px;margin:12px 0;font-size:12px}.approval h3{font-size:13px;margin:0 0 9px}.approval pre{max-height:180px;overflow:auto;font-size:10px;white-space:pre-wrap}.approval button{margin:8px 8px 0 0;padding:7px 10px;font-size:11px;border:1px solid #ded3b9;border-radius:5px}.approval .primary{border-color:var(--accent)}.approval label{display:block;margin-top:10px;font-size:11px}.approval input,.approval select,.approval textarea{width:100%;margin:6px 0;font-size:11px}.plan{background:#f0f4eb;border:1px solid #dce4d3;border-radius:8px;padding:12px;font-size:11px;margin-bottom:10px}.plan div{padding:4px;color:#718363}.attachments{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:7px}.attachment{font-size:10px;padding:5px 8px;border-radius:5px;background:#eaf0e3;color:#6d805d}.attachment button{padding-left:8px}dialog{border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--text);width:min(560px,calc(100vw - 30px));padding:25px;max-height:85dvh;box-shadow:0 20px 80px #17230d2a}dialog::backdrop{background:#19201155;backdrop-filter:blur(3px)}.dialog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.dialog-header h2{font-size:19px;margin:0}.dialog-header button{font-size:24px;color:var(--muted)}#dialog-body label{display:block;font-size:12px;margin:16px 0}#dialog-body input,#dialog-body textarea,#dialog-body select{display:block;width:100%;margin-top:8px}#dialog-body textarea{min-height:110px}#dialog-body p{font-size:12px;color:var(--muted)}.dialog-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.dialog-footer button{font-size:12px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#2c3927;color:#f3f6ef;padding:12px 20px;max-width:min(90vw,600px);font-size:12px;border-radius:8px;z-index:100;box-shadow:0 5px 20px #0002}.spinner{animation:spin 1s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}#mobile-menu{display:none}.loading{padding:45px;color:var(--muted);text-align:center;font-size:12px}.inline-actions{display:flex;gap:10px}.details-json{max-height:320px;overflow:auto;white-space:pre-wrap;font-size:11px}.footer-note{margin:25px 0;font-size:11px;color:var(--muted);line-height:1.9}.inline-link{color:var(--accent);text-decoration:underline;cursor:pointer}.toggle{color:var(--accent);font-size:11px}.token-count{font-variant-numeric:tabular-nums}button:focus-visible{outline:2px solid #8daa7d;outline-offset:3px}
@media(min-width:1500px){.sidebar{width:255px}.inspector{width:440px}}
@media(max-width:1100px){.sidebar{width:210px}.inspector{width:330px}.conversation{padding:24px}.composer-area{padding:0 24px 20px}.suggestions{gap:8px}.suggestion{padding:14px 12px}.page-view{padding:30px 25px}.composer-tools select{max-width:130px}.thread-toolbar{flex-wrap:wrap}}
@media(max-width:820px){.inspector{position:absolute;right:0;top:65px;bottom:0;width:min(95vw,420px);box-shadow:-10px 0 35px #15200d16;z-index:5}.login-screen{grid-template-columns:1fr}.login-intro{display:none}.login-form-wrap{min-height:100dvh}.sidebar{width:205px}.topbar{padding:0 20px}.welcome h1{font-size:27px}.welcome{margin-top:40px}.suggestions{grid-template-columns:1fr}.suggestion{display:flex;align-items:center;gap:12px}.suggestion .symbol{margin:0}.suggestion small{display:none}.suggestion strong{margin:0}.welcome-bottom{display:none}.composer-tools select{max-width:100px;font-size:9px}.composer-footer>span{font-size:8px}}
@media(max-width:600px){.sidebar{position:absolute;inset:0 auto 0 0;width:240px;z-index:20;transform:translateX(-100%);box-shadow:10px 0 40px #0002;transition:transform .2s}.sidebar.open{transform:translateX(0)}#mobile-menu{display:grid;margin-right:10px}.topbar{justify-content:flex-start;height:58px;padding:0 14px}.top-actions{margin-left:auto;gap:10px}.breadcrumbs{font-size:11px;gap:8px}.status-pill{display:none}.conversation{padding:20px}.welcome{margin:25px auto}.welcome-symbol{margin-bottom:22px}.welcome h1{font-size:27px}.welcome>p{font-size:12px}.composer-area{padding:0 14px 14px}.composer textarea{font-size:13px}.composer-tools{padding:0 8px 9px}.composer-tools select{max-width:95px}.composer-footer{font-size:8px}.composer-footer select{max-width:155px}.page-view{padding:27px 20px}.page-heading h2{font-size:22px}.page-heading{align-items:flex-start}.page-heading button{padding:8px 10px;white-space:nowrap}.thread-toolbar{padding:9px 15px}.thread-toolbar>div{display:flex;flex-wrap:wrap}.thread-toolbar button{font-size:10px}.inspector{top:58px}.cards{grid-template-columns:1fr}.message.user{margin-left:4%}.login-form-wrap{padding:30px}.notice{padding:8px 15px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

.image-preview{margin:14px 0;max-width:100%;overflow:hidden}.image-preview img{display:block;max-width:100%;max-height:680px;object-fit:contain;border-radius:12px;background:#eee}.image-preview figcaption{font-size:12px;line-height:1.8;margin-top:8px;overflow-wrap:anywhere}.image-preview figcaption a{margin-left:12px}.image-error{display:block;color:#b74236}.image-error.hidden{display:none}.message a{color:var(--accent,#326b52);text-decoration:underline}.provider-select{font:inherit;padding:6px 10px;border-radius:8px;border:1px solid #ccc;background:transparent;color:inherit}

/* 御剑乘风 — ink, jade, parchment and a restrained brass accent. */
:root{
  --bg:#f7f8f3;--surface:#fffefb;--subtle:#edf2ec;--line:#dce4da;
  --muted:#6f8077;--accent:#285d50;--accent-soft:#e5eee5;--text:#243e37;--danger:#a65043;
  --serif:"Noto Serif CJK SC","Songti SC","STSong","SimSun",serif;
  --mountains:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%20600%22%20fill%3D%22none%22%3E%3Ccircle%20cx%3D%22760%22%20cy%3D%22150%22%20r%3D%2268%22%20stroke%3D%22%23c9b68b%22%20stroke-opacity%3D%22.45%22%2F%3E%3Ccircle%20cx%3D%22760%22%20cy%3D%22150%22%20r%3D%2255%22%20fill%3D%22%23d4c69d%22%20fill-opacity%3D%22.12%22%2F%3E%3Cpath%20d%3D%22M0%20470%20100%20410%20160%20426%20260%20286%20318%20338%20368%20302%20450%20393%20545%20245%20620%20310%20735%20192%20840%20320%20900%20275%201000%20395V600H0Z%22%20fill%3D%22%23719c8c%22%20fill-opacity%3D%22.23%22%2F%3E%3Cpath%20d%3D%22M0%20510%20110%20472%20180%20493%20300%20375%20360%20419%20438%20365%20560%20460%20660%20356%20710%20381%20820%20285%20902%20399%201000%20348V600H0Z%22%20fill%3D%22%239cb9a8%22%20fill-opacity%3D%22.24%22%2F%3E%3Cpath%20d%3D%22M0%20570C170%20468%20205%20540%20350%20495S550%20530%20690%20460%20870%20490%201000%20420V600H0Z%22%20fill%3D%22%23d1d9bd%22%20fill-opacity%3D%22.19%22%2F%3E%3Cpath%20d%3D%22M-30%20350C180%20260%20310%20425%20595%20330S840%20370%201030%20280M-20%20380C190%20290%20325%20455%20610%20360S850%20400%201040%20310%22%20stroke%3D%22%23cad4bd%22%20stroke-opacity%3D%22.2%22%20stroke-width%3D%221.4%22%2F%3E%3Cpath%20d%3D%22m610%20135%208-3%207%206m29-30%207-2%206%205%22%20stroke%3D%22%23c7ceb2%22%20stroke-opacity%3D%22.65%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E");
  background:var(--bg);color:var(--text);
}
body{background:var(--bg)}
.icon-defs{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.sword-icon{display:block;width:100%;height:100%;flex-shrink:0}
.brand{gap:11px;letter-spacing:0;font-weight:600}
.logo{width:39px;height:43px;flex-shrink:0;padding:4px;background:#2a544b;color:#faf8ec;border:1px solid #d3c18c44;border-radius:11px 3px 11px 3px}
.brand-type{display:flex;flex-direction:column;gap:5px}
.brand-name{font-family:var(--serif);font-size:22px;font-weight:600;letter-spacing:.12em;line-height:1.2;white-space:nowrap}
.brand-caption{font-size:9px;letter-spacing:.24em;font-weight:400;opacity:.65}
.login-mobile-brand{display:none}
.eyebrow{letter-spacing:.2em;color:#7d8d7b;font-weight:500}
.login-screen{background:radial-gradient(ellipse at 85% 8%,#e5ebdf88,transparent 45%),#faf9f3}
.login-intro{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(145deg,#112f2e,#264e43);border:1px solid #d5c08c45;border-radius:18px 4px 18px 4px;color:#f5f3e6;padding:46px 52px}
.login-intro::before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(ellipse at 60% 10%,#73947e22,transparent 60%)}
.login-intro::after{content:"";position:absolute;z-index:-1;inset:24% -15% 0;background-image:var(--mountains);background-size:cover;background-position:center bottom;pointer-events:none}
.login-intro .brand{color:#f5f3e6}
.login-intro h1{font-family:var(--serif);font-size:clamp(34px,3.5vw,54px);font-weight:500;letter-spacing:.09em;line-height:1.65;margin:24px 0}
.login-intro .eyebrow{color:#c7bd94;font-size:11px}
.login-intro p{color:#c4d2c1;font-size:14px;line-height:2.1}
.login-intro>.muted{color:#b6c7b4;font-size:11px;letter-spacing:.3em}
.login-form-wrap h2{font-family:var(--serif);letter-spacing:.1em;font-weight:600;font-size:29px}
.login-form-wrap .eyebrow{color:#8a8b6e;font-size:10px}
.login-form-wrap label{color:#425b50}
.login-form-wrap input{background:#fffefbcc;border-color:#d8e0d3;border-radius:6px;height:48px}
.login-form-wrap .primary{background:linear-gradient(110deg,#224c42,#3b6955);border-color:#294f42;border-radius:6px;height:47px;align-items:center;box-shadow:0 6px 16px #1c46321a;letter-spacing:.1em}
.sidebar{position:relative;background:linear-gradient(165deg,#173b37 0%,#21433a 65%,#294b3e 100%);color:#e6ecdd;border-color:#24483f}
.sidebar::before{content:"";position:absolute;bottom:38px;left:0;right:0;height:240px;background:var(--mountains) right bottom/auto 100% no-repeat;opacity:.22;pointer-events:none}
.sidebar>*{position:relative}
.sidebar .brand{color:#f4f0de;margin-bottom:30px;padding-left:6px}
.sidebar .logo{background:#ffffff08}
.sidebar .brand-caption{color:#b6c6ab;opacity:1}
.new-thread{background:#d9e6ce0c;border:1px solid #b1c4a83d;border-radius:7px;color:#e0e8d7;padding:12px;margin-bottom:21px}
.new-thread:hover{background:#d9e6ce1b;border-color:#cdbf8b66}
.sidebar kbd{color:#a8bba6}
.sidebar nav{gap:5px}
.sidebar nav button{color:#b8cbbd;padding:11px 13px}
.sidebar nav button:hover{background:#c8d6bd0c;color:#f1efdf}
.sidebar nav button.active{color:#f4efd8;background:linear-gradient(90deg,#9bb6982e,#9bb69813);box-shadow:inset 2px 0 #c8b582;font-weight:500}
.sidebar .nav-icon{color:#a9c2af}
.sidebar nav button.active .nav-icon{color:#d2c298}
.sidebar-section{color:#b0c1b0;font-size:10px;letter-spacing:.15em}
.sidebar .thread-search{color:#dce5d4}
.sidebar .thread-search::placeholder{color:#94aa97}
.sidebar .thread-search:focus{box-shadow:0 0 0 1px #bccbab44}
.thread-row{color:#bdcbb8;padding-top:11px;padding-bottom:11px}
.thread-row:hover,.thread-row.active{background:#c5d5b917;color:#f1f0df}
.thread-dot{background:#849c80}.thread-row.running .thread-dot{background:#c9bd7f}
.empty-threads{color:#a4b69e}
.sidebar-footer{border-color:#a8b59a26}.sidebar .profile:hover{background:#c5d5b912}
.avatar{background:#d0d8b720;color:#d9dabb;border:1px solid #b1bf9d24}
.profile small,.profile-arrow,.connection{color:#adbea6}
.connection button{color:#d0c79d}.connection button:hover{background:#ffffff0d}
.dot.online{background:#a8c79f;box-shadow:0 0 0 3px #a8c79f0b}
.main{background:radial-gradient(ellipse at 90% 8%,#e3eadb60,transparent 50%),var(--bg)}
.topbar{height:65px;background:#fffefbc9;border-color:#dde3d6}
.breadcrumbs{color:#87947e}.breadcrumbs>span:first-child{font-family:var(--serif);font-size:13px;letter-spacing:.08em;white-space:nowrap}.breadcrumbs strong{color:#506452}
.provider-select{border-color:#d9e0d3;background:#fffefba8;font-size:12px;color:#375447;border-radius:6px}
.status-pill{background:#eef2e8;color:#72846b;border-color:#dfe5d7;border-radius:5px}
.thread-toolbar{background:#f9faf5ad}.thread-toolbar button:hover{color:var(--accent);background:#e7eee0}
.conversation:has(.welcome){background:var(--mountains) right top/760px 456px no-repeat}
.welcome{position:relative;max-width:700px;margin:clamp(20px,7vh,78px) auto 28px}
.welcome-symbol{width:61px;height:66px;padding:9px;margin-bottom:27px;background:linear-gradient(145deg,#214c43,#52735a);color:#f9f7e9;border:1px solid #b4b38a80;border-radius:17px 4px 17px 4px;box-shadow:0 8px 22px #315a3f12}
.welcome .eyebrow{font-size:10px;color:#8c8f70;letter-spacing:.24em}
.welcome h1{font-family:var(--serif);font-size:34px;font-weight:500;letter-spacing:.06em;color:#26483b;margin:16px 0 14px}
.welcome>p{color:#74836b;line-height:1.9}.wind-note{position:absolute;right:2px;top:19px;writing-mode:vertical-rl;font:11px var(--serif);letter-spacing:.28em;color:#83917a;border-right:1px solid #c7cdb56b;padding-right:12px}
.suggestions{margin-top:35px;gap:13px}
.suggestion{position:relative;background:#fffefbc9;border-color:#dce3d4;border-radius:10px 3px 10px 3px;padding:20px 17px;box-shadow:0 3px 12px #25482d03}
.suggestion:hover{border-color:#94ac8b;background:#fffefb;box-shadow:0 7px 20px #25482d08}
.suggestion .symbol{color:#779170}.suggestion strong{color:#38533e}.suggestion small{color:#7d8a73}.welcome-bottom{color:#849378;font-size:10px;margin-top:24px}
.composer{border-color:#cdd8c3;background:#fffefbeb;border-radius:13px 4px 13px 4px;box-shadow:0 6px 22px #284b3310}
.composer:focus-within{border-color:#7a9b7c;box-shadow:0 7px 24px #284b3316}.composer textarea::placeholder{color:#89957f}
.composer-tools select{color:#6a8063}.send{background:#345d46;border-radius:8px 3px 8px 3px;box-shadow:0 2px 7px #25482d14}.send:hover{background:#234a35}
.composer-footer{color:#839078}.composer-footer select{color:#718265}
.message.user{background:linear-gradient(110deg,#e9efe2,#edf2e7);border:1px solid #dde6d3;border-radius:12px 3px 12px 12px}
.message-head{color:#718267}.agent-mark{display:inline-block;width:21px;height:23px;color:#547655;flex-shrink:0}
.message code{background:#e6ede0;color:#35563c}.message pre{background:#eef2e8;border-color:#dfe5d6;color:#35503b}
.message pre code{background:transparent}.tool-item{background:#fffefbcc;border-color:#dce4d5;border-radius:7px 3px 7px 3px}
.tool-item summary{color:#73836a}.tool-status{color:#7d8c6a}
.page-heading h2,.empty-state h3{font-family:var(--serif);letter-spacing:.07em;color:#31513d}
.card,.settings-section{background:#fffefbdd;border-color:#dce3d4;border-radius:11px 3px 11px 3px}
.card .card-icon{color:#8c9c73}.card-actions button:hover{background:#edf2e7}
.primary{background:#315d46;border-color:#315d46}.primary:hover{background:#224b35}.secondary{background:#fffefb;border-color:#dce3d4}
.empty-state{background:#f6f8f0a8;border-color:#cfd9c4}.empty-state .symbol{color:#8b9f75}
.inspector{background:#fffefb;border-color:#d7e0d0}.inspector-tabs{background:#f2f5ed}.file-row{color:#607752}.file-row:hover{background:#edf2e4}
.terminal-output{background:#203b31;color:#d1dcc1;border:1px solid #34513b}
.plan{background:#edf2e3;border-color:#d8e2c8}.attachments .attachment{background:#e7edda;color:#6b7f54}
.notice,.approval{background:#f8f3e6;border-color:#e2d8bc}.toast{background:#244637;color:#f4f0dc;border:1px solid #bdb28555;border-radius:9px 3px 9px 3px}
.dialog-header h2{font-family:var(--serif);letter-spacing:.06em}dialog{border-radius:13px 4px 13px 4px}dialog::backdrop{background:#1b362c66}
button:focus-visible{outline-color:#91ac7c}
@media(max-width:1100px){.sidebar .brand-name{font-size:20px}.sidebar .brand{gap:8px}.sidebar .logo{width:33px;height:37px}.suggestion{padding:17px 12px}.welcome h1{font-size:30px}}
@media(max-width:820px){.login-mobile-brand{display:block;margin-bottom:50px}.login-mobile-brand .brand-caption{color:#688267}.login-screen{background:var(--mountains) center bottom/auto 70% no-repeat,radial-gradient(ellipse at 20% 0,#e2eadb,transparent 60%),#faf9f3}.login-form-wrap form{padding:15px 0}.welcome h1{font-size:27px}.wind-note{right:0;top:12px}.suggestions{gap:10px}.suggestion{padding:16px}.welcome-symbol{margin-bottom:24px}}
@media(max-width:600px){.sidebar{position:absolute}.sidebar .brand-name{font-size:22px}.sidebar .logo{width:39px;height:43px}.topbar{height:58px}.conversation:has(.welcome){background-size:590px 354px;background-position:38% 0}.welcome{margin:22px auto}.welcome h1{font-size:26px;letter-spacing:.03em;max-width:320px}.welcome>p{max-width:290px;font-size:12px}.welcome-symbol{width:50px;height:55px;padding:7px;margin-bottom:22px}.welcome .eyebrow{font-size:9px}.wind-note{font-size:10px;right:3px;top:9px;padding-right:8px}.suggestions{margin-top:24px}.suggestion{padding:15px 13px}.suggestion .symbol{font-size:20px}.provider-select{font-size:11px;padding:6px 7px}.login-mobile-brand{margin-bottom:42px}.login-form-wrap .brand-name{font-size:24px}}
@media(max-width:420px){.breadcrumbs strong,.breadcrumbs>span:nth-child(2){display:none}.top-actions{gap:6px}.welcome h1{font-size:25px}.login-form-wrap{padding:28px}}

/* Fade the landscape into paper instead of ending at a rectangular edge. */
.conversation:has(.welcome){position:relative;isolation:isolate;background:none}
.conversation:has(.welcome)::before{content:"";position:absolute;z-index:-1;pointer-events:none;right:0;top:0;width:min(100%,800px);height:480px;background:var(--mountains) right top/800px 480px no-repeat;mask-image:linear-gradient(to right,transparent,#000 28%),linear-gradient(to bottom,#000 38%,transparent 96%);mask-composite:intersect;opacity:.72}
.suggestion .symbol svg{display:block}
@media(max-width:600px){.conversation:has(.welcome)::before{width:100%;height:360px;background-size:600px 360px;background-position:40% 0;opacity:.58}}

.file-entry{display:flex;align-items:center;gap:8px}.file-entry .file-row{flex:1;min-width:0;overflow-wrap:anywhere}.file-download{flex-shrink:0;font-size:11px;padding:6px 8px;border:1px solid var(--line);border-radius:5px;color:var(--accent)}.file-download:hover{background:var(--accent-soft);text-decoration:none}.download-link::after{content:" ↧";font-size:.9em}

.ai-access-card{padding:16px;margin:14px 0;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.ai-access-heading,.ai-access-actions{display:flex;align-items:center;gap:10px}.ai-access-heading{justify-content:space-between}.ai-access-card p{margin:10px 0}.ai-access-actions{flex-wrap:wrap;margin-top:12px}.ai-access-actions button{font-size:12px}#dialog-body .ai-replace{display:flex;align-items:center;gap:8px;font-size:11px}#dialog-body .ai-replace input{width:auto;display:inline-block;margin:0;flex-shrink:0}

/* Reply Markdown: scoped so tables and headings elsewhere keep their layout. */
.markdown-body{min-width:0;line-height:1.85}
.markdown-body>:first-child{margin-top:0}.markdown-body>:last-child{margin-bottom:0}
.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{line-height:1.45;margin:24px 0 10px;font-weight:650;letter-spacing:0;color:var(--text)}
.markdown-body h1{font-size:25px}.markdown-body h2{font-size:21px;padding-bottom:7px;border-bottom:1px solid var(--line)}.markdown-body h3{font-size:18px}.markdown-body h4{font-size:15px}.markdown-body h5,.markdown-body h6{font-size:13px}
.markdown-body p{margin:0 0 14px}.markdown-body ul,.markdown-body ol{margin:10px 0 16px;padding-left:26px}.markdown-body li{margin:5px 0;padding-left:3px}.markdown-body li>ul,.markdown-body li>ol{margin:5px 0}.markdown-body li>p{margin:6px 0}
.markdown-body blockquote{margin:16px 0;padding:10px 16px;border-left:3px solid #8aa58e;background:var(--accent-soft);color:#526c5b;border-radius:0 6px 6px 0}.markdown-body blockquote>:last-child{margin-bottom:0}
.markdown-body hr{border:0;border-top:1px solid var(--line);margin:24px 0}
.markdown-table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:8px;margin:16px 0}
.markdown-body table{width:100%;font-size:13px;background:var(--surface)}.markdown-body th,.markdown-body td{white-space:normal;min-width:90px;padding:10px 14px;border:1px solid var(--line);line-height:1.7;vertical-align:top}.markdown-body th{font-size:12px;font-weight:650;background:var(--accent-soft);color:var(--text)}.markdown-body tr:nth-child(even) td{background:#f5f7f1}.markdown-body .align-left{text-align:left}.markdown-body .align-center{text-align:center}.markdown-body .align-right{text-align:right}
.markdown-body pre{white-space:pre;overflow:auto;overflow-wrap:normal;max-width:100%;tab-size:4;font-size:12px;margin:14px 0;padding:14px 16px}.markdown-body pre code{white-space:inherit;word-break:normal;font-size:inherit}
.markdown-code{margin:16px 0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#eef2e8}.markdown-code-label{padding:7px 14px;font-size:10px;line-height:1.5;color:var(--muted);background:#e5ecdf;border-bottom:1px solid var(--line);font-family:ui-monospace,monospace}.markdown-code pre{border:0;border-radius:0;margin:0}
.markdown-body .task-list-item{list-style:none}.markdown-body .task-checkbox{margin:0 6px 0 -22px;vertical-align:middle;accent-color:var(--accent);width:14px;height:14px}
.markdown-body .image-preview{display:block}.markdown-body .image-caption{display:block;font-size:12px;line-height:1.8;margin-top:8px;overflow-wrap:anywhere}.markdown-body .image-caption a{margin-left:12px}.markdown-linked-image{display:block;max-width:100%;max-height:680px;object-fit:contain;border-radius:8px}
@media(max-width:600px){.markdown-body h1{font-size:23px}.markdown-body h2{font-size:19px}.markdown-body h3{font-size:16px}.markdown-body th,.markdown-body td{padding:8px 10px}}
/* Account usage: paper cards and scrollable, tabular counters. */
.usage-page{max-width:1200px;margin:auto;min-width:0}.usage-filters{display:flex;flex-wrap:wrap;gap:16px}.usage-filters label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:var(--muted)}.usage-filters select{min-width:140px;max-width:100%;font-size:13px}.usage-status,.usage-meta{font-size:11px;line-height:1.8;color:var(--muted);margin:16px 0;overflow-wrap:anywhere}.usage-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.usage-card{padding:20px 16px;background:#fffefb;border:1px solid #dce3d4;border-radius:11px 3px 11px 3px;min-width:0}.usage-card span,.usage-card small{display:block;color:var(--muted);font-size:11px}.usage-card strong{display:block;font:600 clamp(18px,2vw,27px)/1.6 var(--serif);font-variant-numeric:tabular-nums;color:#31513d;margin:8px 0;overflow-wrap:anywhere}.usage-card:first-child{background:#eaf0e4;border-color:#cddcc6}.usage-section{margin:28px 0}.usage-section h3{font-family:var(--serif);font-size:17px;color:#31513d}.usage-section h3 small{display:block;font:11px/1.8 sans-serif;color:var(--muted);margin-top:5px}.usage-table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:#fffefb}.usage-table-wrap table{width:100%;font-size:12px;font-variant-numeric:tabular-nums}.usage-table-wrap th,.usage-table-wrap td{padding:12px 14px;white-space:nowrap;text-align:right}.usage-table-wrap th:first-child,.usage-table-wrap td:first-child{text-align:left}.usage-table-wrap th{background:#eff3e9}.usage-table-wrap tbody tr:last-child td{border-bottom:0}.usage-explanation{font-size:11px;line-height:1.9;color:var(--muted);border-top:1px solid var(--line);padding-top:20px}.usage-explanation p{margin:8px 0}@media(max-width:1000px){.usage-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.usage-card{padding:14px 12px}.usage-card strong{font-size:21px}.usage-filters{gap:10px}.usage-filters label{flex:1;min-width:120px}.usage-filters select{min-width:0}.usage-section{margin:24px 0}}
/* File drop target and upload progress stay within the conversation layout. */
.chat-view{position:relative}.file-drop-overlay{position:absolute;inset:12px;z-index:30;pointer-events:none;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;border:2px dashed #789b75;border-radius:12px;background:#f0f5eaf2;color:#31513d;text-align:center;padding:18px}.file-drop-overlay strong{font:600 25px var(--serif)}.file-drop-overlay span{font-size:13px}.upload-status{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:9px 0;color:var(--muted);font-size:11px}.upload-status span{flex:1;min-width:140px;overflow-wrap:anywhere}.upload-status progress{width:100px;height:8px;accent-color:var(--accent)}.upload-status button{padding:4px 8px;border:1px solid var(--line);border-radius:5px;font-size:11px;flex-shrink:0}.attachment{max-width:100%;overflow-wrap:anywhere}.upload-hint{font-size:10px}@media(max-width:600px){.upload-hint{display:none}.upload-status progress{width:65px}.file-drop-overlay{inset:6px}.file-drop-overlay strong{font-size:22px}}
/* Image-view tool events expose a compact preview without opening details. */
.image-view{padding:12px 14px}.image-view-heading{font-size:12px;font-weight:600;color:var(--accent)}.image-view .image-preview{margin:10px 0 6px}.image-view .image-preview>a{display:block;width:fit-content;max-width:100%}.image-view .image-preview img{max-width:min(240px,100%);max-height:180px;object-fit:contain;border:1px solid var(--line);border-radius:7px}.image-view .image-preview figcaption{font-size:11px}.image-view-details{margin-top:8px;font-size:11px}.image-view-details summary{cursor:pointer}.image-view-details code{display:block;margin-top:8px;overflow-wrap:anywhere;font-size:10px}.image-view-unavailable{font-size:12px;color:var(--muted);margin:10px 0}

/* Authenticated images stay in the current browser context, including WeChat. */
#image-viewer{width:min(1200px,calc(100vw - 32px));height:min(900px,calc(100dvh - 32px));max-width:none;max-height:none;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text)}#image-viewer[open]{display:flex;flex-direction:column}#image-viewer::backdrop{background:#102e29b8;backdrop-filter:blur(3px)}.image-viewer-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid var(--line)}.image-viewer-header h2{font-size:15px;letter-spacing:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-viewer-header button{flex-shrink:0}.image-viewer-tools{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line);font-size:12px}.image-viewer-tools>span{flex:1;min-width:0;overflow-wrap:anywhere;color:var(--muted)}.image-viewer-tools .secondary{padding:7px 10px;white-space:nowrap}#image-viewer-canvas{flex:1;min-height:0;overflow:auto;display:flex;padding:16px;background:var(--bg);overscroll-behavior:contain}#image-viewer-image{display:block;flex:none;max-width:100%;max-height:100%;object-fit:contain;margin:auto}#image-viewer-canvas.actual-size{display:block}#image-viewer-canvas.actual-size img{max-width:none;max-height:none}a[data-image-preview]{cursor:zoom-in}
@media(max-width:600px){#image-viewer{width:calc(100vw - 16px);height:calc(100dvh - 16px)}.image-viewer-header,.image-viewer-tools{padding:10px;gap:8px}#image-viewer-canvas{padding:8px}.image-viewer-tools .secondary{padding:7px}}

.upload-errors{max-height:120px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;flex-shrink:0;margin:0 0 8px;padding:10px 12px;border:1px solid #dec1b9;border-radius:7px;background:#fff5f0;color:var(--danger);font-size:12px;line-height:1.6}

/* Streaming and history prepend keep their scroll position without animations. */
.conversation{scroll-behavior:auto}
/* Skip offscreen layout/paint while preserving browser find, selection and
   accessibility. Remember measured heights as messages leave the viewport. */
.conversation-item{content-visibility:auto;contain-intrinsic-size:auto 160px}
/* Keep the recent tail measured so incoming text and initial bottom positioning
   do not depend on estimated heights. Older history still skips offscreen work. */
.conversation-item:nth-last-child(-n+20){content-visibility:visible;contain-intrinsic-size:none}
