:root{--bg: #161616;--bg-panel: #1e1e1e;--bg-hover: #2a2a2a;--bg-active: #2f2f2f;--border: #333333;--text: #e8e8e8;--text-dim: #9a9a9a;--accent: #4f8cff;--radius: 10px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:-apple-system,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;background:var(--bg);color:var(--text);font-size:14px}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea,select{font-family:inherit;color:inherit}.app{display:flex;height:100%}.loading-mask{width:100%;display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:14px}.sidebar{width:250px;flex-shrink:0;background:var(--bg-panel);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:10px;gap:4px}.sidebar .brand{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;font-weight:600;font-size:13px}.new-task-btn{display:flex;align-items:center;gap:8px;background:var(--bg-active);border:1px solid var(--border);border-radius:var(--radius);padding:9px 12px;font-size:13px;margin:6px 0;width:100%}.new-task-btn:hover{background:var(--bg-hover)}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;font-size:13px;color:var(--text-dim);width:100%;text-align:left}.nav-item:hover{background:var(--bg-hover);color:var(--text)}.nav-item.active{background:var(--bg-active);color:var(--text)}.nav-item>span:first-child{width:18px;text-align:center;flex:none}.section-title{display:flex;align-items:center;justify-content:space-between;color:var(--text-dim);font-size:12px;padding:12px 8px 4px}.section-title .add-btn{color:var(--text-dim);font-size:15px;padding:0 4px;border-radius:4px}.section-title .add-btn:hover{color:var(--text);background:var(--bg-hover)}.sidebar-scroll{flex:1;overflow-y:auto}.sb-block{position:relative;border-radius:8px}.sb-block.dragging{opacity:.4}.sb-block.drag-over{box-shadow:0 -2px 0 var(--accent)}.sb-grip{position:absolute;right:2px;top:2px;z-index:6;cursor:grab;opacity:0;padding:1px 5px;border-radius:4px;color:var(--text-dim, #888);font-size:12px;-webkit-user-select:none;user-select:none}.sb-block:hover>.sb-grip{opacity:.9}.sb-grip:hover{color:var(--accent);background:var(--bg-hover)}.sb-block.sidebar-scroll>.sb-grip{position:sticky;top:2px;float:right;margin-right:2px}.session-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;font-size:13px;cursor:pointer;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-item:hover{background:var(--bg-hover);color:var(--text)}.session-item.active{background:var(--bg-active);color:var(--text)}.session-item .del{margin-left:auto;opacity:0;font-size:12px;flex-shrink:0}.session-item:hover .del{opacity:.7}.session-item .del:hover{opacity:1;color:#ff6b6b}.session-item.indent{padding-left:26px;font-size:12.5px}.session-group-label{padding:10px 10px 3px 26px;font-size:11px;letter-spacing:.5px;color:var(--text-dim);opacity:.75}.workspace-header{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;cursor:pointer;font-size:13px}.workspace-header:hover{background:var(--bg-hover)}.workspace-header .arrow{font-size:10px;color:var(--text-dim);width:12px}.workspace-header .add{margin-left:auto;opacity:.55;font-size:14px;color:var(--text-dim);flex-shrink:0}.workspace-header:hover .add{opacity:1;color:var(--text)}.workspace-header .del{margin-left:0;opacity:0;font-size:12px;flex-shrink:0}.workspace-header:hover .del{opacity:.7}.workspace-header .del:hover{opacity:1;color:#ff6b6b}.ws-create-row{display:flex;gap:6px;padding:4px 10px 8px}.ws-create-row input{flex:1;min-width:0;font-size:12px;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text)}.ws-create-row input:focus{outline:none;border-color:var(--accent)}.ws-create-row .mini{font-size:12px;padding:3px 8px;border-radius:6px;color:var(--text-dim)}.ws-create-row .mini:hover{background:var(--bg-hover);color:var(--text)}.sidebar-footer{display:flex;align-items:center;justify-content:space-between;padding:8px 6px 2px;border-top:1px solid var(--border);color:var(--text-dim);font-size:12px;position:relative}.gear-menu{position:absolute;bottom:100%;right:4px;margin-bottom:6px;z-index:50;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:4px;box-shadow:0 8px 24px #00000059}.gear-menu button{display:block;width:100%;text-align:left;white-space:nowrap;padding:8px 14px;border-radius:6px;font-size:13px;color:var(--text)}.gear-menu button:hover{background:var(--bg-hover)}.sidebar-footer .icons{display:flex;gap:4px}.sidebar-footer .icons button{padding:4px 6px;border-radius:6px;font-size:14px}.sidebar-footer .icons button:hover{background:var(--bg-hover)}.main{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.topbar{position:absolute;top:12px;right:16px;z-index:5;display:flex;gap:8px}.topbar button{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:6px 12px;font-size:12.5px;color:var(--text-dim)}.topbar button:hover{color:var(--text);background:var(--bg-hover)}.app-ver{position:absolute;right:16px;bottom:8px;z-index:4;font-size:12px;color:#8b93a7;opacity:.55;letter-spacing:0;pointer-events:none}.welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px}.welcome h1{font-size:30px;font-weight:600;letter-spacing:1px}.quick-tags{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.quick-tags button{background:var(--bg-panel);border:1px solid var(--border);border-radius:999px;padding:7px 16px;font-size:13px;color:var(--text-dim)}.quick-tags button:hover{color:var(--text);background:var(--bg-hover);border-color:#444}.capability-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.capability-row button{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:6px 12px;font-size:12px;color:var(--text-dim)}.capability-row button:hover{color:var(--text);background:var(--bg-hover)}.chat-scroll{flex:1;overflow-y:auto;padding:56px 0 12px}.chat-inner{max-width:1400px;margin:0 auto;display:flex;flex-direction:column;gap:12px;padding:0 40px}.msg{display:flex;gap:12px}.msg .avatar{width:30px;height:30px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;background:var(--bg-active);border:1px solid var(--border)}.msg.user .avatar{background:#2c4a7c}.msg .bubble{flex:1;line-height:var(--chat-line-height, 1.7);font-size:var(--chat-font-size, 14px);white-space:pre-wrap;word-break:break-word;padding-top:4px;min-width:0}.msg.user .bubble{color:#d6e4ff}.msg .time{font-size:11px;color:var(--text-dim);margin-top:6px}.display-setting-row{display:flex;align-items:center;gap:12px;margin-top:8px}.display-setting-row>span{font-size:13px;color:var(--text-dim);min-width:92px}.display-setting-row input[type=range]{flex:1;accent-color:var(--accent)}.typing:after{content:"▍";animation:blink 1s infinite;color:var(--accent)}@keyframes blink{50%{opacity:0}}.composer-wrap{padding:12px 40px 20px}.composer{max-width:1400px;margin:0 auto;background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:12px 14px 8px}.composer:focus-within{border-color:#4a4a4a}.composer textarea{width:100%;background:none;border:none;outline:none;resize:none;font-size:14px;line-height:1.6;min-height:44px;max-height:200px;color:var(--text);overflow-y:auto}.composer textarea::placeholder{color:var(--text-dim)}.composer-bar{display:flex;align-items:center;gap:8px;margin-top:6px}.composer-bar .hint{color:var(--text-dim);font-size:12px;flex:1}.model-select{background:var(--bg-active);border:1px solid var(--border);border-radius:8px;padding:4px 8px;font-size:12px;color:var(--text-dim);outline:none}.model-locked{border:1px dashed var(--border);border-radius:8px;padding:4px 8px;font-size:12px;color:var(--text-dim);white-space:nowrap}.send-btn{width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;font-size:15px;display:flex;align-items:center;justify-content:center}.send-btn:disabled{background:var(--bg-active);color:var(--text-dim);cursor:not-allowed}.send-btn.stop{background:var(--bg-active);border:1px solid var(--border)}.stop-icon{width:11px;height:11px;border-radius:2px;background:var(--text, #e8e8e8);display:block}.stopped-tag{font-size:11px;color:var(--text-dim);margin-top:6px}.msg{position:relative}.msg-del{position:absolute;top:0;right:-6px;width:22px;height:22px;border-radius:6px;border:1px solid var(--border);background:var(--panel);color:var(--text-dim);font-size:11px;line-height:1;cursor:pointer;visibility:hidden;opacity:0;transition:opacity .12s ease}.msg:hover .msg-del{visibility:visible;opacity:1}.msg-del:hover{color:var(--text);border-color:var(--text-dim)}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:20;display:flex;align-items:center;justify-content:center}.modal{width:440px;background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;padding:22px}.modal h2{font-size:16px;margin-bottom:16px}.field{margin-bottom:14px}.field label{display:block;font-size:12px;color:var(--text-dim);margin-bottom:6px}.field input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:9px 12px;font-size:13px;outline:none}.field input:focus{border-color:var(--accent)}.field .tip{font-size:11px;color:var(--text-dim);margin-top:5px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.modal-actions button{border-radius:8px;padding:8px 18px;font-size:13px}.modal-actions .primary{background:var(--accent);color:#fff}.modal-actions .ghost{border:1px solid var(--border);color:var(--text-dim)}.empty-tip{color:var(--text-dim);font-size:12px;padding:4px 10px}.module-page{flex:1;overflow-y:auto;padding:56px 40px 40px;max-width:900px;margin:0 auto;width:100%}.module-page h1{font-size:22px;font-weight:600;margin-bottom:6px}.block-filter-center{justify-content:center}.module-page h1.page-title-lg{font-size:28px;font-weight:700;letter-spacing:1px;text-align:center}.module-desc{color:var(--text-dim);font-size:13px;margin-bottom:24px}.card-block{margin-bottom:24px}.card-block-title{font-size:14px;font-weight:600;margin-bottom:10px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.skills-page{max-width:1400px}.card-grid-5{grid-template-columns:repeat(5,1fr)}.card-remove{position:absolute;top:8px;right:8px}.card{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:14px 16px;cursor:pointer;transition:background .15s}.card:hover{background:var(--bg-hover);border-color:#444}.card-title{font-size:14px;font-weight:500;margin-bottom:6px}.card-sub{font-size:12px;color:var(--text-dim);line-height:1.5}.automation-form,.doc-form{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.automation-form input,.doc-form input,.doc-form textarea{flex:1;min-width:200px;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:9px 12px;font-size:13px;outline:none}.doc-form{flex-direction:column}.doc-form textarea{resize:vertical;width:100%}.automation-form select{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:9px 12px;font-size:13px;outline:none}.automation-form input:focus,.doc-form input:focus,.doc-form textarea:focus{border-color:var(--accent)}.primary-btn{background:var(--accent);color:#fff;border-radius:8px;padding:9px 20px;font-size:13px;align-self:flex-start}.primary-btn:hover{filter:brightness(1.1)}.automation-item{display:flex;align-items:center;justify-content:space-between;background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:10px}.automation-actions{display:flex;align-items:center;gap:10px}.toggle{border:1px solid var(--border);border-radius:999px;padding:5px 14px;font-size:12px;color:var(--text-dim)}.toggle.on{background:#4f8cff26;border-color:var(--accent);color:var(--accent)}.del-btn{color:var(--text-dim);font-size:12px;padding:4px 8px;border-radius:6px}.del-btn:hover{color:#ff6b6b;background:var(--bg-hover)}.module-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.module-head-actions{display:flex;gap:8px;flex-shrink:0}.module-desc{font-size:13px;color:var(--text-dim);line-height:1.6}.ghost-btn{font-size:13px;padding:7px 14px;border-radius:8px;border:1px solid var(--border);color:var(--text);background:transparent;cursor:pointer}.ghost-btn:hover{background:var(--bg-hover)}.ver-tag{font-size:11px;color:var(--text-dim);border:1px solid var(--border);border-radius:999px;padding:1px 8px;margin-left:6px;font-weight:400}.lang-tag{font-size:11px;color:#7ec699;border:1px solid rgba(126,198,153,.4);border-radius:999px;padding:1px 8px;margin-left:6px;font-weight:400}.lang-tag.skill{color:tan;border-color:#d2b48c66}.lang-tag.err{color:#ff8080;border-color:#ff808066}.plugin-error{border-color:#ff808059!important}.doc-item{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.doc-details{margin-top:10px;font-size:13px;color:var(--text);cursor:pointer}.code-block{margin-top:8px;padding:12px;background:var(--bg-code, #14161a);border:1px solid var(--border);border-radius:10px;font-size:12px;line-height:1.6;overflow-x:auto;color:#d4d4d4;white-space:pre-wrap}.html-card-frame{width:100%;min-height:130px;border:1px solid var(--border);border-radius:12px;background:transparent;margin:4px 0}.model-view-header{display:flex;align-items:center;gap:12px}.model-badge{font-size:12px;padding:3px 10px;border-radius:20px;border:1px solid var(--border);color:var(--text-dim, #888)}.model-badge.on{color:#4f9cf9;border-color:#4f9cf966;background:#4f9cf90d}.model-manager .model-list-head{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:600;margin-bottom:10px}.model-manager .add-model-btn{font-weight:400}.model-edit-title{font-size:13px;font-weight:600;margin-bottom:6px}.modal-lg{width:min(620px,94vw)!important}.model-settings-modal{max-height:88vh;overflow-y:auto}.model-list{max-height:260px;overflow-y:auto;border:1px solid var(--border);border-radius:10px}.model-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border);cursor:pointer}.model-row:last-child{border-bottom:none}.model-row:hover{background:var(--bg-code, #14161a)}.model-row.active{background:#4f9cf90d;box-shadow:inset 3px 0 #4f9cf9}.model-row.editing{background:var(--bg-code, #14161a);box-shadow:inset 3px 0 #f9a84f}.model-row-name{font-weight:600;font-size:13px;flex:0 0 auto;max-width:30%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.model-row-meta{font-size:12px;color:var(--text-dim, #888);flex:0 0 auto;max-width:24%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.model-row-url{font-size:11px;color:var(--text-dim, #888);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.model-row-actions{display:flex;gap:4px;flex:0 0 auto}.model-empty{padding:14px;text-align:center;color:var(--text-dim, #888);font-size:13px;border:1px dashed var(--border);border-radius:10px}.model-list-actions{margin-top:8px}.model-edit{border:1px solid #4f9cf955;border-radius:10px;padding:12px;margin-top:10px;display:flex;flex-direction:column;gap:10px}.model-edit .mfield{display:flex;flex-direction:column;gap:4px}.model-edit .mfield span{font-size:12px;color:var(--text-dim)}.model-edit input,.model-edit select{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:9px 12px;font-size:13px;outline:none;box-sizing:border-box}.model-edit input:focus,.model-edit select:focus{border-color:var(--accent)}.model-edit-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:2px}.mini{font-size:11px;padding:2px 8px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text);cursor:pointer;white-space:nowrap}.mini:hover{border-color:#4f9cf9}.mini.danger:hover{border-color:#ff8080;color:#ff8080}.mini:disabled{opacity:.5;cursor:default}.add-model-btn{margin-top:2px}.preset-dropdown{position:relative}.preset-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:9px 12px;font-size:13px;color:var(--text);cursor:pointer}.preset-toggle:hover{border-color:var(--accent)}.preset-toggle-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preset-caret{flex:0 0 auto;font-size:11px;color:var(--text-dim, #888);transition:transform .15s ease}.preset-toggle.open .preset-caret{transform:rotate(180deg)}.preset-menu{position:absolute;z-index:30;top:calc(100% + 4px);left:0;right:0;max-height:320px;overflow-y:auto;background:var(--bg);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #0006}.preset-group{position:sticky;top:0;z-index:1;padding:6px 12px 4px;font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--text-dim, #888);background:var(--bg);cursor:default}.preset-item{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;font-size:13px}.preset-item:hover,.preset-item.active{background:var(--bg-code, #14161a)}.preset-name{font-weight:600;display:flex;align-items:center;gap:6px;white-space:nowrap}.preset-dot{width:7px;height:7px;border-radius:50%;background:#3fb950;flex:0 0 auto}.preset-tag{font-size:10px;padding:1px 6px;border-radius:6px;border:1px solid var(--border);color:var(--text-dim, #888);flex:0 0 auto}.preset-domain{flex:1;text-align:right;font-size:11px;color:var(--text-dim, #888);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preset-footer{position:sticky;bottom:0;padding:6px 12px;font-size:11px;color:var(--text-dim, #888);background:var(--bg);border-top:1px solid var(--border)}.preset-warn{padding:8px 12px;border-radius:8px;font-size:12px;color:#e6b450;background:#e6b45014;border:1px solid #e6b45055}.preset-tip{padding:8px 12px;border-radius:8px;font-size:12px;color:#7fb3f9;background:#4f9cf914;border:1px solid #4f9cf955}.model-name-row{display:flex;gap:6px;align-items:center}.model-name-row select{flex:1}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:#3a3a3a;border-radius:4px}::-webkit-scrollbar-track{background:transparent}.field label{display:flex;align-items:center;gap:6px}.field label input[type=checkbox]{width:auto;margin:0;accent-color:var(--accent);flex-shrink:0}.field .tip.warning{color:#e0a94e}.tool-calls{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.tool-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:13px}.tool-card.running{border-color:var(--accent)}.tool-card.done{border-color:#2f7d4f}.tool-card.error{border-color:#b34747}.tool-card-head{display:flex;align-items:center;gap:8px}.tool-card-icon{color:var(--text-dim);font-size:13px}.tool-card-name{font-weight:600;font-size:12px;font-family:SF Mono,Consolas,Courier New,monospace}.tool-card-status{margin-left:auto;font-size:11px;color:var(--text-dim)}.tool-card.running .tool-card-status{color:var(--accent)}.tool-card.done .tool-card-status{color:#6fbf8f}.tool-card.error .tool-card-status{color:#ff6b6b}.tool-card pre{margin-top:8px;font-size:11px;line-height:1.5;color:var(--text-dim);background:#0000004d;border-radius:6px;padding:8px 10px;white-space:pre-wrap;word-break:break-all;max-height:200px;overflow-y:auto}.tool-card-args{max-height:120px}.tool-card-details summary{margin-top:8px;font-size:11px;color:var(--accent);cursor:pointer}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:20px}.login-card{width:min(360px,92vw);background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:32px 28px;display:flex;flex-direction:column;gap:12px;box-shadow:0 12px 40px #00000040}.brand-title{display:inline-block;transition:transform .18s ease}.brand-logo{display:flex;align-items:baseline;gap:4px;transition:transform .18s ease;flex-shrink:0}.brand-title:hover,.brand-logo:hover{transform:translateY(-2px)}.brand-title svg{height:88px;width:auto;display:block}.brand-title img{max-width:100%;height:auto;display:block}.login-card .brand-title{align-self:center;max-width:100%}.login-title{font-size:17px;font-weight:700}.login-sub{font-size:12px;color:var(--text-dim)}.login-card input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:14px;outline:none;box-sizing:border-box}.login-card input:focus{border-color:var(--accent)}.login-error{color:#ff8080;font-size:12px}.login-btn{width:100%;padding:11px 0;border-radius:10px;font-size:15px;font-weight:600;letter-spacing:4px;color:#fff;cursor:pointer;background:linear-gradient(135deg,#4f9cf9,#7c6cf0);box-shadow:0 4px 14px #4f9cf944}.login-btn:hover:not(:disabled){filter:brightness(1.12)}.login-btn:disabled{opacity:.55;cursor:not-allowed}.login-hint{font-size:11px;color:var(--text-dim);text-align:center}.login-tabs{display:flex;gap:4px}.login-tabs button{flex:1;padding:7px 0;font-size:13px;background:transparent;border:none;border-bottom:2px solid var(--border);color:var(--text-dim);cursor:pointer}.login-tabs button.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.login-tabs button:disabled{opacity:.35;cursor:not-allowed}.login-form{display:flex;flex-direction:column;gap:12px}.sms-row{display:flex;gap:8px}.sms-row input{flex:1;min-width:0}.sms-send-btn{white-space:nowrap;font-size:12px;padding:8px 12px}.user-row{display:flex;align-items:center;gap:6px;padding:8px 4px;min-width:0}.user-avatar{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#4f9cf9,#7c6cf0);color:#fff;font-size:13px;display:flex;align-items:center;justify-content:center;flex:none}.user-name{flex:1;min-width:0;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:4px}.user-name-text{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role{flex:none;font-style:normal;font-size:10px;color:var(--text-dim);border:1px solid var(--border);border-radius:10px;padding:1px 5px}.user-row .mini{padding:2px 5px}.perm-card{border:1px solid var(--border);border-radius:10px;margin-bottom:8px;overflow:hidden}.perm-card-head{display:flex;align-items:center;gap:10px;padding:10px 12px;flex-wrap:wrap}.perm-card-name{font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px}.perm-card-name.col{flex-direction:column;align-items:flex-start;gap:2px}.perm-card-username{font-style:normal;font-size:11px;color:var(--text-dim);font-weight:400}.perm-role{font-size:11px;padding:2px 8px;border-radius:10px;background:#4f9cf915;color:#4f9cf9;border:1px solid #4f9cf933}.perm-role.admin{background:#e2a33f15;color:#e2a33f;border-color:#e2a33f33}.perm-card-meta{font-size:11px;color:var(--text-dim)}.perm-card-actions{margin-left:auto;display:flex;gap:6px}.perm-form{border-top:1px dashed var(--border);padding:12px;display:flex;flex-direction:column;gap:10px;background:var(--bg)}.perm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.perm-form input,.perm-form select{width:100%;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:13px;outline:none;box-sizing:border-box;color:var(--text)}.perm-form select{color-scheme:dark}.perm-form option{background:var(--bg-panel);color:var(--text)}.perm-form input:focus,.perm-form select:focus{border-color:var(--accent)}.perm-form .mfield{display:flex;flex-direction:column;gap:4px}.perm-form .mfield span,.skill-pick-title{font-size:12px;color:var(--text-dim)}.skill-pick{display:flex;flex-wrap:wrap;gap:6px}.skill-pick-item{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:4px 9px;border:1px solid var(--border);border-radius:14px;cursor:pointer;background:var(--panel)}.skill-pick-item input{width:auto;margin:0}.perm-form-actions{display:flex;justify-content:flex-end;gap:8px}.perm-search{display:flex;gap:8px;margin-bottom:10px}.perm-search input,.perm-search select{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:13px;outline:none;color:var(--text)}.perm-search input{flex:1;min-width:0}.perm-search select{min-width:140px;color-scheme:dark}.perm-search input:focus,.perm-search select:focus{border-color:var(--accent)}.perm-search option{background:var(--bg-panel);color:var(--text)}.card-tag{display:inline-block;font-size:10px;color:var(--text-dim);border:1px solid var(--border);border-radius:10px;padding:1px 7px;margin-top:6px}.register-card{width:min(400px,92vw);max-height:92vh;overflow-y:auto}.login-card select,.login-card textarea{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:14px;outline:none;box-sizing:border-box;color:var(--text);font-family:inherit;resize:vertical}.login-card select:focus,.login-card textarea:focus{border-color:var(--accent)}.login-register-link{background:none;border:none;color:var(--accent);font-size:12px;cursor:pointer;text-align:center;padding:4px}.login-register-link:hover{text-decoration:underline}.username-row{position:relative}.username-row input{width:100%}.username-check{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:11px}.username-check.dim{color:var(--text-dim)}.username-check.ok{color:#4caf7d}.username-check.bad{color:#ff8080}.pwd-strength{display:flex;align-items:center;gap:8px;margin-top:6px}.pwd-strength-bar{height:4px;border-radius:2px;transition:width .2s;background:#ff8080}.pwd-strength-bar.s2{background:#e2a33f}.pwd-strength-bar.s3{background:#8bc34a}.pwd-strength-bar.s4{background:#4caf7d}.pwd-strength-label{font-size:11px;color:var(--text-dim);white-space:nowrap}.perm-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid var(--border)}.perm-tabs button{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-dim);font-size:13px;padding:8px 14px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.perm-tabs button.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.pending-badge{background:#e05252;color:#fff;font-size:10px;line-height:1;border-radius:9px;padding:3px 6px;min-width:16px;text-align:center}.perm-form textarea{width:100%;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:13px;outline:none;box-sizing:border-box;color:var(--text);font-family:inherit;resize:vertical}.perm-form textarea:focus{border-color:var(--accent)}.trial-banner{padding:10px 14px;border:1px solid #e2a33f55;border-radius:10px;background:#e2a33f12;color:#e2a33f;font-size:13px}.trial-tag{color:#4f9cf9;border-color:#4f9cf955}.model-switch{position:relative}.model-switch-btn{background:var(--bg-active);border:1px solid var(--border);border-radius:8px;padding:4px 10px;font-size:12px;color:var(--text-dim);outline:none;white-space:nowrap;cursor:pointer;max-width:220px;overflow:hidden;text-overflow:ellipsis}.model-switch-btn:hover{color:var(--text);border-color:#4a4a4a}.model-switch-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9}.model-switch-menu{position:absolute;bottom:calc(100% + 6px);right:0;z-index:10;min-width:240px;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:6px;max-height:280px;overflow-y:auto;box-shadow:0 8px 24px #00000073}.model-switch-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;background:none;border:none;border-radius:8px;padding:8px 10px;font-size:13px;color:var(--text);text-align:left;cursor:pointer}.model-switch-item:hover{background:var(--bg-hover)}.model-switch-item.active{color:var(--accent)}.model-switch-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-switch-tag{font-size:11px;color:var(--text-dim);flex:0 0 auto}.model-switch-item.active .model-switch-tag{color:var(--accent)}.purchase-info{display:flex;gap:12px;align-items:flex-start;padding:2px 0 12px}.purchase-icon{font-size:34px;line-height:1.2}.purchase-info-text{min-width:0}.purchase-price{display:flex;align-items:baseline;gap:10px;padding:12px 14px;border-radius:10px;background:var(--bg-hover);margin-bottom:12px}.purchase-price-num{font-size:28px;font-weight:700;color:#e8b339}.purchase-price-sub{color:var(--text-dim);font-size:13px}.purchase-balance{display:flex;gap:10px;margin-bottom:10px}.purchase-balance-item{flex:1;display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-size:13px}.purchase-balance-label{color:var(--text-dim)}.purchase-methods{display:flex;gap:10px;margin-bottom:10px}.pay-card{flex:1;display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:border-color .15s,background .15s}.pay-card input{margin:0 0 4px;accent-color:#4f9cf9}.pay-card.selected{border-color:#4f9cf9;background:#4f9cf91a}.pay-card.disabled{opacity:.45;cursor:not-allowed}.pay-card-title{font-size:14px;font-weight:600}.pay-card-sub{font-size:12px;color:var(--text-dim)}.purchase-warn{color:#ff8080;font-size:13px;margin-bottom:8px}.owned-hint{position:fixed;top:64px;left:50%;transform:translate(-50%);background:var(--bg-panel);border:1px solid #7ee78755;color:#7ee787;padding:8px 18px;border-radius:10px;z-index:999;font-size:13px;box-shadow:0 6px 24px #0006}.mini.danger{border-color:#ff808073;color:#ff8080}.perm-card .card-sub{font-size:12px;color:var(--text-dim)}.modal-actions .primary.danger{background:#d9534f;color:#fff}.modal-actions .primary.danger:hover{background:#c9302c}.modal-actions .primary.danger:disabled{opacity:.5;cursor:default}.modal.payrec{width:min(1080px,96vw);background:#1a1d21;border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:18px 20px 14px;color:#e6e9ec;color-scheme:dark;display:flex;flex-direction:column;gap:12px}.payrec h2.payrec-title{font-size:16px;font-weight:600;margin:0;color:#e6e9ec}.payrec-balance{display:flex;align-items:baseline;gap:10px;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:10px 14px}.payrec-balance-label{font-size:12px;color:#8a929c}.payrec-balance-num{font-size:22px;font-weight:700;color:#4dd0e1;font-variant-numeric:tabular-nums}.payrec-balance-note{font-size:11px;color:#6b727b}.payrec-filters{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;font-size:12px}.payrec-lbl{color:#6b727b;font-size:11px;white-space:nowrap;flex:none}.payrec-lbl-gap{margin-left:6px}.payrec-sep{color:#6b727b;flex:none}.payrec-input{background:#ffffff0b;border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:5px 8px;font-size:12px;color:#e6e9ec;outline:none}.payrec-input:focus{border-color:#4dd0e18c}.payrec-input::placeholder{color:#6b727b}.payrec-date{width:116px;flex:none}.payrec-num{width:60px;flex:none}.payrec-order{flex:1 1 130px;min-width:70px}.payrec-check{display:inline-flex;align-items:center;gap:4px;color:#c4cad2;white-space:nowrap;cursor:pointer;flex:none}.payrec-check input{margin:0;accent-color:#4dd0e1}.payrec-btn{border:1px solid rgba(255,255,255,.14);border-radius:6px;padding:5px 12px;font-size:12px;color:#9aa1a9;background:transparent;white-space:nowrap;flex:none}.payrec-btn:hover{border-color:#ffffff47;color:#e6e9ec}.payrec-btn:disabled{opacity:.35;cursor:default}.payrec-btn.accent{color:#4dd0e1;border-color:#4dd0e180;background:#4dd0e114}.payrec-btn.accent:hover{background:#4dd0e129;color:#4dd0e1}.payrec-btn.payrec-close{padding:6px 16px}.payrec-summary{display:flex;gap:10px}.payrec-sum{flex:1 1 0;border:1px solid rgba(255,255,255,.07);border-radius:9px;padding:8px 12px}.payrec-sum-label{font-size:11px;color:#6b727b;display:flex;align-items:center;gap:6px}.payrec-sum-hint{font-size:10px;color:#565d66;border:1px solid rgba(255,255,255,.08);border-radius:4px;padding:0 5px}.payrec-sum-num{font-size:17px;font-weight:700;color:#4dd0e1;font-variant-numeric:tabular-nums;margin-top:2px}.payrec-table-wrap{overflow:auto;max-height:44vh}.payrec-table{width:100%;border-collapse:collapse;font-size:12.5px}.payrec-table th{text-align:left;font-size:11px;font-weight:500;color:#6b727b;padding:7px 10px;border-bottom:1px solid rgba(255,255,255,.09);white-space:nowrap;position:sticky;top:0;background:#1a1d21;z-index:1}.payrec-table td{padding:7px 10px;border-bottom:1px solid rgba(255,255,255,.06);color:#c4cad2;white-space:nowrap}.payrec-table th.payrec-th-num{text-align:right}.payrec-amt{text-align:right;color:#e6e9ec;font-weight:600;font-variant-numeric:tabular-nums}.payrec-ref{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;color:#9aa1a9}.payrec-tr-click{cursor:pointer}.payrec-tr-click:hover td{background:#ffffff08}.payrec-caret{margin-left:6px;color:#6b727b;font-size:11px}.payrec-tag{display:inline-block;font-size:10.5px;line-height:16px;padding:0 7px;border-radius:4px;border:1px solid}.payrec-tag.t-recharge{color:#4dd0e1;border-color:#4dd0e159;background:#4dd0e114}.payrec-tag.t-consume{color:#d9a066;border-color:#d9a06659;background:#d9a06614}.payrec-tag.t-refund{color:#93a6bc;border-color:#93a6bc59;background:#93a6bc14}.payrec-tag-mode{margin-left:4px;color:#8a929c;border-color:#ffffff24;background:transparent}.payrec-table td.payrec-drill{padding:6px 12px 12px;background:#ffffff06}.payrec-drill-note{font-size:11.5px;color:#8a929c;margin-bottom:4px;white-space:normal}.payrec-drill-err{font-size:11.5px;color:#d98a8a}.payrec-subtable{width:100%;border-collapse:collapse;font-size:11.5px}.payrec-subtable th{text-align:left;font-weight:500;color:#6b727b;padding:2px 6px;border:none;position:static;background:transparent}.payrec-subtable td{padding:2px 6px;color:#c4cad2;border:none}.payrec-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:2px}.payrec-footer-left{display:flex;align-items:center;gap:8px;font-size:12px;color:#8a929c}.payrec-empty{color:#8a929c;font-size:12px;padding:8px 2px}.card-tag.tag-free{color:#f0883e;border-color:#f0883e80;background:#f0883e1a;font-weight:600}.dl-card{position:relative}.dl-card .dl-detail{display:none;position:absolute;top:calc(100% - 4px);left:0;right:0;z-index:25;background:var(--bg);border:1px solid var(--border);border-radius:0 0 10px 10px;padding:8px 12px;box-shadow:0 10px 24px #00000073}.dl-card:hover{z-index:26;border-bottom-left-radius:0;border-bottom-right-radius:0}.dl-card:hover .dl-detail{display:block}.sidebar-actions{display:flex;flex-direction:column;gap:6px;margin:6px 0}.sidebar-actions .nav-item{width:100%}.recharge-col{display:flex;flex-direction:column;gap:6px}.recharge-col>button{width:100%;text-align:left;background:transparent;border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:13px;color:var(--text);cursor:pointer}.recharge-col>button:hover{border-color:var(--accent)}.how-toggle{border:none!important;padding:2px 12px!important;font-size:12px!important;color:var(--text-dim, #888)!important;text-align:left!important}.how-toggle:hover{color:var(--accent)!important}.how-panel{margin:0 4px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:12px;line-height:1.7;color:var(--text-dim, #aaa);background:var(--bg)}.sidebar-footer .nav-item{width:100%;margin-bottom:8px}.sidebar-lib{margin:6px 0}.sidebar-lib .lib-active{border-color:var(--accent);color:var(--accent)}
