:root{--bg-page: #f7f7f8;--bg-card: #ffffff;--bg-soft: #f7f7f8;--bg-accent: #ecf7f1;--text: #202123;--text-muted: #8e8ea0;--border: #ececef;--border-strong: #c7c8cf;--primary: #10a37f;--primary-soft: #b6e0ce;--danger: #b42318;--danger-soft: #f5c0c0;--danger-bg: #fdecec;--warn-bg: #fffaeb;--warn-border: #f5e7b6;--code-bg: #f7f7f8}body.theme-dark{--bg-page: #0e0f10;--bg-card: #1c1d20;--bg-soft: #25272b;--bg-accent: #1b2e26;--text: #ececf1;--text-muted: #8e8ea0;--border: #2e3034;--border-strong: #4a4d54;--primary: #19c37d;--primary-soft: #1f4f3c;--danger: #ff7a6b;--danger-soft: #5a2424;--danger-bg: #2a1414;--warn-bg: #2a2110;--warn-border: #5a4a16;--code-bg: #0c0c0e;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:var(--text);background:var(--bg-page)}button{font-family:inherit;cursor:pointer}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.layout{display:grid;grid-template-columns:260px 1fr 280px;height:100vh}.sidebar{background:#fff;border-right:1px solid #ececef;display:flex;flex-direction:column;overflow:hidden}.sidebar--history{border-right:0;border-left:1px solid #ececef}.sidebar__header{padding:14px 16px 10px;font-weight:600;border-bottom:1px solid #ececef;background:#f7f7f8}.sidebar__header--row{display:flex;align-items:center;justify-content:space-between}.sidebar__title{font-size:14px;font-weight:600;color:#202123;margin:0}.sidebar__sub{font-size:11px;color:#8e8ea0;margin-top:2px}.sidebar__book-btn{margin-top:8px;width:100%;padding:7px 10px;background:var(--bg-soft, #f7f7f8);border:1px dashed var(--border, #ececef);border-radius:6px;font-size:12px;color:var(--text, #202123);cursor:pointer;text-align:left}.sidebar__book-btn:hover{background:var(--bg-accent, #ecf7f1);border-color:var(--primary, #10a37f);border-style:solid}.sidebar__footer{border-top:1px solid #ececef;padding:10px;display:flex;flex-direction:column;gap:6px}.sidebar__userline{font-size:11px;color:#8e8ea0;padding:0 4px}.sidebar__userline b{color:#202123}.sidebar__footer-btn{background:#fff;color:#4b4b54;border:1px solid #ececef;border-radius:6px;padding:6px 10px;font-size:12px;cursor:pointer;text-align:left;width:100%;transition:background .12s ease,color .12s ease}.sidebar__footer-btn:hover{background:#f7f7f8;color:#202123}.sidebar__footer-btn--logout{color:#c92a2a}.sidebar__footer-btn--logout:hover{background:#fdecec;color:#a32020}.sidebar__footer-row{display:flex;gap:6px;align-items:center}.sidebar__footer-row .sidebar__footer-btn--logout{flex:1;width:auto}.quota-gauge{background:#fff;border:1px solid #ececef;border-radius:6px;padding:6px 8px;cursor:pointer;text-align:left;font-family:inherit;transition:border-color .12s ease}.quota-gauge:hover{border-color:#10a37f55}.quota-gauge__numbers{display:flex;align-items:baseline;gap:2px;font-size:11px;color:#4b4b54}.quota-gauge__used{color:#202123;font-weight:600}.quota-gauge__sep,.quota-gauge__total{color:#8e8ea0}.quota-gauge__pct{margin-left:auto;color:#8e8ea0;font-size:10px}.quota-gauge__bar{margin-top:4px;height:4px;background:#ececef;border-radius:2px;overflow:hidden}.quota-gauge__fill{height:100%;background:#10a37f;transition:width .3s ease}.quota-gauge__fill--high{background:#c92a2a}.side-fab{display:flex;gap:4px}.fab-btn{width:28px;height:28px;border-radius:6px;background:#fff;border:1px solid #ececef;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .12s ease}.fab-btn:hover{background:#f7f7f8}.agent-list{padding:8px;overflow-y:auto}.agent-card{display:flex;gap:10px;align-items:flex-start;width:100%;padding:8px 10px;margin-bottom:4px;background:transparent;border:1px solid transparent;border-radius:8px;text-align:left}.agent-card:hover{background:#f7f7f8}.agent-card--active{background:#ecf7f1;border-color:#b6e0ce}.agent-card__emoji{font-size:20px}.agent-card__body{display:flex;flex-direction:column}.agent-card__name{font-size:13px;font-weight:600}.agent-card__desc{font-size:11px;color:#8e8ea0}.agent-card--locked,.agent-card-lg--locked{opacity:.45;cursor:not-allowed;filter:grayscale(.85)}.agent-card--locked:hover,.agent-card-lg--locked:hover{background:inherit;border-color:inherit}.agent-list__group-title{font-size:11px;font-weight:600;color:#6e6e80;padding:8px 10px 4px;letter-spacing:.5px}.agent-card--special{background:#faf7ff;border-color:#e6dff5}.agent-card--special:hover{background:#f3ecff}.agent-card--special.agent-card--active{background:#ede4ff;border-color:#b8a4e8}body.theme-dark .agent-card--special{background:#a082ff14;border-color:#a082ff2e}body.theme-dark .agent-card--special.agent-card--active{background:#a082ff38;border-color:#a082ff6b}body.theme-dark .agent-list__group-title{color:#b4b4c4}.welcome-section-title{font-size:13px;font-weight:600;color:#6e6e80;margin:18px 0 8px;letter-spacing:.3px}body.theme-dark .welcome-section-title{color:#b4b4c4}.agent-card-lg--special{background:#faf7ff;border-color:#e6dff5}.agent-card-lg--special:hover{background:#f3ecff;border-color:#d8c9f0}.agent-card-lg--special.agent-card-lg--active{background:#ede4ff;border-color:#b8a4e8}body.theme-dark .agent-card-lg--special{background:#a082ff14;border-color:#a082ff2e}body.theme-dark .agent-card-lg--special.agent-card-lg--active{background:#a082ff38;border-color:#a082ff6b}.conv-list{padding:8px;overflow-y:auto;flex:1}.conv-list__empty{color:#8e8ea0;font-size:12px;padding:10px}.conv-bucket{margin-bottom:12px}.conv-bucket__label{font-size:11px;color:#8e8ea0;padding:4px 8px}.conv-card{padding:8px 10px;margin-bottom:4px;border-radius:6px;background:transparent;border:1px solid transparent}.conv-card:hover{background:#f7f7f8}.conv-card--active{background:#ecf7f1;border-color:#b6e0ce}.conv-card__title{font-size:13px}.conv-card__meta{display:flex;justify-content:space-between;align-items:center;margin-top:4px}.conv-card__emojis{font-size:11px;color:#8e8ea0}.main{display:flex;flex-direction:column;overflow:hidden;background:#fff}.topbar{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid #ececef;background:#fff}.topbar__title{font-weight:600;font-size:15px}.topbar__desc{color:#8e8ea0;font-size:12px;margin-left:8px}.topbar__right{display:flex;gap:8px;align-items:center}.topbar__balance{background:#f7f7f8;border:1px solid #ececef;border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer;color:#202123}.topbar__balance:hover{background:#ececef}.topbar__balance-sub{color:#8e8ea0;font-size:11px}.version-chip{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;padding:3px 8px;border-radius:4px;background:#f0f0f2;color:#6e6e7a;border:1px solid #ececef;cursor:help;white-space:pre}body.theme-dark .version-chip{background:var(--bg-soft);color:var(--text-muted);border-color:var(--border)}.api-base{font-size:11px;color:#8e8ea0;background:#f7f7f8;padding:2px 6px;border-radius:4px}.banner{padding:8px 16px;font-size:13px}.banner--err{background:#fdecec;color:#b42318;border-bottom:1px solid #f5c0c0}.thread{flex:1;overflow-y:auto;padding:16px 12%;display:flex;flex-direction:column;gap:16px}.chat-meta{display:flex;align-items:center;gap:6px;padding:8px 12%;border-bottom:1px solid #f0f0f2;background:#fafafa;font-size:13px}.chat-meta__label{color:#8e8ea0}.chat-meta__emoji{font-size:16px}.chat-meta__name{font-weight:600;color:#202123}.chat-meta__desc{color:#8e8ea0;margin-left:8px;font-size:12px}.empty-state{margin:auto;text-align:center;color:#8e8ea0;padding:24px 16px}.empty-state h2{color:#202123}.welcome-title{font-size:28px;color:#202123;margin:16px 0 4px;font-weight:600}.welcome-sub{color:#8e8ea0;font-size:14px;margin-bottom:24px}.agent-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;max-width:880px;margin:0 auto 24px}.agent-card-lg{background:#fff;border:1px solid #ececef;border-radius:10px;padding:16px 12px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;transition:background .12s ease,border-color .12s ease,transform .08s ease;min-height:130px}.agent-card-lg:hover{background:#f7f7f8;border-color:#d9d9dc}.agent-card-lg--active{background:#ecf7f1;border-color:#10a37f;box-shadow:0 0 0 2px #10a37f1a}.agent-card-lg__emoji{font-size:32px;line-height:1}.agent-card-lg__name{font-size:13px;font-weight:600;color:#202123}.agent-card-lg__desc{font-size:11px;color:#8e8ea0;line-height:1.4}.welcome-examples{margin-top:24px}.welcome-examples__title{font-size:13px;color:#4b4b54;margin-bottom:8px}.examples{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:12px}.chip{padding:4px 10px;border-radius:999px;font-size:12px;background:#f7f7f8;border:1px solid #ececef}.chip--select{padding:4px 8px}.chip--default{color:#8e8ea0;font-style:italic}.suggestion-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 0 8px}.suggestion-chips .chip{cursor:pointer;max-width:100%}.chip--suggest{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}.chip--suggest:hover{background:#eef1ff;border-color:#c9d2ff}.chip--other{opacity:.6}.bubble{border-radius:10px;padding:10px 14px;background:#f7f7f8;border:1px solid #ececef}.bubble--user{background:#ecf7f1;border-color:#b6e0ce}.bubble__hdr{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#8e8ea0;margin-bottom:6px}.bubble__author{font-weight:600;color:#202123}.bubble__body{font-size:14px;line-height:1.55}.bubble__body--err{color:#b42318}.bubble__body pre{background:#f7f7f8;padding:10px;border-radius:6px;overflow-x:auto;border:1px solid #ececef}.bubble__user-text{white-space:pre-wrap;margin:0;font-family:inherit;background:transparent;border:0;padding:0}.status-strip{margin:0 12%;border:1px solid #ececef;border-radius:8px;padding:8px 12px;font-size:12px;background:#f7f7f8}.status-strip--warn{border-color:#f5e7b6;background:#fffaeb}.status-strip--orange{border-color:#f5cfb6;background:#fff2e7}.status-strip--red{border-color:#f5c0c0;background:#fdecec;color:#b42318}.status-strip__row{display:flex;justify-content:space-between;align-items:center;gap:8px}.status-strip__current{font-weight:500}.status-strip__time{color:#8e8ea0;font-variant-numeric:tabular-nums}.status-strip__hist{margin-top:6px;color:#8e8ea0}.status-strip__hist ul{margin:4px 0 0 12px;padding:0}.composer{border-top:1px solid #ececef;padding:14px 12% 18px;background:#fff}.input-wrapper{display:flex;flex-direction:column;background:#f7f7f8;border:1px solid #ececef;border-radius:14px;padding:10px 12px 8px;transition:border-color .12s ease,box-shadow .12s ease}.input-wrapper:focus-within{border-color:#10a37f;box-shadow:0 0 0 3px #10a37f1a;background:#fff}.input-textarea{width:100%;min-height:24px;max-height:240px;border:0;outline:0;resize:none;background:transparent;font:inherit;font-size:15px;line-height:1.5;color:#202123;padding:4px 0}.input-textarea::placeholder{color:#8e8ea0}.input-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;padding-top:6px;border-top:1px solid #f0f0f2}.input-toolbar__left{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex:1;min-width:0}.chip-wrap{position:relative;display:inline-block}.input-chip{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 10px;background:#fff;border:1px solid #e1e1e3;border-radius:999px;color:#4b4b54;font-size:13px;cursor:pointer;transition:background .12s ease,border-color .12s ease;font-family:inherit}.input-chip:hover:not(:disabled){background:#ecf7f1;border-color:#10a37f55;color:#202123}.input-chip:disabled{opacity:.55;cursor:not-allowed}.input-chip--select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:22px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'><path d='M2 4l3 3 3-3' stroke='%238e8ea0' fill='none' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 8px center;background-size:9px 9px}.input-chip--readonly{background:transparent;border-color:transparent;color:#8e8ea0;cursor:default;font-style:italic}.input-chip--readonly:hover{background:transparent;border-color:transparent;color:#8e8ea0}.input-chip--mode-ask{color:#4b4b54}.input-chip--mode-plan{color:#0a7f3f;border-color:#0a7f3f55}.input-chip--mode-auto{color:#c45a00;border-color:#c45a0055;background:#fff7ed}.send-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#10a37f;color:#fff;border:0;cursor:pointer;transition:background .12s ease,transform .08s ease;flex-shrink:0}.send-btn:hover:not(:disabled){background:#0d8b6c}.send-btn:active:not(:disabled){transform:scale(.94)}.send-btn:disabled{background:#ececef;color:#c2c2cc;cursor:not-allowed}.input-hint{margin-top:8px;font-size:12px;color:#8e8ea0;text-align:center}.attach-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:1px solid transparent;border-radius:6px;color:#4b4b54;font-size:14px;cursor:pointer;transition:background .12s ease,border-color .12s ease}.attach-btn:hover:not(:disabled){background:#f0f0f2;border-color:#ececef}.attach-btn:disabled{opacity:.4;cursor:not-allowed}.input-wrapper--drag{border-color:#10a37f!important;background:#ecf7f1!important;box-shadow:0 0 0 4px #10a37f33!important}.input-wrapper--drag .input-textarea::placeholder{color:#10a37f;font-weight:500}.input-wrapper--drag:after{content:"📎 放下文件开始上传";position:absolute;pointer-events:none;font-size:14px;color:#10a37f;font-weight:600}.spawn-card{display:block;width:100%;text-align:left;padding:10px 12px;margin-bottom:2px;background:transparent;border:0;border-radius:0;cursor:pointer;border-bottom:1px solid #f0f0f2;font-family:inherit}.spawn-card:hover{background:#f7f7f8}.spawn-card--active{background:#ecf7f1;border-left:3px solid #10a37f;padding-left:9px}.spawn-card__row1{display:flex;align-items:center;gap:6px;margin-bottom:4px}.spawn-card__agent{font-size:12px;font-weight:600;color:#202123}.spawn-card__dur{font-size:11px;color:#8e8ea0;margin-left:auto}.spawn-card__label{font-size:13px;color:#4b4b54;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.spawn-card__id{font-size:10px}.spawn-detail{padding:12px}.spawn-detail__hdr{display:flex;align-items:center;gap:8px;padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid #ececef}.spawn-detail__section{margin:14px 0}.spawn-detail__title{font-size:12px;font-weight:600;color:#4b4b54;margin-bottom:4px}.spawn-detail__pre{background:#f7f7f8;padding:10px;border:1px solid #ececef;border-radius:6px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}.spawn-meta-tbl{width:100%;border-collapse:collapse;font-size:13px}.spawn-meta-tbl td{padding:4px 8px}.spawn-meta-tbl td:first-child{color:#8e8ea0;width:90px;font-weight:500}.fab-btn--admin{background:#fdf4e6;border-color:#c45a0055}.fab-btn--admin:hover{background:#fce8c8}.btn{background:#fff;color:#202123;border:1px solid #ececef;border-radius:6px;padding:6px 12px;font-size:13px}.btn:hover{background:#f7f7f8}.btn--primary{background:#10a37f;color:#fff;border-color:#10a37f}.btn--primary:hover{background:#0d8f6e}.btn--primary:disabled{background:#b6e0ce;border-color:#b6e0ce;cursor:not-allowed}.btn--ghost{background:transparent}.btn--small{padding:3px 8px;font-size:12px}.btn--tiny{padding:1px 6px;font-size:11px}.btn--danger{color:#b42318}.modal-backdrop{position:fixed;inset:0;background:#0000004d;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:#fff;border-radius:10px;padding:18px;max-width:720px;max-height:80vh;overflow:auto;border:1px solid #ececef}.modal pre{background:#f7f7f8;padding:12px;border-radius:6px;font-size:12px;border:1px solid #ececef;white-space:pre-wrap;word-break:break-word}@media (max-width: 1024px){.layout{grid-template-columns:0 1fr 0}.sidebar{display:none}.thread,.composer,.status-strip{padding-left:16px;padding-right:16px;margin-left:0;margin-right:0}}.splash{display:flex;align-items:center;justify-content:center;height:100vh;color:#8e8ea0}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ecf7f1,#f7f7f8);padding:16px}.auth-card{background:#fff;border:1px solid #ececef;border-radius:14px;padding:32px;width:100%;max-width:380px;box-shadow:0 4px 24px #0000000d}.auth-card__title{margin:0 0 4px;font-size:22px}.auth-card__sub{margin:0 0 20px;color:#8e8ea0;font-size:13px}.auth-tabs{display:flex;gap:4px;margin-bottom:18px;background:#f7f7f8;padding:4px;border-radius:8px}.auth-tab{flex:1;padding:8px;background:transparent;border:0;border-radius:6px;color:#8e8ea0;cursor:pointer}.auth-tab--active{background:#fff;color:#202123;box-shadow:0 1px 2px #0000000f}.auth-closed-banner{background:#fffaeb;border:1px solid #f5e7b6;color:#92750a;padding:8px 12px;border-radius:6px;font-size:12px;margin-bottom:14px;line-height:1.5}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form label{display:flex;flex-direction:column;gap:4px;font-size:13px}.auth-form label>span{color:#8e8ea0}.auth-form input{padding:10px 12px;font-size:14px;border:1px solid #ececef;border-radius:8px;background:#f7f7f8}.auth-form input:focus{outline:2px solid #10a37f33;border-color:#10a37f;background:#fff}.auth-form__inline{display:flex;gap:6px}.auth-form__inline input{flex:1}.auth-form__hint{color:#8e8ea0;font-size:11px;margin-top:4px}.auth-form__err{background:#fdecec;color:#b42318;border:1px solid #f5c0c0;padding:8px 10px;border-radius:6px;font-size:13px}.auth-form__submit{margin-top:6px;padding:10px}.auth-card__legal{margin-top:16px;font-size:11px;color:#8e8ea0;text-align:center}.userbar{display:flex;gap:8px;align-items:center;padding-left:12px;border-left:1px solid #ececef;margin-left:8px}.userbar__balance{background:#ecf7f1;color:#10a37f;border:1px solid #b6e0ce;border-radius:6px;padding:4px 10px;font-size:13px;font-weight:600}.userbar__balance:hover{background:#d8efe2}.userbar__name{font-size:13px}.userbar__plan{font-size:11px;color:#8e8ea0;background:#f7f7f8;padding:2px 6px;border-radius:4px;text-transform:uppercase}.balance-big{display:flex;align-items:baseline;justify-content:space-between;padding:12px 0}.balance-big strong{font-size:28px;color:#10a37f}.ledger-tbl{width:100%;border-collapse:collapse;font-size:12px;margin-top:10px}.ledger-tbl th,.ledger-tbl td{padding:6px 8px;border-bottom:1px solid #ececef;text-align:left}.ledger-tbl th{color:#8e8ea0;font-weight:500}.ledger-tbl .pos{color:#10a37f}.ledger-tbl .neg{color:#b42318}.ledger-tbl__ref{color:#8e8ea0;font-family:ui-monospace,monospace}.empty-row{text-align:center;color:#8e8ea0;padding:20px!important}.modal__footer{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.legal-page{min-height:100vh;background:#f7f7f8;padding:40px 16px;display:flex;flex-direction:column;align-items:center}.legal-page__back{align-self:flex-start;max-width:760px;width:100%;margin-bottom:20px}.legal-doc{max-width:760px;width:100%;background:#fff;border:1px solid #ececef;border-radius:12px;padding:40px;line-height:1.7}.legal-doc h1{margin-top:0}.legal-doc h2{margin-top:28px;font-size:17px}.legal-doc__meta{color:#8e8ea0;font-size:12px}.legal-doc__warn{background:#fff8e6;border:1px solid #f5e7b6;padding:10px 14px;border-radius:6px;font-size:13px;margin:16px 0}.legal-doc ul{padding-left:24px}.legal-doc code{background:#f7f7f8;padding:1px 5px;border-radius:3px;font-size:12px}.legal-tbl{width:100%;border-collapse:collapse;font-size:13px;margin:12px 0}.legal-tbl th,.legal-tbl td{padding:8px 10px;border:1px solid #ececef;text-align:left;vertical-align:top}.legal-tbl th{background:#f7f7f8}.danger-zone{margin-top:16px;padding:14px;border:1px solid #f5c0c0;background:#fdf3f3;border-radius:8px}.danger-zone h4{margin:0 0 6px;color:#b42318}.danger-zone p{font-size:12px;color:#8e8ea0;margin:0 0 10px}.danger-zone input{display:block;width:100%;padding:6px 10px;margin-bottom:8px;border:1px solid #ececef;border-radius:6px;font-size:13px}.toolblock{margin:8px 0;border:1px solid var(--border);border-radius:6px;background:var(--bg-soft);overflow:hidden}.toolblock details{padding:4px 0}.toolblock summary{cursor:pointer;padding:6px 12px;font-size:12px;color:var(--text-muted);user-select:none;list-style:none}.toolblock summary::-webkit-details-marker{display:none}.toolblock summary:before{content:"▸ ";display:inline-block;margin-right:4px;transition:transform .15s}.toolblock details[open] summary:before{transform:rotate(90deg)}.toolblock summary strong{color:var(--text);font-weight:600}.toolblock__code{margin:0;padding:10px 14px;font-size:11px;background:var(--code-bg);border-top:1px solid var(--border);white-space:pre-wrap;word-break:break-word;max-height:320px;overflow-y:auto}.toolblock__figures{display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px;border-top:1px solid var(--border)}.toolblock__img{max-width:100%;height:auto;border-radius:6px;border:1px solid var(--border)}.codeblock{position:relative;margin:8px 0}.codeblock pre{margin:0}.codeblock__copy{position:absolute;top:6px;right:6px;background:#ffffffd9;border:1px solid var(--border);color:var(--text-muted);font-size:11px;padding:3px 8px;border-radius:4px;cursor:pointer;opacity:0;transition:opacity .15s;z-index:1}.codeblock:hover .codeblock__copy,.codeblock__copy:focus{opacity:1}.codeblock__copy:hover{background:var(--bg-card);color:var(--text)}body.theme-dark .codeblock__copy{background:#1c1d20d9}.bubble__actions{display:flex;gap:6px;margin-top:6px}.btn-action{background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:3px 10px;font-size:11px;border-radius:999px;cursor:pointer}.btn-action:hover{background:var(--bg-soft);color:var(--text);border-color:var(--border-strong)}.agents-book__hdr{gap:12px;align-items:baseline}.agents-book__hdr-sub{flex:1;margin-left:12px;font-size:13px;color:var(--text-muted, #8e8ea0)}.agents-book__body{background:var(--bg, #fff)}.agents-book__sidebar{flex:0 0 280px;border-right:1px solid var(--border);overflow-y:auto;padding:10px 0;background:var(--bg-soft, #fafafa)}.agents-book__row{display:flex;align-items:center;gap:14px;width:100%;padding:12px 16px;background:transparent;border:0;border-left:4px solid transparent;text-align:left;cursor:pointer;color:var(--text);transition:background .12s,border-color .12s}.agents-book__row:hover{background:var(--bg-hover, #f0f0f0)}.agents-book__row--active{background:var(--bg-accent, #ecf7f1);border-left-color:var(--primary)}.agents-book__emoji{font-size:30px;line-height:1}.agents-book__name{display:flex;flex-direction:column;gap:2px;line-height:1.3}.agents-book__name strong{font-size:14px}.agents-book__name .muted{font-size:11.5px}.agents-book__detail{flex:1;overflow-y:auto;padding:28px 36px}.agents-book__pane{max-width:800px}.agents-book__hero{display:flex;align-items:center;gap:20px;padding-bottom:20px;margin-bottom:24px;border-bottom:1px solid var(--border)}.agents-book__hero-emoji{font-size:72px;line-height:1;flex:0 0 auto}.agents-book__hero-name{margin:0 0 6px;font-size:28px;font-weight:700;letter-spacing:-.01em}.agents-book__hero-desc{font-size:17px;color:var(--text-muted, #6e6e80);line-height:1.4}.agents-book__block{margin-bottom:26px}.agents-book__block-title{margin:0 0 12px;font-size:17px;font-weight:600;color:var(--text)}.agents-book__list{margin:0;padding:0;list-style:none}.agents-book__list li{position:relative;padding:8px 0 8px 22px;font-size:16px;line-height:1.55;color:var(--text);border-bottom:1px dashed var(--border)}.agents-book__list li:last-child{border-bottom:0}.agents-book__list li:before{position:absolute;left:0;top:8px;font-size:16px;line-height:1.55}.agents-book__block--helps .agents-book__list li:before{content:"·";font-weight:700;color:var(--primary, #2a9d6f);font-size:22px;line-height:1.2}.agents-book__block--delivers .agents-book__list li:before{content:"▸";color:#b06a00;font-size:14px;top:10px}.agents-book__bubbles{display:flex;flex-direction:column;gap:10px}.agents-book__bubble{align-self:flex-start;max-width:90%;padding:10px 14px;background:var(--bg-accent, #ecf7f1);border:1px solid var(--border);border-radius:14px 14px 14px 4px;font-size:15px;line-height:1.45;color:var(--text)}body.theme-dark .agents-book__body{background:var(--bg, #1a1a1a)}body.theme-dark .agents-book__sidebar{background:#161616}body.theme-dark .agents-book__row:hover{background:#222}body.theme-dark .agents-book__bubble{background:#1f3a2e}.bubble__edit{display:flex;flex-direction:column;gap:8px}.bubble__edit-textarea{width:100%;min-height:60px;padding:8px 10px;border:1px solid var(--primary-soft, #b6e0ce);border-radius:6px;background:var(--bg-card);color:var(--text);font-family:-apple-system,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.5;resize:vertical}.bubble__edit-textarea:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}.bubble__edit-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.bubble__cost{color:var(--primary);font-weight:500}.bubble__model{font-family:ui-monospace,monospace;font-size:11px}.conv-card__actions{display:flex;gap:4px;align-items:center}body.theme-dark{background:var(--bg-page);color:var(--text)}body.theme-dark .sidebar,body.theme-dark .main{background:var(--bg-card)}body.theme-dark .sidebar,body.theme-dark .topbar{border-color:var(--border)}body.theme-dark .sidebar__header,body.theme-dark .conv-bucket__label{background:var(--bg-soft);color:var(--text-muted);border-color:var(--border)}body.theme-dark .sidebar__title{color:var(--text)}body.theme-dark .sidebar__sub,body.theme-dark .sidebar__userline{color:var(--text-muted)}body.theme-dark .sidebar__userline b{color:var(--text)}body.theme-dark .sidebar__footer,body.theme-dark .sidebar__footer-btn,body.theme-dark .quota-gauge,body.theme-dark .fab-btn{background:var(--bg-soft);border-color:var(--border);color:var(--text)}body.theme-dark .sidebar__footer-btn:hover,body.theme-dark .fab-btn:hover,body.theme-dark .quota-gauge__bar{background:var(--bg-card)}body.theme-dark .chat-meta{background:var(--bg-soft);border-color:var(--border)}body.theme-dark .chat-meta__name{color:var(--text)}body.theme-dark .chat-meta__label,body.theme-dark .chat-meta__desc{color:var(--text-muted)}body.theme-dark .agent-card-lg{background:var(--bg-card);border-color:var(--border)}body.theme-dark .agent-card-lg:hover{background:var(--bg-soft)}body.theme-dark .agent-card-lg--active{background:var(--bg-accent);border-color:var(--primary)}body.theme-dark .agent-card-lg__name{color:var(--text)}body.theme-dark .agent-card-lg__desc{color:var(--text-muted)}body.theme-dark .agent-card--locked,body.theme-dark .agent-card-lg--locked{opacity:.4}body.theme-dark .welcome-title{color:var(--text)}body.theme-dark .topbar__balance{background:var(--bg-soft);border-color:var(--border);color:var(--text)}body.theme-dark .agent-card:hover,body.theme-dark .conv-card:hover{background:var(--bg-soft)}body.theme-dark .agent-card--active,body.theme-dark .conv-card--active{background:var(--bg-accent);border-color:var(--primary-soft)}body.theme-dark .topbar,body.theme-dark .composer{background:var(--bg-card);border-color:var(--border)}body.theme-dark .bubble{background:var(--bg-soft);border-color:var(--border);color:var(--text)}body.theme-dark .bubble--user{background:var(--bg-accent);border-color:var(--primary-soft)}body.theme-dark .bubble__body pre,body.theme-dark .bubble__body code,body.theme-dark .ledger-tbl,body.theme-dark .modal pre{background:var(--code-bg);color:var(--text)}body.theme-dark .ledger-tbl th{background:var(--bg-soft);color:var(--text-muted)}body.theme-dark .input-wrapper{background:var(--bg-soft);border-color:var(--border)}body.theme-dark .input-wrapper:focus-within{background:var(--bg-card);border-color:var(--primary)}body.theme-dark .input-textarea{color:var(--text)}body.theme-dark .input-toolbar{border-top-color:var(--border)}body.theme-dark .input-chip{background:var(--bg-card);color:var(--text);border-color:var(--border)}body.theme-dark .input-chip:hover:not(:disabled){background:var(--bg-accent)}body.theme-dark .input-chip--readonly,body.theme-dark .input-chip--readonly:hover{background:transparent;color:var(--text-muted)}body.theme-dark .input-chip--mode-auto{background:#3d2816;color:#f5a76c;border-color:#c45a0055}body.theme-dark .input-hint{color:var(--text-muted)}body.theme-dark .send-btn:disabled{background:var(--bg-soft);color:var(--text-muted)}body.theme-dark .btn{background:var(--bg-card);color:var(--text);border-color:var(--border)}body.theme-dark .btn:hover{background:var(--bg-soft)}body.theme-dark .btn--ghost{background:transparent}body.theme-dark .chip{background:var(--bg-soft);border-color:var(--border);color:var(--text)}body.theme-dark .modal{background:var(--bg-card);border-color:var(--border);color:var(--text)}body.theme-dark .auth-page{background:var(--bg-page)}body.theme-dark .auth-card{background:var(--bg-card);border-color:var(--border);color:var(--text)}body.theme-dark .auth-tabs{background:var(--bg-soft)}body.theme-dark .auth-tab--active{background:var(--bg-card);color:var(--text)}body.theme-dark .auth-form input{background:var(--bg-soft);border-color:var(--border);color:var(--text)}body.theme-dark .auth-form input:focus{background:var(--bg-card)}body.theme-dark .auth-closed-banner{background:var(--warn-bg);border-color:var(--warn-border);color:#d8b96f}body.theme-dark .banner--err{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-soft)}body.theme-dark .status-strip{background:var(--bg-soft);border-color:var(--border);color:var(--text)}body.theme-dark .status-strip--warn{background:var(--warn-bg);border-color:var(--warn-border);color:#d8b96f}body.theme-dark .legal-page{background:var(--bg-page)}body.theme-dark .legal-doc{background:var(--bg-card);border-color:var(--border);color:var(--text)}body.theme-dark .legal-doc__warn{background:var(--warn-bg);border-color:var(--warn-border);color:#d8b96f}body.theme-dark .legal-tbl th,body.theme-dark .legal-tbl td{border-color:var(--border)}body.theme-dark .legal-tbl th{background:var(--bg-soft)}body.theme-dark .danger-zone{background:var(--danger-bg);border-color:var(--danger-soft)}body.theme-dark .danger-zone h4{color:var(--danger)}body.theme-dark .danger-zone input{background:var(--bg-soft);border-color:var(--border);color:var(--text)}body.theme-dark .userbar{border-color:var(--border)}body.theme-dark .userbar__balance{background:var(--bg-accent);color:var(--primary);border-color:var(--primary-soft)}body.theme-dark .userbar__plan,body.theme-dark .api-base{background:var(--bg-soft);color:var(--text-muted)}body.theme-dark .hljs{background:var(--code-bg)!important;color:#d4d4d4!important}.admin-entry{background:var(--bg-accent)!important;color:var(--primary)!important;border-color:var(--primary-soft)!important;font-weight:600}.admin-modal{max-width:min(1100px,95vw);max-height:90vh;width:100%;display:flex;flex-direction:column;padding:0;background:var(--bg-card);border:1px solid var(--border);border-radius:12px}.admin-modal__hdr{display:flex;align-items:center;gap:16px;padding:12px 18px;border-bottom:1px solid var(--border);background:var(--bg-soft)}.admin-modal__hdr h2{margin:0;font-size:16px}.admin-tabs{display:flex;gap:4px;flex:1}.admin-tab{padding:6px 12px;background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer;color:var(--text-muted);font-size:13px}.admin-tab:hover{background:var(--bg-card);color:var(--text)}.admin-tab--active{background:var(--bg-accent);color:var(--primary);border-color:var(--primary-soft);font-weight:500}.admin-modal__body{padding:18px;overflow-y:auto;flex:1}.admin-empty{color:var(--text-muted);text-align:center;padding:40px}.admin-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.admin-actions-row{grid-column:1 / -1;display:flex;align-items:center;margin-top:8px}.stat-card{padding:16px 18px;background:var(--bg-soft);border:1px solid var(--border);border-radius:10px}.stat-card--accent{background:var(--bg-accent);border-color:var(--primary-soft)}.stat-card__title{color:var(--text-muted);font-size:13px}.stat-card__value{font-size:28px;font-weight:600;margin:6px 0;color:var(--text)}.stat-card--accent .stat-card__value{color:var(--primary)}.stat-card__sub{color:var(--text-muted);font-size:11px}.admin-toolbar{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.admin-toolbar input,.admin-toolbar select{padding:5px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg-card);color:var(--text);font-size:13px}.admin-toolbar__count{color:var(--text-muted);font-size:12px;margin-left:auto}.admin-pager{display:flex;align-items:center;gap:6px;justify-content:center;margin-top:12px;color:var(--text-muted);font-size:12px}.admin-tbl{width:100%;border-collapse:collapse;font-size:12px;background:var(--bg-card)}.admin-tbl th,.admin-tbl td{padding:6px 10px;border-bottom:1px solid var(--border);text-align:left}.admin-tbl th{color:var(--text-muted);font-weight:500;background:var(--bg-soft)}.admin-tbl tr:hover td{background:var(--bg-soft)}.admin-tbl .empty-row{text-align:center;color:var(--text-muted);padding:30px!important}.admin-tbl .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.admin-tbl .small{font-size:11px}.admin-tbl .muted{color:var(--text-muted)}.admin-tbl .pos{color:var(--primary)}.admin-tbl .neg{color:var(--danger)}.admin-row-actions{display:flex;gap:4px}.storage-traj-hint{margin:6px 0 8px;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.storage-traj-path{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-traj-actions{flex-wrap:nowrap;white-space:nowrap}.storage-scope-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.role-badge,.status-badge,.action-badge{display:inline-block;padding:1px 6px;border-radius:3px;font-size:11px;font-weight:500;line-height:1.4}.role-admin{background:var(--bg-accent);color:var(--primary)}.role-staff{background:#fff4dc;color:#92750a}.role-user{background:var(--bg-soft);color:var(--text-muted)}.status-active{background:var(--bg-accent);color:var(--primary)}.status-frozen{background:var(--warn-bg);color:#92750a}.status-deleted{background:var(--danger-bg);color:var(--danger)}.action-login{background:var(--bg-soft);color:var(--text-muted)}.action-register{background:var(--bg-accent);color:var(--primary)}.action-admin{background:#fff4dc;color:#92750a}.action-account{background:var(--danger-bg);color:var(--danger)}.action-sms,.action-logout{background:var(--bg-soft);color:var(--text-muted)}body.theme-dark .role-staff,body.theme-dark .status-frozen,body.theme-dark .action-admin{background:var(--warn-bg);color:#d8b96f}.modal label{display:flex;flex-direction:column;gap:4px;margin:10px 0;font-size:13px}.modal label>span{color:var(--text-muted)}.modal label input,.modal label textarea,.modal label select{width:100%;box-sizing:border-box;padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg-soft);color:var(--text);font-size:14px;font-family:inherit;line-height:1.4}.modal label select{min-height:40px;padding-right:36px;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath fill='%238e8ea0' d='M3.5 5.25 7 8.75l3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:14px}.modal label input:focus,.modal label textarea:focus,.modal label select:focus{background-color:var(--bg-card);outline:2px solid var(--primary-soft)}.modal label select:focus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath fill='%2310a37f' d='M3.5 5.25 7 8.75l3.5-3.5'/%3E%3C/svg%3E")}body.theme-dark .modal label select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath fill='%238e8ea0' d='M3.5 5.25 7 8.75l3.5-3.5'/%3E%3C/svg%3E")}body.theme-dark .modal label select:focus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath fill='%2319c37d' d='M3.5 5.25 7 8.75l3.5-3.5'/%3E%3C/svg%3E")}.muted{color:var(--text-muted)}.banner--ok{background:var(--bg-accent);color:var(--primary);border:1px solid var(--primary-soft);padding:8px 12px;border-radius:6px;font-size:13px;margin:10px 0}.banner--warn{background:var(--warn-bg);color:#92750a;border:1px solid var(--warn-border);padding:8px 12px;border-radius:6px;font-size:12px}body.theme-dark .banner--warn{color:#d8b96f}.md-dispatch-card{margin-top:10px;padding:10px 12px;border:1px solid #cfe6dc;border-left:3px solid #10a37f;border-radius:8px;background:#f1faf6;font-size:13px;color:#202123}.md-dispatch-card__hdr{margin-bottom:6px}.md-dispatch-card__warns{margin:6px 0;padding-left:18px;color:#92750a;font-size:12px}.md-dispatch-card__actions{display:flex;gap:8px;margin:8px 0 6px;flex-wrap:wrap}.md-dispatch-card__hint{margin-top:6px}body.theme-dark .md-dispatch-card{background:#14241e;border-color:#2c4a3e;color:#e0e0e8}.md-dispatch-card--err{background:#fdecec;border-color:#f5c0c0;border-left-color:#b42318;color:#7a1d12}body.theme-dark .md-dispatch-card--err{background:#2b1414;border-color:#5a2828;color:#f0a8a8}.empty-answer{padding:8px 12px;background:#fffaeb;border:1px solid #f5e7b6;border-left:3px solid #f5a623;border-radius:6px;color:#6b6b75;font-size:13px}.empty-answer em{color:#b7791f;font-style:normal;font-weight:600}.empty-answer__hint{margin-top:4px;font-size:12px;line-height:1.5}body.theme-dark .empty-answer{background:#2b2614;border-color:#5a4a18;color:#d0d0d8}.storage-usage{margin-bottom:14px}.storage-bar{height:8px;background:var(--bg-soft);border-radius:4px;overflow:hidden;border:1px solid var(--border)}.storage-bar__fill{height:100%;background:var(--primary);transition:width .3s}.upload-dropzone{border:2px dashed var(--border-strong);border-radius:10px;padding:28px;text-align:center;color:var(--text-muted);cursor:pointer;transition:all .15s;margin-bottom:16px}.upload-dropzone:hover,.upload-dropzone--drag{border-color:var(--primary);background:var(--bg-accent);color:var(--primary)}.upload-progress{text-align:left;max-width:400px;margin:0 auto}.upload-label-btn{color:var(--primary);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.upload-label-btn:hover{color:var(--primary-strong, #0d8c6c)}.proposals-list{display:flex;flex-direction:column;gap:10px}.proposal-card{border:1px solid var(--border);border-radius:8px;padding:12px 14px;background:var(--bg-card)}.proposal-card--pending{border-left:4px solid #f5a623}.proposal-card--shipped{border-left:4px solid var(--primary)}.proposal-card--held{border-left:4px solid #b7791f}.proposal-card--rejected{border-left:4px solid var(--danger)}.proposal-card__hdr{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--text-muted);margin-bottom:6px}.proposal-card__title{font-weight:600;font-size:14px}.proposal-card__body{margin-top:8px}.proposal-card__body summary{font-size:12px;color:var(--text-muted);cursor:pointer}.proposal-card__body pre{margin:6px 0 0;padding:10px 12px;background:var(--bg-soft);border:1px solid var(--border);border-radius:4px;white-space:pre-wrap;word-break:break-word;font-size:12px}.proposal-card__note{margin-top:8px;padding:8px 10px;background:var(--bg-soft);border-radius:4px;font-size:12px}.md-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-bottom:12px}.md-grid label{margin:0}.md-grid select,.md-grid input{padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg-soft);color:var(--text);font-size:13px}.app-footer{text-align:center;font-size:12px;color:#888;padding:10px 12px}.app-footer a{color:inherit;text-decoration:none}.app-footer a:hover{text-decoration:underline}.auth-card__back{display:inline-flex;align-items:center;margin:0 0 14px;padding:0;background:transparent;border:0;color:var(--text-muted);font-size:13px}.auth-card__back:hover{color:var(--primary)}.landing{max-width:1100px;margin:0 auto;padding:32px 24px 8px;min-height:100vh}.landing__hero{text-align:center;padding:56px 16px 64px}.landing__brand{font-size:18px;font-weight:600;letter-spacing:.5px;color:var(--primary);margin-bottom:18px}.landing__title{margin:0 0 16px;font-size:44px;line-height:1.15;font-weight:700;color:var(--text)}.landing__tagline{margin:0 auto 32px;max-width:680px;font-size:16px;line-height:1.6;color:var(--text-muted)}.landing__cta{display:inline-block;padding:13px 30px;font-size:16px;font-weight:600;color:#fff;background:var(--primary);border:1px solid var(--primary);border-radius:10px;transition:background .15s ease,transform .1s ease}.landing__cta:hover{background:#0d8f6e;transform:translateY(-1px)}.landing__cta:active{transform:translateY(0)}.landing__section{margin:0 0 44px}.landing__subtitle{margin:0 0 18px;font-size:18px;font-weight:600;color:var(--text)}.landing__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.landing__card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:18px 16px;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.landing__card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000000f;border-color:var(--border-strong)}.landing__card--accent{background:var(--bg-accent)}.landing__card-emoji{font-size:28px;line-height:1;margin-bottom:10px}.landing__card-name{font-size:15px;font-weight:600;color:var(--text);margin-bottom:6px}.landing__card-desc{font-size:13px;line-height:1.5;color:var(--text-muted)}.landing__cta-foot{text-align:center;padding:16px 16px 48px}@media (max-width: 640px){.landing__grid{grid-template-columns:1fr}.landing__title{font-size:32px}.landing__hero{padding:36px 8px 44px}}
