*{box-sizing:border-box}html{height:100%}body{margin:0;background:#0d0f13;color:#eff2f5;font-family:Inter,system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;height:100%;overflow:hidden}.layout{display:flex;height:100vh}aside{width:238px;background:#14171d;border-right:1px solid #282e39;display:flex;flex-direction:column;overflow:hidden;transition:width .25s cubic-bezier(.4,0,.2,1)}.aside-scroll{flex:1;overflow-y:auto;padding:22px 13px;display:flex;flex-direction:column;gap:9px;scrollbar-width:thin;scrollbar-color:#3a4658 transparent}.aside-scroll::-webkit-scrollbar{width:5px}.aside-scroll::-webkit-scrollbar-track{background:transparent}.aside-scroll::-webkit-scrollbar-thumb{background:#3a4658;border-radius:3px}.aside-scroll::-webkit-scrollbar-thumb:hover{background:#4f5d72}.aside-scroll::-webkit-scrollbar-button{display:none}aside.collapsed{width:64px}aside.collapsed .aside-scroll{padding:22px 4px}aside.collapsed .tab{display:flex;align-items:center;justify-content:center;padding:12px 4px;overflow:hidden;font-size:20px}aside.collapsed .tab-text{display:none}aside.collapsed .userbar b,aside.collapsed .userbar small,aside.collapsed .userbar button{display:none}aside.collapsed .userbar{text-align:center;padding:10px 4px;font-size:0}aside.collapsed .userbar::before{display:block}.brand{font-weight:800;font-size:18px;letter-spacing:.2px;padding:4px 10px 25px}aside.collapsed .brand{text-align:center;padding:4px 0 25px;font-size:20px}aside.collapsed .brand-text{display:none}.tab{padding:12px;border:1px solid transparent;border-radius:12px;background:none;color:#c7cdd8;text-align:left;font-weight:700;cursor:pointer}.tab:hover,.tab.active{background:#242a35;border-color:#343d4d;color:#fff}main{flex:1;padding:30px 36px 0;max-width:none;overflow:hidden;display:flex;flex-direction:column}.page{display:none}.page.active{display:flex;flex-direction:column;flex:1;overflow-y:auto;overflow-x:hidden}#archive.page.active{overflow-y:auto}header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:20px}h1{font-size:29px;margin:0 0 7px}h2{font-size:17px;margin:0 0 12px}p{color:#a4adbb;margin:0;line-height:1.55}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.card{background:#151820;border:1px solid #2b3240;border-radius:16px;padding:18px;margin-bottom:18px}label{display:block;font-size:13px;font-weight:700;margin-bottom:12px}input,textarea,select,button{font:inherit}input,textarea,select{width:100%;margin-top:7px;background:#0e1117;color:#eef1f5;border:1px solid #363e4c;border-radius:10px;padding:10px 12px;outline:none}textarea{resize:vertical}input:focus,textarea:focus,select:focus{border-color:#cfee63;box-shadow:0 0 0 3px #cfee6324}.quick{border-top:1px solid #2a313d;padding-top:13px}.quick b{font-size:12px;color:#abb5c6}.quick div{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.quick button{border:1px solid #3b4556;background:#10141a;color:#dce3ef;border-radius:9px;padding:7px 10px;cursor:pointer;font-size:12px}.quick button.active{border-color:#9eff00!important;color:#9eff00!important;background:#14181f}.drop{min-height:110px;border:1px dashed #485467;border-radius:12px;background:#10131a;display:flex;align-items:center;justify-content:center;text-align:center;color:#aeb9ca;position:relative;cursor:pointer}.drop input{position:absolute;inset:0;opacity:0;cursor:pointer}.assets{margin-top:12px;display:flex;flex-direction:column;gap:9px}.asset{display:grid;grid-template-columns:56px 1fr 190px 34px;align-items:center;gap:10px;padding:8px;background:#0e1117;border:1px solid #2e3644;border-radius:12px}.thumb{width:56px;height:56px;border-radius:8px;background:#202733;display:grid;place-items:center;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover}.asset small{display:block;color:#8793a5;margin-top:3px}.asset input{margin:0}.asset button{width:32px;height:32px;border-radius:8px;border:1px solid #5a3138;color:#ffb8c0;background:#25171b;cursor:pointer;display:grid;place-items:center;padding:0;font-size:18px;line-height:1}.hint{font-size:12px;color:#98a3b4}.code,pre{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.code{min-height:120px}pre{background:#0c0f14;border:1px solid #29313e;padding:14px;border-radius:12px;max-height:290px;overflow:auto;white-space:pre-wrap;word-break:break-word}.primary{border:0;background:#dfff6d;color:#162000;border-radius:11px;padding:11px 15px;font-weight:800;cursor:pointer}.result{margin-top:16px}.result img,.result video{display:block;max-width:100%;max-height:560px;border-radius:12px;border:1px solid #303949;margin:12px 0}.result a{color:#e6ff8a}.badge{display:inline-block;padding:4px 9px;background:#24301a;color:#e6ff98;border:1px solid #425527;border-radius:99px;font-size:12px;font-weight:700}.versions{display:grid;gap:12px}.version{background:#161a22;border:1px solid #2e3745;border-radius:14px;padding:15px}.version-head{display:flex;gap:13px;justify-content:space-between;align-items:center}.version small{color:#8e9bad}.version button{border:1px solid #3f4a5c;background:#11151c;color:#e5ebf6;border-radius:9px;padding:7px 9px;cursor:pointer}.chat-panel{position:fixed;right:0;top:0;height:100vh;width:min(420px,95vw);background:#171a21;border-left:1px solid #384150;box-shadow:-18px 0 45px #0008;display:flex;flex-direction:column;transform:translateX(105%);transition:.25s;z-index:20}.chat-panel.open{transform:none}.chat-head{display:flex;justify-content:space-between;align-items:center;padding:18px;border-bottom:1px solid #2e3744}.chat-head small{display:block;color:#94a1b2;font-size:11px;margin-top:3px}.chat-head button{font-size:24px;color:#c7d0dd;background:none;border:0;cursor:pointer}.chat-modes{display:flex;gap:7px;padding:10px;border-bottom:1px solid #2b3442;overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.chat-modes::-webkit-scrollbar{display:none}.mode{white-space:nowrap;border:1px solid #3a4658;background:#11151c;color:#cbd3df;padding:8px 10px;border-radius:10px;cursor:pointer;font-size:12px}.mode.active{border-color:#9eff00!important;color:#9eff00!important;background:#14181f}.chat-messages{flex:1;overflow:auto;padding:15px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin;scrollbar-color:#3a4658 transparent}.chat-messages::-webkit-scrollbar{width:5px}.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb{background:#3a4658;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#4f5d72}.chat-messages::-webkit-scrollbar-button{display:none}.bubble{max-width:90%;padding:11px 12px;border-radius:13px;line-height:1.55;white-space:pre-wrap}.bubble.user{align-self:flex-end;background:#31415c;color:#f5f8ff}.bubble.assistant{align-self:flex-start;background:#242a33;color:#e8edf5}.chat-attachments{display:flex;gap:8px;padding:0 15px;overflow:auto}.chat-attachments img{width:55px;height:55px;object-fit:cover;border-radius:8px;border:1px solid #4a5669}.chat-input{padding:14px;border-top:1px solid #2d3541}.chat-input textarea{margin:0}.chat-actions{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.attach{margin:0;color:#b7c1d1;font-weight:600;cursor:pointer}.attach input{display:none}.chat-fab{position:fixed;right:28px;bottom:24px;z-index:12;border:1px solid #ccec6d;background:#1e2817;color:#ecffad;border-radius:999px;padding:12px 15px;font-weight:800;box-shadow:0 12px 30px #0008;cursor:pointer}.chat-fab span{margin-left:7px}@media(max-width:900px){aside{width:65px;padding:15px 7px}.tab{font-size:0}.tab{padding:12px;text-align:center}.tab::first-letter{font-size:19px}.health{display:none}main{padding:22px 15px}.grid2{grid-template-columns:1fr}.asset{grid-template-columns:50px 1fr 130px 32px}.chat-fab span{display:none}}
/* v8 quick controls */
.quick-controls{display:flex;flex-direction:column;gap:10px}.quick-row{display:flex!important;align-items:center;gap:7px;flex-wrap:wrap}.quick-row>span{width:78px;flex:0 0 78px;color:#97a5b8;font-size:12px;font-weight:700}.quick-row button{min-width:52px}.quick-row button.active{border-color:#9eff00!important;color:#9eff00!important;box-shadow:0 0 0 2px rgba(158,255,0,.18)}

.muted-note{font-size:13px;color:#b8bfcc;margin:0 0 10px 0;padding:8px 10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:10px;}

.processing-card{display:flex;align-items:center;gap:16px;padding:16px 18px;margin:10px 0 14px;border:1px solid rgba(181,255,115,.18);background:linear-gradient(135deg,rgba(21,27,36,.96),rgba(15,21,30,.96));border-radius:16px;box-shadow:inset 0 0 0 1px rgba(118,197,255,.06),0 12px 28px rgba(0,0,0,.28);overflow:hidden;position:relative}
.processing-card::after{content:'';position:absolute;inset:auto -25% -40% -25%;height:120%;background:radial-gradient(circle at center,rgba(110,244,255,.08),transparent 55%);pointer-events:none}
.processing-visual{position:relative;width:56px;height:56px;flex:0 0 56px;display:grid;place-items:center}
.tech-ring,.ring-2{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(132,241,255,.2);border-top-color:#8af8ff;border-right-color:#d8ff73;animation:spinGlow 1.6s linear infinite;box-shadow:0 0 16px rgba(110,244,255,.15)}
.ring-2{inset:7px;border-width:2px;animation-duration:1.1s;animation-direction:reverse;border-top-color:#d8ff73;border-right-color:#79d9ff;opacity:.85}
.tech-core{width:12px;height:12px;border-radius:50%;background:radial-gradient(circle,#f2ffb0 0%,#b8ff79 35%,#57d2ff 100%);box-shadow:0 0 18px rgba(135,242,255,.45),0 0 28px rgba(197,255,105,.2)}
.processing-title{font-size:15px;font-weight:800;color:#edf7ff;letter-spacing:.2px}
.processing-sub{margin-top:4px;font-size:13px;color:#a8b9ca;display:flex;align-items:center;gap:8px;text-transform:none}
.processing-text{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.processing-card.paused{border-color:rgba(255,107,107,.18);background:linear-gradient(135deg,rgba(36,25,25,.96),rgba(21,15,15,.96));box-shadow:inset 0 0 0 1px rgba(255,107,107,.06),0 12px 28px rgba(0,0,0,.28)}
.processing-card.paused .paused-core{background:radial-gradient(circle,#ffd4d4 0%,#ff8c8c 35%,#ff6b6b 100%);box-shadow:0 0 18px rgba(255,107,107,.45),0 0 28px rgba(255,140,140,.2)}
.processing-pause,.processing-resubmit{border:1px solid #3b536a;background:#0f1720;color:#c9e2ff;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:700;cursor:pointer;transition:.15s}
.processing-pause:hover{border-color:#f5a623;color:#f5a623;background:#14181f}
.processing-resubmit{border-color:#5a6b3a;background:#1a2110;color:#e6ff98}
.processing-resubmit:hover{border-color:#9eff00;color:#9eff00;background:#151b0d}
.typing-dots{display:inline-flex;gap:5px;align-items:center}
.typing-dots i{width:6px;height:6px;border-radius:50%;background:linear-gradient(180deg,#dfff79,#7fe7ff);display:block;animation:bounceDot 1.2s infinite ease-in-out}
.typing-dots i:nth-child(2){animation-delay:.15s}.typing-dots i:nth-child(3){animation-delay:.3s}
@keyframes spinGlow{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes bounceDot{0%,80%,100%{transform:translateY(0);opacity:.45}40%{transform:translateY(-5px);opacity:1}}

.chat-apply-row{display:flex;gap:8px;padding:2px 0 10px;flex-wrap:wrap}.chat-apply{border:1px solid #3d536a;background:#101720;color:#d9eeff;border-radius:10px;padding:8px 10px;font-size:12px;font-weight:700;cursor:pointer}.chat-apply:hover{border-color:#9eff00!important;color:#9eff00!important;background:#14181f}

button:not(.primary):not(.tab):not(.mode):not(.chat-fab):not(.chat-open):not(.asset button){border:1px solid #3b4556;background:#10141a;color:#dce3ef;border-radius:10px;padding:10px 12px;cursor:pointer}
button.chat-open{border:1px solid #3d536a;background:#101720;color:#d9eeff;border-radius:12px;padding:10px 12px;font-weight:700;cursor:pointer}
.stack-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.persona-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.persona-form button{grid-column:1/-1}
.persona-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.persona-card{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:12px;background:#0f1319;border:1px solid #2e3847;border-radius:12px}.persona-card small{display:block;color:#90a0b4;margin-top:4px;line-height:1.45}.persona-actions{display:flex;gap:8px;flex-wrap:wrap}.danger-lite{border-color:#5a3138!important;color:#ffb8c0!important;background:#25171b!important}
.plan-list{display:flex;flex-direction:column;gap:12px;margin-top:14px}.plan-card{background:#0f1319;border:1px solid #2b3441;border-radius:14px;padding:14px}.plan-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}.plan-head small{display:block;color:#8fa0b4;margin-top:5px;line-height:1.45}.plan-card textarea{margin-top:0}.plan-meta{font-size:12px;color:#93a3b8;margin-top:8px}.plan-meta a{color:#e6ff8a}.is-running{box-shadow:0 0 0 2px rgba(144,214,255,.08)}
.asset-icon{font-size:24px}
code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
@media(max-width:900px){.persona-form{grid-template-columns:1fr}.persona-card{flex-direction:column}.stack-actions{flex-direction:column}}

.persona-upload{display:flex;align-items:center;justify-content:center;padding:12px;border:1px dashed #3d495c;border-radius:12px;background:#0e131a;color:#b9c4d3;font-size:13px;cursor:pointer}.persona-upload input{display:none}
.preview-card{align-items:center}.persona-thumb{width:72px;height:72px;flex:0 0 72px;border-radius:14px;overflow:hidden;border:1px solid #344055;background:#0c1117;display:grid;place-items:center}.persona-thumb img{width:100%;height:100%;object-fit:cover}.persona-placeholder{font-size:30px;color:#a9bed8}.persona-main{flex:1;min-width:0}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;word-break:break-all;color:#8ab8ff}
#personaList{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:1100px){#personaList{grid-template-columns:1fr 1fr}}

.userbar{margin:-10px 8px 12px;padding:10px;border:1px solid #2e3948;border-radius:12px;background:#0f1319;color:#cdd7e5;font-size:12px;position:relative}.userbar::before{content:'👤';display:none;font-size:20px}.userbar b{display:block;color:#eff6ff;margin-bottom:3px}.userbar small{display:block;color:#8e9caf;margin-bottom:8px}.userbar button{width:100%;padding:7px 8px!important;font-size:12px!important}
.login-body{min-height:100vh;background:radial-gradient(circle at 50% -20%,rgba(135,242,255,.12),transparent 34%),linear-gradient(135deg,#0a0d12,#11151d 55%,#0a0d12);display:grid;place-items:center;padding:24px}.login-shell{width:min(460px,100%)}.login-card{background:rgba(21,24,32,.92);border:1px solid #2f3b4c;border-radius:22px;padding:28px;box-shadow:0 24px 80px #0009;position:relative;overflow:hidden}.login-card::after{content:'';position:absolute;inset:auto -30% -55% -30%;height:90%;background:radial-gradient(circle,rgba(223,255,109,.09),transparent 60%);pointer-events:none}.login-brand{font-weight:900;color:#ecffad;margin-bottom:18px;letter-spacing:.3px}.login-card h1{font-size:27px}.login-wecom{display:block;text-align:center;margin:22px 0 18px;padding:14px 16px;border-radius:14px;background:#dfff6d;color:#162000;font-weight:900;text-decoration:none}.login-divider{display:flex;align-items:center;gap:10px;margin:18px 0;color:#7f8ba0;font-size:12px}.login-divider::before,.login-divider::after{content:'';height:1px;background:#2d3541;flex:1}.dev-login-box{display:grid;gap:10px}.dev-login-box input{margin-top:0}.dev-login-box small{color:#8d99aa;line-height:1.5}.login-msg{margin-top:12px;color:#ffb8c0;font-size:13px;min-height:20px}

/* v15 Doubao TTS */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.tight-grid{gap:10px}.inline-check{display:flex;align-items:center;gap:8px;margin:10px 0;color:#d6dfec;font-weight:700}.inline-check input{width:auto;margin:0}.result audio{width:100%;margin:8px 0 12px}.result h3{margin:14px 0 8px;color:#eef6ff}.result pre{max-height:320px;overflow:auto}@media(max-width:900px){.grid3{grid-template-columns:1fr}}
.hidden{display:none!important}
#sModelHint{margin:-4px 0 12px;color:#9ba8ba;font-size:12px;line-height:1.55}

/* ===== Toast 通知 ===== */
.toast-container{position:fixed;top:20px;left:50%;transform:translateX(-50%);z-index:999;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:12px;font-size:14px;font-weight:700;pointer-events:auto;animation:toastIn .3s ease-out;box-shadow:0 8px 32px rgba(0,0,0,.45);backdrop-filter:blur(12px);max-width:420px;word-break:break-word}
.toast.warn{background:rgba(255,160,0,.12);border:1px solid rgba(255,160,0,.35);color:#ffb94e}
.toast.error{background:rgba(255,77,79,.12);border:1px solid rgba(255,77,79,.35);color:#ff7b7d}
.toast.info{background:rgba(158,255,0,.08);border:1px solid rgba(158,255,0,.25);color:#c3ff6b}
.toast-icon{font-size:18px;flex-shrink:0}
.toast-msg{flex:1;min-width:0}
.toast.fade-out{animation:toastOut .25s ease-in forwards}
@keyframes toastIn{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}
@keyframes toastOut{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-12px)}}

/* ===== 表单字段验证高亮 ===== */
.field-error{border-color:#ff4d4f!important;box-shadow:0 0 0 3px rgba(255,77,79,.12)!important}
.field-error-msg{display:block;margin-top:4px;font-size:11px;color:#ff7b7d;font-weight:600}
.pills-error{border:1px solid #ff4d4f;border-radius:10px;padding:6px 8px;background:rgba(255,77,79,.04)}

/* image2 ratio modal */
.modal{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center}
.modal.hidden{display:none!important}
.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.65)}
.modal-content{position:relative;background:#1a1d25;border:1px solid #3a4250;border-radius:18px;padding:20px;min-width:320px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;font-size:16px;color:#eef2f7}
.modal-head .required{color:#ff6b6b}
.modal-close{background:transparent;border:0;color:#b0bac9;font-size:22px;cursor:pointer;padding:0 4px}
.modal-close:hover{color:#fff}
.image-preview-content{max-width:90vw;max-height:90vh;padding:0;overflow:hidden;background:#0f1116;border-color:#3a4250;border-radius:18px}
.image-preview-content .modal-head{padding:14px 18px;border-bottom:1px solid #282e39;background:#1a1d25;margin:0}
.image-preview-body{display:flex;align-items:center;justify-content:center;padding:14px;max-height:calc(90vh - 60px);overflow:auto;background:#0f1116}
.image-preview-body img{max-width:100%;max-height:calc(90vh - 90px);object-fit:contain;border-radius:10px}
.image2-ratio-icons{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.image2-ratio-icons button{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 8px;border:1px solid #3b4556;background:#10141a;color:#dce3ef;border-radius:12px;cursor:pointer;font-size:13px;font-weight:700}
.image2-ratio-icons button.active{border-color:#9eff00!important;color:#9eff00!important;background:#14181f}
.image2-ratio-icons button:hover{border-color:#9eff00}
.image2-ratio-icons .ratio-icon{width:48px;max-width:100%;border:2px solid currentColor;border-radius:6px;background:transparent}

/* image2 page */

.image2-layout{display:grid;grid-template-columns:480px 1fr;gap:18px;flex:1;min-height:0;overflow:hidden}
.image2-left{width:auto!important;display:flex;flex-direction:column;gap:0;overflow:hidden;min-height:0}
.left-scrollable{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;overflow-y:auto;padding-right:4px}
.left-scrollable::-webkit-scrollbar{width:6px}
.left-scrollable::-webkit-scrollbar-track{background:transparent}
.left-scrollable::-webkit-scrollbar-thumb{background:#2b3240;border-radius:3px}
.left-scrollable::-webkit-scrollbar-thumb:hover{background:#3b4556}

.image2-card{padding:8px 12px;margin-bottom:0}
.image2-card .drop{min-height:50px;font-size:13px}
.image2-assets{margin-top:6px}
.image2-assets .muted-note{margin:0}
.prompt-card{padding:8px 12px}
.prompt-card label{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;color:#c7d0dd}
.prompt-card label small{color:#8d99ab;font-size:12px;font-weight:500}
.prompt-card textarea{margin-top:0;min-height:60px;resize:none;overflow:hidden;field-sizing:content}
.image2-generate{flex-shrink:0;margin-top:10px}
.compact-card{padding:8px 12px}
.image2-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.image2-row-title{display:block;margin-bottom:6px;color:#c7d0dd;font-size:13px}
.image2-value{font-size:13px;color:#b6c0cf}
.image2-pills{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.image2-pills button{flex:unset;padding:9px 8px;border:1px solid #3b4556;background:#10141a;color:#dce3ef;border-radius:10px;cursor:pointer;font-size:13px;font-weight:700}
#i2Ratios button:not(#i2RatioMore){display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}
#i2Ratios button:not(#i2RatioMore)::before{content:"";display:block;height:18px;aspect-ratio:1/1;border:2px solid currentColor;border-radius:3px;background:transparent}
#i2Ratios button[data-value="2:3"]::before{aspect-ratio:2/3}
#i2Ratios button[data-value="3:4"]::before{aspect-ratio:3/4}
#i2Ratios button[data-value="4:5"]::before{aspect-ratio:4/5}
#i2Ratios button[data-value="9:16"]::before{aspect-ratio:9/16}
.image2-pills button.active{border-color:#9eff00!important;color:#9eff00!important;background:#14181f;box-shadow:0 0 0 2px rgba(158,255,0,.18)}
.image2-generate{width:100%;padding:13px;border:0;border-radius:12px;background:#dfff6d;color:#162000;font-weight:900;cursor:pointer;margin-top:4px;font-size:15px}
.image2-generate:hover{background:#ecff82}

.image2-right{display:flex;flex-direction:column;gap:14px;overflow-y:auto;padding-right:4px;min-height:0;will-change:transform;transform:translateZ(0)}
.image2-right::-webkit-scrollbar{width:6px}
.image2-right::-webkit-scrollbar-track{background:transparent}
.image2-right::-webkit-scrollbar-thumb{background:#2b3240;border-radius:3px}
.image2-right::-webkit-scrollbar-thumb:hover{background:#3b4556}
.image2-topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#151820;border:1px solid #2b3240;border-radius:14px;padding:10px 14px}
.image2-view-tabs{display:flex;gap:8px;background:#0e1117;border-radius:10px;padding:4px}
.image2-view-tabs button{padding:8px 16px;border:0;background:transparent;color:#9ba8bd;border-radius:8px;cursor:pointer;font-weight:700;font-size:13px}
.image2-view-tabs button.active{background:#2b3441;color:#eff6ff}
.image2-filters{display:flex;gap:14px}
.image2-filters .inline-check{margin:0;color:#b0bac9;font-size:13px}

.image2-filterbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.image2-filterbar select{width:auto;min-width:90px;background:#151820;color:#dce3ef;border:1px solid #2b3240;border-radius:10px;padding:8px 10px;font-size:13px}
.image2-categories{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.image2-categories button{padding:7px 14px;border:1px solid #2b3240;background:#151820;color:#b0bac9;border-radius:99px;cursor:pointer;font-size:13px;font-weight:700}
.image2-categories button.active{border-color:#9eff00!important;color:#9eff00!important;background:#14181f}
.image2-type-tabs{display:flex;gap:8px;background:#151820;border-radius:10px;padding:4px;border:1px solid #2b3240}
.image2-type-tabs button{padding:7px 12px;border:0;background:transparent;color:#9ba8bd;border-radius:8px;cursor:pointer;font-weight:700;font-size:13px}
.image2-type-tabs button.active{background:#2b3441;color:#eff6ff}

.image2-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;contain:layout style}
.image2-card-item{position:relative;background:#1e2430;border:1px solid #2b3240;aspect-ratio:3/4;cursor:pointer;contain:layout style paint;border-radius:12px;overflow:hidden}
.image2-card-item img{width:100%;height:100%;object-fit:cover;display:block;border-radius:12px;image-rendering:auto;opacity:0;transition:opacity .3s}
.image2-card-item img.loaded{opacity:1}
.image2-card-item .log-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#5a6577;font-size:12px;font-weight:700;text-transform:uppercase}

/* 案例视频（悬停自动播放）：video 元素铺满卡片 */
.image2-card-item .image2-card-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;border-radius:12px;pointer-events:none;background:#0d1015}
.image2-card-label{position:absolute;top:8px;left:8px;padding:4px 8px;border-radius:6px;background:#000a;border:1px solid #ffffff20;color:#fff;font-size:11px;font-weight:700;pointer-events:none}
.image2-card-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.55));opacity:0;display:flex;align-items:flex-end;padding:10px;gap:8px;pointer-events:none}
.image2-card-item:hover .image2-card-overlay{opacity:1;pointer-events:auto}
.image2-card-overlay button{flex:1;padding:7px 6px;border-radius:8px;border:1px solid #ffffff40;background:#ffffff15;color:#fff;font-weight:700;cursor:pointer;font-size:12px}
.image2-card-overlay button:hover{background:#dfff6d;color:#162000;border-color:#dfff6d}

@media(max-width:1100px){.image2-layout{grid-template-columns:1fr}.left-scrollable{overflow:visible}.image2-left{overflow:visible}}

/* ===== 制作日志 / 历史记录（参考 nano 历史记录设计） ===== */
.archive-shell{display:grid;grid-template-columns:380px 1fr;gap:0;height:calc(100vh - 90px);min-height:520px;flex:1;overflow:hidden}
.archive-sidebar{display:flex;flex-direction:column;background:#14171d;border-right:1px solid #282e39;overflow:hidden}
.archive-list-head{padding:14px 16px;font-size:14px;font-weight:800;color:#eef3ff;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #282e39;flex-shrink:0}
.archive-list-arrow{color:#5a6577;font-size:12px}
.archive-detail{background:#0f1116;overflow:hidden;display:flex;flex-direction:column}
.archive-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:#5a6577;font-size:14px}

.logs-filterbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:10px 12px;background:#14171d;border-bottom:1px solid #1f2530;flex-shrink:0}
.logs-filterbar .log-filter{padding:6px 10px;border:1px solid #2b3240;background:#0e1117;color:#b0bac9;border-radius:8px;cursor:pointer;font-size:11px;font-weight:700;white-space:nowrap}
.logs-filterbar .log-filter.active{border-color:#9eff00!important;color:#9eff00!important;background:#14181f}
.logs-filterbar .log-filter:hover{color:#eef3ff;border-color:#556180}
.log-total{margin-left:auto;color:#5a6577;font-size:11px;padding-right:2px;white-space:nowrap}

/* 左侧列表容器（可滚动） */
.log-list{flex:1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:6px;padding:10px 12px;will-change:transform;transform:translateZ(0)}
.log-list::-webkit-scrollbar{width:5px}
.log-list::-webkit-scrollbar-track{background:transparent}
.log-list::-webkit-scrollbar-thumb{background:#2b3240;border-radius:3px}
.log-list::-webkit-scrollbar-thumb:hover{background:#3b4556}

/* 列表项：参考 nano-history-item 卡片设计 */
.log-item{display:grid;grid-template-columns:72px 1fr;gap:10px;align-items:center;padding:10px;border-radius:12px;background:#151820;border:1px solid transparent;cursor:pointer;transition:background .2s,border-color .2s;position:relative}
.log-item:hover{background:#1b1f27;border-color:#2b3240}
.log-item:hover .log-item-del{opacity:1;pointer-events:auto}
.log-item.active{background:#1e2816;border-color:#3d4a27}
.log-item-thumb{width:72px;height:72px;border-radius:10px;overflow:hidden;background:#0e1117;border:1px solid #2b3240;display:grid;place-items:center;position:relative;flex-shrink:0}
.log-item-thumb img{width:100%;height:100%;object-fit:cover}
.log-item-noimg{font-size:10px;color:#5a6577;display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.log-item-noimg svg{opacity:.4}
.log-item-del{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:1px solid rgba(255,77,79,.4);background:rgba(255,77,79,.15);color:#ff6b6b;font-size:14px;cursor:pointer;display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .15s;z-index:2;padding:0;line-height:1}
.log-item-del:hover{background:rgba(255,77,79,.3)}
.log-item-body{min-width:0;overflow:hidden}
.log-item-top{display:flex;align-items:center;gap:6px;margin-bottom:4px;flex-wrap:wrap}
.log-item-cat{font-size:10px;font-weight:800;color:#e6ff98;padding:2px 7px;background:#24301a;border:1px solid #425527;border-radius:99px;white-space:nowrap}
.log-item-status{font-size:10px;font-weight:700;white-space:nowrap}
.log-item-count{font-size:10px;color:#8d99ab;margin-left:auto;white-space:nowrap}
.log-item-prompt{color:#c9d0dc;font-size:12px;line-height:1.35;margin:0 0 3px;word-break:break-word;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.log-item-meta{font-size:10px;color:#5a6577}

/* 滚动加载提示 */
.log-list-loader{padding:12px;text-align:center;color:#5a6577;font-size:12px;flex-shrink:0}
.log-list-loader span{animation:pulse 1.5s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.4}50%{opacity:1}}

/* ===== 右侧详情面板（参考 nano-history-detail 设计） ===== */
.archive-detail-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;background:#14171d;border-bottom:1px solid #282e39;flex-shrink:0}
.archive-detail-badges{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}
.archive-detail-cat{font-size:12px;font-weight:800;color:#e6ff98;padding:4px 10px;background:#24301a;border:1px solid #425527;border-radius:99px;white-space:nowrap}
.archive-detail-model{font-size:11px;color:#9ba8bd;padding:3px 8px;border:1px solid #3b4556;border-radius:6px;background:#0e1117;white-space:nowrap}
.archive-detail-time{color:#9ba8bd;font-size:12px;white-space:nowrap}
.archive-detail-meta{display:flex;align-items:center;gap:10px;color:#9ba8bd;font-size:11px;flex-shrink:0}
.archive-detail-taskid{font-size:10px;color:#5a6577;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,monospace}
.archive-detail-ratio{padding:3px 8px;border:1px solid #3b4556;border-radius:6px;background:#0e1117;color:#dce3ef;font-weight:700;white-space:nowrap}
.archive-detail-quality{padding:3px 8px;border:1px solid #3b4556;border-radius:6px;background:#0e1117;color:#dce3ef;font-weight:700;white-space:nowrap}
.archive-detail-count{padding:3px 8px;border:1px solid #3b4556;border-radius:6px;background:#0e1117;color:#dce3ef;font-weight:700;white-space:nowrap}
.archive-detail-refresh{background:transparent;border:0;color:#9ba8bd;font-size:16px;cursor:pointer;padding:4px 6px;border-radius:6px}
.archive-detail-refresh:hover{background:#2b3240;color:#fff}

/* 详情主体 */
.archive-detail-body{flex:1;display:flex;flex-direction:row;overflow:hidden;min-height:0}
.archive-detail-main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}
.archive-detail-stage{flex:1;display:flex;align-items:center;justify-content:center;position:relative;background:#000;overflow:auto;min-height:0;padding:24px}
.archive-detail-stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px}
.archive-detail-stage video{max-width:100%;max-height:100%;border-radius:12px}
.archive-detail-noimg{color:#5a6577;font-size:14px;display:flex;flex-direction:column;align-items:center;gap:10px}
.archive-detail-processing{display:flex;flex-direction:column;align-items:center;gap:16px;position:relative}
.archive-detail-processing-text{color:#9ba8bd;font-size:14px;font-weight:700}
.archive-detail-actions{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);display:flex;gap:10px;padding:8px 12px;background:rgba(15,17,22,.85);border:1px solid rgba(255,255,255,.12);border-radius:999px;backdrop-filter:blur(8px);z-index:2}
.archive-detail-actions button{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.1);color:#fff;font-size:16px;cursor:pointer;transition:background .2s;display:flex;align-items:center;justify-content:center;line-height:1;padding:0}
.archive-detail-actions button:hover{background:#dfff6d;color:#162000;border-color:#dfff6d}

/* 底部信息区 */
.archive-detail-prompt{padding:14px 18px;background:#14171d;border-top:1px solid #282e39;flex-shrink:0}
.archive-detail-prompt-label{font-size:11px;font-weight:800;color:#9ba8bd;text-transform:uppercase;margin-bottom:6px}
.archive-detail-prompt p{color:#dce3ef;font-size:13px;line-height:1.5;margin:0 0 10px;word-break:break-word}
.archive-detail-prompt-btns{display:flex;gap:8px;flex-wrap:wrap}
.archive-detail-copy{padding:7px 14px;border:1px solid #3b4556;background:#0e1117;color:#dce3ef;border-radius:10px;cursor:pointer;font-size:12px;font-weight:700}
.archive-detail-copy:hover{border-color:#9eff00;color:#9eff00}
.archive-detail-use{padding:7px 14px;border:1px solid #3d536a;background:#101720;color:#d9eeff;border-radius:10px;cursor:pointer;font-size:12px;font-weight:700}
.archive-detail-use:hover{border-color:#9eff00!important;color:#9eff00!important;background:#14181f}

/* 左侧参考图面板 */
.archive-detail-refs{width:200px;flex-shrink:0;background:#14171d;border-right:1px solid #282e39;padding:16px 14px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}
.archive-detail-refs-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.archive-detail-refs-label{font-size:12px;font-weight:800;color:#e6ff98}
.archive-detail-refs-count{font-size:11px;color:#9ba8bd;padding:2px 7px;border:1px solid #3b4556;border-radius:99px;background:#0e1117}
.archive-detail-refs-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.archive-detail-ref-item{display:flex;flex-direction:column;align-items:center;gap:4px}
.archive-detail-ref{width:100%;aspect-ratio:1/1;border-radius:8px;overflow:hidden;background:#0e1117;border:1px solid #2b3240}
.archive-detail-ref img{width:100%;height:100%;object-fit:cover}
.archive-detail-ref-name{font-size:10px;color:#697685}

/* 多结果缩略图切换 */
.archive-detail-thumbs{display:flex;gap:8px;padding:10px 18px;background:#14171d;border-top:1px solid #282e39;overflow-x:auto;flex-shrink:0}
.archive-detail-thumb{width:52px;height:52px;border-radius:8px;object-fit:cover;border:2px solid transparent;cursor:pointer;background:#0e1117;flex-shrink:0}
.archive-detail-thumb.active{border-color:#9eff00}
.archive-detail-thumb:hover{border-color:#556180}

@media(max-width:1100px){
  .archive-shell{grid-template-columns:1fr;grid-template-rows:1fr 1fr;height:auto}
  .archive-sidebar{max-height:400px;border-right:0;border-bottom:1px solid #282e39}
  .archive-detail-refs{width:100%;border-right:0;border-bottom:1px solid #282e39;flex-direction:row;align-items:flex-start;flex-wrap:wrap;max-height:160px}
  .archive-detail-refs-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}
  .archive-detail-stage{min-height:300px}
}

.aside-toggle{flex-shrink:0;margin:9px 13px 13px;height:32px;border:1px solid #3a4658;background:#1a1f27;color:#c7cdd8;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:17px;padding:0;line-height:1;transition:background .2s,color .2s}.aside-toggle:hover{color:#fff;background:#242a35;border-color:#9eff00}aside.collapsed .aside-toggle{margin:9px 4px 13px;font-size:17px}

::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#3a4658;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#4f5d72}::-webkit-scrollbar-button{display:none}*{scrollbar-width:thin;scrollbar-color:#3a4658 transparent}
