:root{--bg:#0f0f14;--card:#17171f;--line:#2a2a36;--txt:#d6d9e2;--mut:#8b90a3;--acc:#7aa2f7}*{box-sizing:border-box}body{background:var(--bg);color:var(--txt);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;margin:0;padding:18px 16px}header h1{font-size:20px;margin:0 0 4px}.sub{font-size:12.5px;margin:0 0 14px;line-height:1.6}.empty,.sub{color:var(--mut)}.empty{font-size:14px;padding:30px 4px}.beian{margin:28px 0 0;padding:12px 0 2px;border-top:1px solid var(--line);text-align:center}.beian a{color:var(--mut);font-size:12px;text-decoration:none}.beian a:hover{color:var(--txt)}.skel{border-radius:8px;background:linear-gradient(90deg,var(--card) 25%,#1e1e28 45%,var(--card) 65%);background-size:200% 100%;animation:skel-pulse 1.2s ease infinite}.skel-tabs{height:34px;width:40%;margin:4px 0 24px}.skel-title{height:22px;width:30%;margin:0 0 10px}.skel-line{height:14px;width:80%;margin:0 0 18px}.skel-card{height:96px;margin:0 0 12px}@keyframes skel-pulse{to{background-position:-200% 0}}.login-wrap{min-height:calc(100vh - 36px);display:flex;align-items:center;justify-content:center}.login-card{width:320px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:26px 24px 22px}.login-card h1{font-size:18px;margin:0 0 4px}.login-card .sub{margin-bottom:14px}.login-card label{display:block;font-size:12.5px;color:var(--mut);margin:12px 0 6px}.login-card input{width:100%;padding:10px 12px;border-radius:9px;border:1px solid var(--line);background:#101018;color:var(--txt);font-size:14px;outline:none}.login-card input:focus{border-color:var(--acc)}.login-err{color:#e07070;font-size:12.5px;margin:10px 0 0;min-height:16px}.login-btn{width:100%;margin-top:12px;padding:10px 0;border:none;border-radius:9px;background:#2b3a5e;color:#fff;font-size:14px;cursor:pointer}.login-btn:disabled{opacity:.55;cursor:default}.topnav{gap:16px;margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--line)}.brand,.topnav{display:flex;align-items:center}.brand{gap:8px}.brand .logo{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;background:#2a2a36;color:#e0b055;border-radius:8px;font-weight:700;font-size:15px}.brand-name{font-weight:600;font-size:15px}.gameswitch{display:inline-flex;gap:2px;margin-left:10px;padding:2px;background:#1a1a24;border:1px solid var(--line);border-radius:8px}.gtab{color:var(--mut);font-size:12.5px;text-decoration:none;padding:3px 10px;border-radius:6px;transition:all .15s}.gtab:hover{color:var(--txt)}.gtab.on{color:#fff;background:#2b3a5e}.tabs{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.tab{color:var(--mut);font-size:14px;text-decoration:none;padding:7px 14px;border-radius:8px;transition:all .15s}.tab:hover{color:var(--txt);background:#1e1e28}.tab.active{color:#fff;background:#2b3a5e}.chartabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 18px;padding-bottom:10px;border-bottom:1px dashed var(--line)}.ctab-label{color:var(--mut);font-size:11.5px;letter-spacing:1px;margin-right:2px}.ctab{color:var(--mut);font-size:12.5px;text-decoration:none;padding:5px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);transition:all .15s}.ctab:hover{color:var(--txt);border-color:#3a3a4a}.ctab.on{color:#cfe0ff;background:#2b3a5e;border-color:#46618f;font-weight:600}.proto-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:14px;gap:14px}.proto-card{margin:0;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}.proto-card .thumb,.proto-card a,.proto-img{display:block}.proto-img{width:100%;background:#0a0a0f;aspect-ratio:1/1;object-fit:contain;cursor:zoom-in}.proto-card figcaption{display:block;padding:10px 12px;font-size:12.5px}.p-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.p-title{color:var(--acc);word-break:break-all}.p-style{color:#e0b055;white-space:nowrap;background:#26232a;padding:1px 7px;border-radius:20px;font-size:11.5px}.p-model{color:var(--mut);font-size:11.5px;margin-top:4px}.p-prompt{margin-top:6px;border-top:1px dashed var(--line);padding-top:6px}.p-prompt summary{cursor:pointer;color:var(--acc);font-size:12px}.call{margin-top:8px}.call summary{cursor:pointer;color:#7fb0d8}.call .pfull,.call summary{font-size:12px}.cap{text-align:center;word-break:break-all}.cap,.gif-meta{font-size:11px;color:var(--mut);margin-top:4px}.gif-meta{display:flex;gap:8px;justify-content:center;align-items:center}.gif-meta .linkish,.gif-meta a{color:var(--acc,#8ab4ff);text-decoration:none}.thumb{display:block;width:100%;cursor:zoom-in}.linkish,.thumb{padding:0;border:0;background:none}.linkish{font:inherit;cursor:pointer}.viewer{inset:0;z-index:50;flex-direction:column;justify-content:center;gap:10px;padding:56px 16px 16px;background:rgba(6,6,10,.94)}.viewer,.viewer-bar{position:fixed;display:flex;align-items:center}.viewer-bar{top:0;left:0;right:0;gap:8px;padding:10px 14px;background:linear-gradient(#0f0f14f2,#0f0f1400)}.viewer-name{margin-right:auto;min-width:0;color:var(--mut);font-size:12px;word-break:break-all}.viewer-btn{flex:0 0 auto;display:inline-block;color:var(--txt);background:#21212b;border:1px solid var(--line);border-radius:8px;padding:6px 12px;font-size:12.5px;font-family:inherit;text-decoration:none;cursor:pointer}.viewer-btn:hover{background:#2a2a36}.viewer-img{max-width:96vw;max-height:calc(100vh - 130px);object-fit:contain;background:#0a0a0f;border-radius:8px}.viewer-cap{color:var(--mut);font-size:12px;text-align:center;word-break:break-all}.pf-open{display:none}details[open]>summary>.pf-open{display:inline}details[open]>summary>.pf-shut{display:none}.proto-card{position:relative}.proto-card.picked{border-color:#e0b055;box-shadow:inset 0 0 0 1px #e0b055}.picked-badge{position:absolute;top:8px;left:8px;z-index:2;background:#e0b055;color:#17171f;font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px}.selbar{display:flex;flex-direction:column;gap:8px;margin:0 0 16px}.sel-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;background:#2a2413;border:1px solid #e0b055;border-radius:8px;padding:7px 12px}.sel-key{flex:0 0 auto;min-width:150px;color:#e8c56f;font-size:12.5px;font-weight:600}.sel-row select{flex:1 1 auto;min-width:0;background:#17171f;color:var(--txt);border:1px solid var(--line);border-radius:6px;padding:5px 8px;font-size:12.5px}.stylebar{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.chip{background:var(--card);border:1px solid var(--line);color:var(--mut);font-size:12.5px;padding:6px 14px;border-radius:20px;cursor:pointer;transition:all .15s}.chip:hover{color:var(--txt);border-color:#3a3a48}.chip.on{color:#fff;background:#2b3a5e;border-color:#2b3a5e}.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--card)}table{border-collapse:collapse;width:100%;min-width:1180px}td,th{border-bottom:1px solid var(--line);padding:10px;text-align:left;vertical-align:top;font-size:13px}thead th{position:-webkit-sticky;position:sticky;top:0;background:#1c1c26;color:var(--mut);font-weight:600;font-size:12px;z-index:2}tbody tr:hover{background:#1d1d28}td.seq{width:150px}td.pr{width:280px}td.im{width:230px}.seq .eid{display:block;color:var(--acc);font-size:12px;margin-top:3px;word-break:break-all}.tag{color:#e0b055;background:#26232a;padding:1px 5px}.picked-tag,.tag{font-size:10.5px;border-radius:4px}.picked-tag{display:block;margin-top:5px;font-weight:600;color:#17171f;background:#e0b055;padding:2px 6px;text-align:center}img.cell{display:block;width:100%;height:200px;object-fit:contain;background:#0a0a0f;border-radius:6px}img.gif{image-rendering:pixelated}details.pdt summary{line-height:1.5;display:block}details summary,details.pdt summary{cursor:pointer;color:#a9aec2}details[open] summary{color:var(--acc)}.pfull{white-space:pre-wrap;word-break:break-word;color:#858b9e;line-height:1.6}.note,.pfull{margin-top:6px}.note{color:#7fbf7f}.mut,.note{font-size:12px}.mut{color:var(--mut)}.pager{display:flex;align-items:center;justify-content:center;gap:14px;padding:16px 0 4px}.pg-btn{color:var(--acc);text-decoration:none;font-size:13px;padding:6px 12px;border:1px solid var(--line);border-radius:6px}.pg-btn.off{color:var(--mut);border-style:dashed}.pg-info{font-size:12.5px}.pg-info,footer{color:var(--mut)}footer{font-size:11.5px;text-align:center;padding:14px}.gen-form{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px}label.fl{display:block;font-size:12px;color:var(--mut);margin:14px 0 6px}label.fl:first-child{margin-top:0}input,select,textarea{width:100%;background:#101018;color:var(--txt);border:1px solid var(--line);border-radius:8px;padding:9px 10px;font-size:13.5px;font-family:inherit}textarea{min-height:110px;resize:vertical;line-height:1.6}select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.inline-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.inline-row .grow{flex:1 1;min-width:180px}.provider-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.provider-card{border:1px solid var(--line);border-radius:10px;padding:12px;cursor:pointer;transition:all .15s}.provider-card:hover{border-color:#3a3a48}.provider-card.on{border-color:var(--acc);background:#1b2233}.btn{border:1px solid var(--line);background:#21212b;color:var(--txt);border-radius:8px;padding:9px 16px;font-size:13px;cursor:pointer;transition:all .15s}.btn:hover{background:#2a2a36}.btn.primary{background:#2b3a5e;border-color:#2b3a5e;color:#fff;font-size:14px;padding:10px 22px}.btn:disabled{opacity:.5;cursor:default}.ref-preview{margin-top:8px;display:flex;align-items:center;gap:8px}.ref-preview img{max-height:140px;border-radius:8px}.job,.ref-preview img{border:1px solid var(--line)}.job{margin-top:16px;background:var(--card);border-radius:12px;padding:14px}.job-head{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin-bottom:10px}.badge{font-size:11.5px;font-weight:700;border-radius:6px;padding:3px 9px}.b-running{background:#2a2413;color:#e8c56f}.b-done{background:#14261a;color:#7fbf7f}.b-error{background:#2a1414;color:#e08a8a}.result-img{width:100%;border-radius:10px;border:1px solid var(--line);background:#0a0a0f}.err{color:#e08a8a;font-size:13px;margin:8px 0;word-break:break-all}code{background:#22222e;border-radius:4px;padding:1px 5px;font-size:12px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:12px;gap:12px}.stat-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px}.bar{height:10px;background:#22222e;overflow:hidden;margin:10px 0 6px}.bar,.bar>i{border-radius:6px}.bar>i{display:block;height:100%}.pct-ok{background:#5d9e6b}.pct-warn{background:#c8973f}.pct-bad{background:#c25454}.row2{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;color:var(--txt)}.row2 .mut{color:var(--mut)}.txt-warn{color:#e0b055;font-weight:600}.txt-bad{color:#e06c75;font-weight:700}.kv{font-size:12.5px;line-height:2}@media (max-width:720px){.tbl-wrap{overflow:visible;border:none;background:transparent}thead{display:none}table{min-width:0}table,tbody,tr{display:block}tr{background:var(--card);border:1px solid var(--line);border-radius:12px;margin:0 0 14px;padding:12px}td{display:block;border:none;padding:6px 0;width:auto!important}td.seq:before{content:"序列 "}td.pr:before,td.seq:before{color:var(--mut);font-size:11px}td.pr:before{content:"Prompt "}td.im:before{color:var(--mut);font-size:11px}td.im-ref:before{content:"参考图 "}td.im-sheet:before{content:"生成图 "}td.im-gif:before{content:"拼接生成图 GIF "}.loadmore{display:flex;justify-content:center;align-items:center;padding:16px 0 28px}td.im{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}td.im:before{grid-column:1/-1}img.cell{height:auto;max-height:320px}}.uploader{margin:0 0 18px}.drop{display:flex;flex-direction:column;align-items:center;gap:6px;padding:26px 16px;background:var(--card);border:1.5px dashed #3a3a48;border-radius:12px;cursor:pointer;text-align:center;transition:all .15s}.drop:hover{border-color:var(--acc);background:#1b2233}.drop.busy{opacity:.6;cursor:default}.drop input{display:none}.drop-title{font-size:15px;font-weight:600}.drop-sub{font-size:12px;color:var(--mut);line-height:1.6}.ump-msg{margin:10px 0;padding:9px 12px;border-radius:8px;font-size:13px;line-height:1.6;word-break:break-all}.ump-msg.ok{background:#14261a;color:#7fbf7f}.ump-msg.err{background:#2a1414;color:#e08a8a}.umb-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;color:var(--mut);font-size:12.5px;margin:14px 0 10px}.umb-refresh{border:1px solid var(--line);background:#21212b;color:var(--txt);border-radius:8px;padding:6px 14px;font-size:12.5px;cursor:pointer}.umb-refresh:hover{background:#2a2a36}.umb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:10px;gap:10px}.umb{position:relative;display:block;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#0a0a0f}.umb img{display:block;width:100%;height:140px;object-fit:cover}.umb-meta{position:absolute;right:6px;bottom:6px;font-size:10.5px;color:#fff;background:rgba(0,0,0,.6);padding:1px 6px;border-radius:5px}.story table{min-width:0}.story td,.story th{font-size:12.5px;padding:8px 10px}.story-sec{margin:28px 0 10px}.story-sec>h2{font-size:17px;margin:0 0 4px;color:#e8c56f}.story-sec>.desc{color:var(--mut);font-size:12.5px;margin:0 0 12px;line-height:1.7}.cardgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:12px;gap:12px}.scard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;overflow:hidden}.scard h3{font-size:14px;margin:0 0 8px;color:#cfe0ff}.scard p{font-size:12.5px;line-height:1.75;color:#a9aec2;margin:0 0 8px}.scard p:last-child{margin-bottom:0}.scard .use{color:#7fbf7f}.scard .why{color:#8fb4e8}.scard .src{color:var(--mut);font-size:11.5px;margin-bottom:6px}.badge-s{display:inline-block;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:5px;margin-left:8px;vertical-align:2px}.bs-pinned{background:#26232a;color:#e0b055}.bs-prop{background:#14261a;color:#7fbf7f}.bs-star{background:#2a2413;color:#e8c56f}.scard.pinned{border-color:#5a4a22}.scard.prop{border-style:dashed}.script{background:#101018;border:1px solid var(--line);border-left:3px solid #e0b055;border-radius:10px;padding:12px 16px;font-size:12.5px;line-height:1.9;color:#a9aec2}.script p{margin:0 0 10px}.script p:last-child{margin-bottom:0}.script b{color:#d6d9e2}.script .cue{color:#e8c56f;font-weight:600}