:root{color-scheme:dark;--bg: #000;--sidebar: #171717;--panel: #212121;--hover: #2f2f2f;--line: #2a2a2a;--text: #ececec;--muted: #8e8e8e;--accent: #3b82f6;--danger: #f87171;--ease-out: cubic-bezier(.32, .72, 0, 1);--ease-ui: cubic-bezier(.4, 0, .2, 1);--dur-fast: .15s;--dur-med: .24s;--dur-slow: .38s;font-family:Segoe UI,PingFang SC,Noto Sans SC,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text)}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}.shell{display:grid;grid-template-columns:260px minmax(0,1fr);height:100%;overflow:hidden;transition:grid-template-columns var(--dur-med) var(--ease-out)}.shell.collapsed{grid-template-columns:52px minmax(0,1fr)}.sidebar-slot{min-width:0;min-height:0;height:100%;overflow:hidden;background:var(--sidebar)}.sidebar{display:flex;flex-direction:column;width:260px;height:100%;min-height:0;overflow:hidden;background:var(--sidebar);border-right:1px solid var(--line);padding:14px 12px 12px;transition:width var(--dur-med) var(--ease-out)}.sidebar.is-collapsed{width:52px;padding:10px 6px;align-items:center}.brand-logo{width:32px;height:32px;padding:0;border:0;border-radius:10px;overflow:hidden;background:transparent;flex:0 0 auto}.brand-logo img{display:block;width:100%;height:100%;object-fit:cover}.sidebar-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 6px 14px}.sidebar.is-collapsed .sidebar-top{flex-direction:column;padding:0 0 8px}.sidebar-top strong{flex:1;font-size:15px}.sidebar-top-actions{display:flex;align-items:center;gap:6px}.sidebar-user{display:flex;align-items:center;gap:12px;margin-top:auto;flex-shrink:0}.sidebar-nav{display:flex;flex-direction:column;gap:4px;margin-top:6px;min-width:0;flex:0 0 auto}.sidebar-history{flex:1 1 auto;min-width:0;min-height:0;margin-top:12px;display:flex;flex-direction:column;overflow:hidden}.sidebar-history-label{flex:0 0 auto;margin:0;padding:4px 12px 6px;color:var(--muted);font-size:12px}.sidebar-history-list{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;padding:0 2px 8px 0;display:flex;flex-direction:column;gap:2px;overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none}.sidebar-history-list::-webkit-scrollbar{width:0;height:0;display:none}.user-avatar{width:32px;height:32px;border:0;border-radius:999px;background:#3a3a3a;color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;flex:0 0 auto}.sidebar.is-collapsed .sidebar-top strong,.sidebar.is-collapsed .sidebar-top-actions,.sidebar.is-collapsed .sidebar-history,.sidebar.is-collapsed .more-chevron,.sidebar.is-collapsed .upgrade-chip,.sidebar.is-collapsed .sidebar-user-info>div,.sidebar.is-collapsed .sidebar-user .primary-btn,.sidebar.is-collapsed .nav-item span{display:none}.sidebar.is-collapsed .sidebar-more,.sidebar.is-collapsed .more-toggle{display:none}.sidebar.is-collapsed .nav-item{width:40px;height:40px;justify-content:center;padding:0;gap:0}.sidebar.is-collapsed .nav-item.nested{padding-left:0}.sidebar.is-collapsed .sidebar-user{justify-content:center;padding:8px 0 4px}.sidebar.is-collapsed [data-tip]:after{left:calc(100% + 10px);bottom:50%;transform:translateY(50%)}.sidebar.is-collapsed [data-tip]:hover:after,.sidebar.is-collapsed [data-tip]:focus-visible:after{transform:translateY(50%)}.nav-item,.history-item,.forum-card,.suggest-list button{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;color:var(--text);text-align:left;border-radius:10px;padding:9px 12px;transition:background-color var(--dur-fast) var(--ease-ui),color var(--dur-fast) var(--ease-ui),transform var(--dur-fast) var(--ease-ui),border-color var(--dur-fast) var(--ease-ui),box-shadow var(--dur-fast) var(--ease-ui)}.nav-item:hover,.history-item:hover,.forum-card:hover,.suggest-list button:hover,.icon-btn:hover,.pill-btn:hover,.upgrade-chip:hover,.sidebar-reopen:hover{background:var(--hover)}a.nav-item{text-decoration:none;color:inherit;cursor:pointer}.nav-logo{width:18px;height:18px;border-radius:999px;object-fit:cover;flex:0 0 auto}.nav-external-icon{margin-left:auto;color:var(--muted);opacity:0;flex:0 0 auto;transition:opacity var(--dur-fast) var(--ease-ui)}.nav-external:hover .nav-external-icon,.nav-external:focus-visible .nav-external-icon{opacity:1}.sidebar.is-collapsed .nav-external-icon{display:none}.nav-item:active,.history-item:active,.suggest-list button:active,.icon-btn:active,.pill-btn:active,.send-btn:active,.sidebar-reopen:active{transform:scale(.97)}.nav-item.active{background:var(--hover)}.nav-item.nested{padding-left:28px;color:#d4d4d4}.more-toggle .more-chevron{margin-left:auto;color:var(--muted);transition:transform var(--dur-med) var(--ease-out)}.more-toggle.is-open .more-chevron{transform:rotate(180deg)}.sidebar-more{display:grid;grid-template-rows:0fr;min-height:0;overflow:hidden;transition:grid-template-rows var(--dur-med) var(--ease-out)}.sidebar-more.is-open{grid-template-rows:1fr}.sidebar-more-inner{overflow:hidden;min-height:0;min-width:0;display:flex;flex-direction:column;gap:4px;padding:0}.sidebar-more.is-open .sidebar-more-inner{min-height:min-content;overflow:visible;padding:2px 0 8px}.toolbar input,.panel input,.panel textarea,.panel select,.modal-card input,.compose-post input,.compose-post textarea,.forum-detail textarea{width:100%;border:1px solid var(--line);background:#111;border-radius:10px;padding:8px 10px;transition:border-color var(--dur-fast) var(--ease-ui),box-shadow var(--dur-fast) var(--ease-ui)}.toolbar input:focus,.panel input:focus,.panel textarea:focus,.panel select:focus,.modal-card input:focus,.compose-post input:focus,.compose-post textarea:focus,.forum-detail textarea:focus{outline:none;border-color:#4a4a4a;box-shadow:0 0 0 1px #ffffff14}.nav-item span,.history-item{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-item{color:var(--muted);font-size:13px;transition:background-color 70ms linear,color 70ms linear}.history-item:active{transform:none}.history-item.is-generating{color:var(--text)}.history-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-busy{width:7px;height:7px;margin-left:auto;flex:0 0 auto;border-radius:999px;background:var(--accent);box-shadow:0 0 #3b82f68c;animation:history-pulse 1.2s var(--ease-ui) infinite}@keyframes history-pulse{0%{box-shadow:0 0 #3b82f673}70%{box-shadow:0 0 0 6px #3b82f600}to{box-shadow:0 0 #3b82f600}}.sidebar-user{margin-top:auto;flex-shrink:0;border-top:1px solid var(--line);padding:14px 8px 8px}.sidebar-user-info{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.sidebar-user-info strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user .upgrade-chip{flex:0 0 auto;margin-left:4px}.sidebar-user small{display:block;color:var(--muted)}.sidebar-reopen{position:fixed;left:12px;top:12px;z-index:5;width:36px;height:36px;border:0;border-radius:10px;background:var(--panel);color:var(--text);animation:fade-in var(--dur-med) var(--ease-out);transition:background-color var(--dur-fast) var(--ease-ui),transform var(--dur-fast) var(--ease-ui)}.sidebar-scrim{display:none}.main{position:relative;min-width:0;min-height:0;height:100%;overflow:hidden;background:var(--bg)}.main:has(.view-enter){overflow:auto}.view-enter{min-height:100%;animation:fade-up var(--dur-slow) var(--ease-out)}.view-enter:has(.library-page),.view-enter:has(.projects-page),.view-enter:has(.plugins-page){height:100%;min-height:0;display:flex;flex-direction:column}.chat-stage{height:100%;min-height:0;overflow:hidden;display:flex;flex-direction:column}.hero{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:32px 24px;overflow:auto;animation:fade-up .48s var(--ease-out)}.hero h1{margin:0;font-size:32px;font-weight:600;animation:fade-up .52s var(--ease-out)}.suggest-list{width:min(720px,100%);display:grid;gap:8px}.suggest-list button{color:var(--muted);animation:fade-up .48s var(--ease-out) both;animation-delay:calc(80ms + var(--i, 0) * 50ms)}.suggest-list button:hover{color:var(--text)}.suggest-list.is-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.suggest-list.is-cards button{min-height:76px;align-items:flex-start;border:1px solid transparent;background:#1a1a1a;border-radius:16px;padding:14px}.suggest-list.is-cards button:hover{transform:translateY(-2px);background:#242424;border-color:#3a3a3a;box-shadow:0 8px 24px #00000047}.thread-scroll{flex:1;min-width:0;min-height:0;width:100%;overflow-x:hidden;overflow-y:auto;scroll-behavior:smooth;animation:fade-in var(--dur-slow) var(--ease-out)}.thread{width:min(768px,100%);margin:0 auto;padding:32px 20px 16px;display:flex;flex-direction:column;gap:20px}.bubble{display:flex;flex-direction:column;gap:8px}.bubble.user{align-self:flex-end;background:var(--hover);border-radius:18px;padding:12px 16px;max-width:80%;white-space:pre-wrap;animation:bubble-in .28s var(--ease-out)}.bubble.assistant{white-space:pre-wrap;line-height:1.65;animation:fade-up .36s var(--ease-out)}.bubble small,.hint,.legal{color:var(--muted);font-size:12px}.think-block{background:#111;border:1px solid var(--line);border-radius:12px;overflow:hidden}.think-toggle{display:flex;width:100%;align-items:center;gap:6px;margin:0;padding:8px 12px;background:transparent;border:0;cursor:pointer;color:var(--muted);text-align:left;transition:color var(--dur-fast) var(--ease-ui)}.think-toggle:hover{color:var(--text)}.think-toggle svg{flex-shrink:0;transform:rotate(-90deg);transition:transform var(--dur-med) var(--ease-out)}.think-block.is-open .think-toggle svg{transform:rotate(0)}.think-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-slow) var(--ease-out)}.think-block.is-open .think-panel{grid-template-rows:1fr}.think-panel-inner{min-height:0;overflow:hidden;padding:0 12px;opacity:0;transition:opacity var(--dur-med) var(--ease-ui),padding-bottom var(--dur-slow) var(--ease-out)}.think-block.is-open .think-panel-inner{padding-bottom:8px;opacity:1}.think-block pre{white-space:pre-wrap;color:#cfcfcf;font-size:13px}.think-block section+section{margin-top:8px}.busy-line{display:flex;align-items:center;gap:10px;color:var(--muted);animation:fade-in var(--dur-fast) var(--ease-ui)}.busy-dots{display:inline-flex;align-items:center;gap:5px}.busy-dots i{width:6px;height:6px;border-radius:50%;background:#cfcfcf;animation:busy-bounce 1.2s ease-in-out infinite}.busy-dots i:nth-child(2){animation-delay:.15s}.busy-dots i:nth-child(3){animation-delay:.3s}.busy-label{background:linear-gradient(90deg,#8e8e8e,#ececec 45%,#8e8e8e);background-size:180% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 1.6s linear infinite}.composer-wrap{flex:0 0 auto;width:min(768px,calc(100% - 32px));margin:0 auto;padding:8px 0 16px;animation:fade-up .42s var(--ease-out)}.composer{display:flex;flex-direction:column;align-items:stretch;gap:2px;background:#2f2f2f;border-radius:28px;padding:14px 14px 10px;box-shadow:0 0 0 1px transparent;transition:box-shadow var(--dur-fast) var(--ease-ui),background-color var(--dur-fast) var(--ease-ui)}.composer:hover{background:#333}.composer:focus-within{background:#333;box-shadow:0 0 0 1px #ffffff29,0 10px 28px #00000059}.composer.is-receiving{animation:composer-receive .32s var(--ease-out)}.model-picker{position:relative;flex:0 0 auto}.model-picker-btn{display:inline-flex;align-items:center;gap:4px;max-width:112px;height:32px;border:0;border-radius:999px;padding:0 10px 0 12px;background:#3a3a3a;color:var(--text);font-size:13px;font-weight:600;white-space:nowrap}.model-picker-btn span{overflow:hidden;text-overflow:ellipsis}.model-picker-btn:hover,.model-picker-btn.is-open{background:#4a4a4a}.model-picker-menu{position:absolute;right:0;bottom:calc(100% + 10px);z-index:8;display:grid;gap:6px;min-width:240px;padding:8px;border:1px solid #3a3a3a;border-radius:16px;background:#2a2a2a;box-shadow:0 16px 40px #00000073;animation:fade-up var(--dur-fast) var(--ease-out)}.model-picker-item{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:8px;width:100%;border:0;border-radius:12px;padding:10px;background:transparent;color:var(--text);text-align:left}.model-picker-item:hover,.model-picker-item.is-active{background:#3a3a3a}.model-picker-check{display:grid;place-items:center;color:#93c5fd}.model-picker-item strong{display:block;font-size:14px;font-weight:600}.model-picker-item small{display:block;margin-top:2px;color:var(--muted);font-size:12px}.composer-top{position:relative;min-width:0}.composer textarea{width:100%;min-width:0;resize:none;border:0;background:transparent;min-height:44px;max-height:calc(6.2em + 12px);outline:none;padding:4px 6px 8px;line-height:1.55;overflow-y:auto;transition:max-height var(--dur-slow) var(--ease-out),padding-right var(--dur-fast) var(--ease-ui)}.composer-top.has-expand textarea{padding-right:36px}.composer.is-expanded textarea{max-height:min(62vh,560px)}.composer-expand{position:absolute;top:-2px;right:-2px;color:var(--muted);opacity:0;pointer-events:none;transform:scale(.84);transition:opacity var(--dur-fast) var(--ease-ui),transform var(--dur-med) var(--ease-out),background-color var(--dur-fast) var(--ease-ui),color var(--dur-fast) var(--ease-ui)}.composer-top.has-expand .composer-expand{opacity:1;pointer-events:auto;transform:none}.composer.is-expanded .composer-expand{color:var(--text)}.composer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px}.composer-tools,.composer-actions{display:flex;align-items:center;gap:6px;min-width:0}.composer-tools{flex:1 1 auto;overflow:visible}.composer-actions{flex:0 0 auto;position:relative;z-index:2}.composer-plus{position:relative;flex:0 0 auto}.composer-plus-btn svg{transition:transform var(--dur-med) var(--ease-out)}.composer-plus-btn.is-open svg{transform:rotate(45deg)}.composer-plus-menu{position:absolute;left:0;bottom:calc(100% + 12px);z-index:8;display:flex;flex-direction:column;width:min(440px,calc(100vw - 48px));max-height:min(70vh,520px);padding:10px 8px 8px;border:1px solid #3a3a3a;border-radius:22px;background:#2a2a2a;box-shadow:0 16px 40px #00000073;animation:fade-up var(--dur-fast) var(--ease-out)}.composer-plus-title{margin:0;padding:4px 12px 8px;color:var(--muted);font-size:13px}.composer-plus-list{display:grid;gap:2px;min-height:0;overflow-y:auto;padding:0 2px}.composer-plus-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:44px;border:0;border-radius:14px;padding:6px 10px;background:transparent;color:var(--text);text-align:left}.composer-plus-row:hover,.composer-plus-row.is-active{background:#3a3a3a}.composer-plus-ico,.composer-plus-row .plugin-logo{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#3a3a3a;color:var(--text);font-size:12px}.composer-plus-copy{display:flex;align-items:baseline;gap:8px;min-width:0}.composer-plus-copy strong{flex:0 1 auto;font-size:14px;font-weight:600;white-space:nowrap}.composer-plus-copy small{min-width:0;overflow:hidden;color:var(--muted);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.composer-plus-connect{color:var(--muted);font-size:13px;white-space:nowrap}.composer-plus-empty{margin:0;padding:16px 12px;color:var(--muted);font-size:13px}.composer-plus-search{display:grid;grid-template-columns:16px minmax(0,1fr) 28px;align-items:center;gap:8px;margin:8px 4px 2px;padding:8px 8px 8px 12px;border-radius:999px;background:#333;color:var(--muted)}.composer-plus-search input{width:100%;border:0;background:transparent;outline:none;color:var(--text)}.composer-plus-search-close{width:28px;height:28px;border:0;border-radius:999px;background:transparent;color:var(--muted);display:grid;place-items:center}.composer-plus-search-close:hover{background:#3f3f3f;color:var(--text)}.icon-btn,.pill-btn,.upgrade-chip,.send-btn,.primary-btn,.text-btn{border:0;background:transparent;color:var(--text)}.icon-btn,.send-btn{position:relative;width:34px;height:34px;border-radius:999px;display:grid;place-items:center;flex:0 0 auto;transition:background-color var(--dur-fast) var(--ease-ui),color var(--dur-fast) var(--ease-ui),transform var(--dur-fast) var(--ease-ui),opacity var(--dur-fast) var(--ease-ui)}.icon-btn.active,.pill-btn.active{background:#3b82f62e;color:#93c5fd}.icon-btn.is-listening{background:#ef444433;color:#fca5a5;box-shadow:0 0 #ef444473;animation:mic-pulse 1.2s var(--ease-ui) infinite}@keyframes mic-pulse{0%{box-shadow:0 0 #ef444466}70%{box-shadow:0 0 0 8px #ef444400}to{box-shadow:0 0 #ef444400}}.pill-btn,.upgrade-chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 10px;background:#3a3a3a;font-size:13px;transition:background-color var(--dur-fast) var(--ease-ui),color var(--dur-fast) var(--ease-ui),transform var(--dur-fast) var(--ease-ui)}.send-btn{position:relative;z-index:3;background:var(--accent);color:#fff}.send-btn:hover:not(:disabled){filter:brightness(1.08)}.send-btn:disabled{opacity:.35}.send-btn.is-stop{background:var(--accent);color:#fff}.send-btn.is-stop:hover{filter:brightness(1.08)}.primary-btn{background:var(--accent);color:#fff;border-radius:10px;padding:8px 14px;transition:filter var(--dur-fast) var(--ease-ui),transform var(--dur-fast) var(--ease-ui),opacity var(--dur-fast) var(--ease-ui)}.primary-btn:hover:not(:disabled){filter:brightness(1.08)}.text-btn{color:var(--muted);transition:color var(--dur-fast) var(--ease-ui)}.text-btn:hover{color:var(--text)}.legal{text-align:center;margin:8px 0 0}.attach-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.attach-chip{display:inline-flex;align-items:center;gap:8px;margin-bottom:0;border:0;border-radius:999px;padding:6px 10px;background:#1f2937;color:#93c5fd;font-size:12px;animation:fade-in var(--dur-fast) var(--ease-ui)}.attach-chip span{color:var(--muted)}.library-page{flex:1;min-height:0;min-width:0;height:100%;display:flex;flex-direction:column;padding:36px 48px 24px;gap:24px;overflow:hidden}.library-page.is-dragging .library-dropzone,.library-page.is-dragging .library-table,.library-page.is-dragging .library-grid{outline:1px dashed #5b5b5b;outline-offset:-8px}.library-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.library-head h1{margin:0;font-size:32px;font-weight:600}.library-head p{margin:8px 0 0;color:var(--muted);font-size:13px}.library-head-actions{display:flex;align-items:center;gap:10px}.library-search{display:flex;align-items:center;gap:8px;width:220px;height:40px;padding:0 14px;border-radius:999px;background:#2f2f2f;color:var(--muted)}.library-search input{width:100%;border:0;background:transparent;outline:none;padding:0}.library-new-wrap,.library-sort-wrap,.library-row-actions{position:relative}.library-new{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 16px;border:0;border-radius:999px;background:#fff;color:#111;font-weight:600;transition:filter var(--dur-fast) var(--ease-ui),transform var(--dur-fast) var(--ease-ui)}.library-new:hover{filter:brightness(.94)}.library-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:6;min-width:220px;padding:6px;border-radius:16px;background:#2f2f2f;box-shadow:0 12px 40px #00000073;animation:modal-in var(--dur-fast) var(--ease-out)}.library-menu button{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;color:var(--text);text-align:left;border-radius:10px;padding:10px 12px;transition:background-color var(--dur-fast) var(--ease-ui)}.library-menu button:hover,.library-menu button.is-active{background:#3a3a3a}.library-menu-split{margin-top:4px;border-top:1px solid #404040}.library-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:2px}.library-tabs,.library-tools{display:flex;align-items:center;gap:6px}.library-tab{border:0;border-radius:999px;padding:8px 16px;background:transparent;color:var(--muted);transition:background-color var(--dur-fast) var(--ease-ui),color var(--dur-fast) var(--ease-ui)}.library-tab.is-active,.library-tab:hover{background:#2f2f2f;color:var(--text)}.library-dropzone{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:320px;border:0;border-radius:28px;background:#1a1a1a;color:var(--muted);transition:background-color var(--dur-fast) var(--ease-ui),transform var(--dur-fast) var(--ease-ui)}.library-dropzone:hover,.library-page.is-dragging .library-dropzone{background:#222;color:var(--text)}.library-table{flex:1;min-height:0;overflow:auto}.library-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;align-content:start;overflow:auto}.library-row-menu.is-floating{position:fixed;right:auto;min-width:140px;z-index:40}.library-table-head,.library-row{display:grid;grid-template-columns:32px minmax(0,1.6fr) 180px 90px 40px;align-items:center;gap:8px;padding:10px 8px}.library-table-head{color:var(--muted);font-size:13px}.library-row{border-radius:12px;transition:background-color var(--dur-fast) var(--ease-ui)}.library-row:hover,.library-row.is-selected,.library-card.is-selected{background:#1f1f1f}.library-check{display:grid;place-items:center}.library-name{display:flex;align-items:center;gap:10px;min-width:0;border:0;background:transparent;color:var(--text);text-align:left;padding:0}.library-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-name img{width:28px;height:28px;object-fit:cover;border-radius:6px}.library-row>span{color:var(--muted);font-size:13px}.library-row-menu{right:0;min-width:140px}.library-card{display:flex;flex-direction:column;gap:8px;border:0;border-radius:16px;padding:12px;background:#1a1a1a;color:var(--text);text-align:left;transition:transform var(--dur-fast) var(--ease-ui),background-color var(--dur-fast) var(--ease-ui)}.library-card:hover{transform:translateY(-2px);background:#242424}.library-card-thumb{display:grid;place-items:center;height:120px;border-radius:12px;background:#111;color:var(--muted);overflow:hidden}.library-card-thumb img{width:100%;height:100%;border-radius:12px;object-fit:contain;object-position:center}.library-card strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-card small{color:var(--muted)}.library-editor textarea{min-height:220px;resize:vertical}.library-preview{width:min(720px,calc(100% - 32px));display:grid;gap:12px;padding:16px;border-radius:18px;background:#171717;animation:modal-in var(--dur-med) var(--ease-out)}.library-preview img{width:100%;max-height:70vh;object-fit:contain;border-radius:12px}.library-preview div{display:flex;align-items:center;justify-content:space-between;gap:12px}.plugins-page{min-height:100%;min-width:0;padding:36px 48px 96px;display:flex;flex-direction:column;gap:28px;box-sizing:border-box}.plugins-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.plugins-head h1{margin:0;font-size:32px;font-weight:600}.plugins-head p{margin:8px 0 0;color:var(--muted);font-size:14px}.plugin-section header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}.plugin-section h2{margin:0;font-size:18px;font-weight:600}.plugin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.plugin-card{display:flex;align-items:flex-start;gap:4px;min-height:88px;padding:12px 8px 12px 12px;border-radius:16px;background:#1a1a1a;transition:background-color var(--dur-fast) var(--ease-ui),transform var(--dur-fast) var(--ease-ui)}.plugin-card:hover,.plugin-card.is-installed{background:#242424}.plugin-card:hover{transform:translateY(-1px)}.plugin-card-main{display:flex;align-items:flex-start;gap:12px;min-width:0;flex:1;border:0;background:transparent;color:inherit;text-align:left;padding:0}.plugin-card-main p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.plugin-logo{flex:0 0 auto;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:700}.plugin-logo.is-lg{width:48px;height:48px;font-size:14px}.plugin-logo.is-sm{width:22px;height:22px;border-radius:6px;font-size:9px}.plugin-add{width:32px;height:32px;border:0;border-radius:999px;background:transparent;color:var(--muted);display:grid;place-items:center;transition:background-color var(--dur-fast) var(--ease-ui),color var(--dur-fast) var(--ease-ui)}.plugin-add:hover,.plugin-add.is-on{background:#333;color:var(--text)}span.plugin-add{cursor:default}.plugin-remove{width:32px;height:32px;border:0;border-radius:999px;background:transparent;color:var(--muted);display:grid;place-items:center;flex:0 0 auto;transition:background-color var(--dur-fast) var(--ease-ui),color var(--dur-fast) var(--ease-ui)}.plugin-remove:hover{background:#f8717124;color:var(--danger)}.plugin-detail{text-align:left}.plugin-detail-actions{display:flex;flex-wrap:wrap;gap:8px}.composer-shell{position:relative}.plugin-mention{position:absolute;left:12px;right:12px;bottom:calc(100% + 8px);z-index:4;display:grid;gap:2px;padding:6px;border-radius:14px;background:#2f2f2f;box-shadow:0 12px 32px #0006;animation:fade-up var(--dur-fast) var(--ease-out)}.plugin-mention button{display:flex;align-items:center;gap:8px;width:100%;border:0;background:transparent;color:var(--text);text-align:left;border-radius:10px;padding:8px 10px}.plugin-mention button:hover{background:#3a3a3a}.projects-page{flex:1;min-height:0;min-width:0;height:100%;padding:36px 48px 24px;display:flex;flex-direction:column;gap:24px;overflow:hidden}.projects-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.projects-head h1{margin:0;font-size:32px;font-weight:600}.projects-head p{margin:8px 0 0;color:var(--muted);font-size:13px}.projects-head .text-btn+h1{margin-top:8px}.projects-head-actions{display:flex;align-items:center;gap:10px}.project-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:360px;color:var(--muted)}.project-list{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:6px}.project-row{display:flex;align-items:center;gap:4px;border-radius:16px;padding:4px 8px 4px 4px;transition:background-color var(--dur-fast) var(--ease-ui)}.project-row:hover,.project-row.is-active{background:#1f1f1f}.project-row-main{display:grid;grid-template-columns:auto minmax(0,1fr) 180px;align-items:center;gap:12px;flex:1;min-width:0;border:0;background:transparent;color:inherit;text-align:left;padding:10px 8px}.project-row-main p,.project-row-main span{margin:4px 0 0;color:var(--muted);font-size:13px}.project-detail{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:16px;min-height:0;flex:1}.project-tree{overflow:auto;border-radius:16px;background:#111;padding:8px}.project-tree-node{min-width:0}.project-file{display:flex;align-items:center;gap:6px;width:100%;overflow:hidden;border:0;background:transparent;color:var(--muted);text-align:left;border-radius:8px;padding:6px 8px;font-size:12px}.project-file-spacer{width:14px;flex:0 0 auto}.project-file-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-file svg{flex:0 0 auto}.project-file.is-dir{color:#cfcfcf}.project-file:hover,.project-file.is-active{background:#1f1f1f;color:var(--text)}.project-preview{margin:0;overflow:auto;border-radius:16px;background:#111;color:#d4d4d4;padding:16px;white-space:pre-wrap;font-size:12px;line-height:1.5}.panel{width:min(860px,calc(100% - 80px));margin:48px auto 56px}.panel-head h2,.desktop-only h2{margin:0 0 8px}.desktop-only .primary-btn{display:inline-flex;margin-top:16px;text-decoration:none}.setting-block,.forum-card,.plan-card,.compose-post,.forum-detail{margin-top:20px;padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:#111;transition:background-color var(--dur-fast) var(--ease-ui),border-color var(--dur-fast) var(--ease-ui),transform var(--dur-fast) var(--ease-ui)}.setting-block label{display:block;margin-top:10px;color:var(--muted);font-size:13px}.project-bind-status{display:flex;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;border-radius:12px;background:#1a1a1a}.project-bind-ico{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#2a2a2a;color:var(--text);flex:0 0 auto}.project-bind-status strong{display:block;font-size:14px}.project-bind-status small{display:block;margin-top:2px;color:var(--muted);font-size:12px}.project-bind-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.plan-card-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 10px}.plan-card-head strong{font-size:16px}.plan-card-head span{color:var(--muted);font-size:13px}.plan-card p{margin:8px 0 12px;color:var(--muted);font-size:13px;line-height:1.45}.plan-actions{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:16px}.plan-actions .hint{margin:0}.toolbar,.compose-post,.forum-detail form{display:grid;gap:8px}.modal-backdrop{position:fixed;inset:0;background:#0000008c;display:grid;place-items:center;z-index:20;animation:fade-in var(--dur-med) var(--ease-ui)}.modal-card{width:min(420px,calc(100% - 32px));background:#171717;border:1px solid var(--line);border-radius:18px;padding:22px;display:grid;gap:10px;animation:modal-in var(--dur-med) var(--ease-out)}.modal-card h2{margin:0}.modal-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.5}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.danger-btn{border:0;border-radius:999px;padding:8px 16px;background:#f871712e;color:#fca5a5;font-weight:600;transition:background-color var(--dur-fast) var(--ease-ui),color var(--dur-fast) var(--ease-ui)}.danger-btn:hover:not(:disabled){background:#f8717147;color:#fecaca}.danger-btn:disabled{opacity:.55;cursor:not-allowed}.form-error{color:var(--danger)}[data-tip]{position:relative}[data-tip]:after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%) translateY(4px);padding:5px 8px;border-radius:8px;background:#0d0d0d;color:var(--text);font-size:12px;line-height:1.2;white-space:nowrap;opacity:0;pointer-events:none;box-shadow:0 0 0 1px #ffffff14;transition:opacity var(--dur-fast) var(--ease-ui),transform var(--dur-fast) var(--ease-ui);z-index:6}[data-tip]:hover:after,[data-tip]:focus-visible:after{opacity:1;transform:translate(-50%) translateY(0)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes bubble-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}@keyframes busy-bounce{0%,80%,to{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes composer-receive{0%{box-shadow:0 0 0 1px transparent}40%{box-shadow:0 0 0 2px #3b82f673,0 10px 28px #00000059}to{box-shadow:0 0 0 1px #ffffff29}}@media (max-width: 900px){.shell{grid-template-columns:260px minmax(0,1fr)}.shell.collapsed{grid-template-columns:52px minmax(0,1fr)}.suggest-list.is-cards{grid-template-columns:1fr}.library-page,.plugins-page,.projects-page{padding:24px 20px 72px}.library-head,.library-toolbar{flex-direction:column;align-items:stretch}.library-head-actions,.library-tools,.library-tabs{flex-wrap:wrap}.library-search{width:100%}.plugin-grid{grid-template-columns:1fr}.plugins-head{flex-direction:column}.plugins-head,.projects-head,.projects-head-actions{flex-direction:column;align-items:stretch}.project-detail,.project-row-main{grid-template-columns:1fr}.library-table-head,.library-row{grid-template-columns:28px minmax(0,1fr) 40px}.library-table-head span:nth-child(2),.library-table-head span:nth-child(3),.library-row>span{display:none}.plan-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
