:root{color-scheme:light dark;--bg: #f5f6f8;--card: #ffffff;--card2: #f0f2f5;--line: #e4e7ed;--tx: #1c2027;--mut: #57606d;--acc: #f59e0b;--acc-ink: #1b1e24;--ok: #10b981;--warn: #ef4444;--kv-bg: #fafbfd;--kv-tx: #3d6ea5;--shadow: 0 1px 2px rgba(16, 24, 40, .04)}@media(prefers-color-scheme:dark){:root{--bg: #0f1115;--card: #171a20;--card2: #20242c;--line: #2a3140;--tx: #e6eaf0;--mut: #8b95a5;--acc: #ffb020;--acc-ink: #14161a;--ok: #3fce7c;--warn: #ff6b6b;--kv-bg: #12161d;--kv-tx: #9fc7ff;--shadow: 0 1px 2px rgba(0, 0, 0, .3)}}:root[data-theme=light]{--bg: #f5f6f8;--card: #ffffff;--card2: #f0f2f5;--line: #e4e7ed;--tx: #1c2027;--mut: #57606d;--acc: #f59e0b;--acc-ink: #1b1e24;--ok: #10b981;--warn: #ef4444;--kv-bg: #fafbfd;--kv-tx: #3d6ea5;--shadow: 0 1px 2px rgba(16, 24, 40, .04)}:root[data-theme=dark]{--bg: #0f1115;--card: #171a20;--card2: #20242c;--line: #2a3140;--tx: #e6eaf0;--mut: #8b95a5;--acc: #ffb020;--acc-ink: #14161a;--ok: #3fce7c;--warn: #ff6b6b;--kv-bg: #12161d;--kv-tx: #9fc7ff;--shadow: 0 1px 2px rgba(0, 0, 0, .3)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--tx);font-family:Microsoft YaHei UI,PingFang SC,sans-serif;min-height:100vh}.wrap{max-width:880px;margin:0 auto;padding:20px 20px 64px}input[type=number],.kvbox,.derived,.card-path,.upl-path,.kb-cmd,.cfg-path-code{font-variant-numeric:tabular-nums}:root,body,.wrap,.panel,.card,.kvbox,.upl-card{font-variant-numeric:tabular-nums}.brand{display:flex;justify-content:space-between;align-items:center;padding:8px 2px 18px;border-bottom:1px solid var(--line);margin-bottom:16px}.brand .logo{display:flex;align-items:center;gap:12px;font-weight:700;font-size:28px;letter-spacing:.2px}.brand-name{color:var(--tx)}.logo-img{height:42px;width:auto;object-fit:contain}.logo-img.dark{display:none}@media(prefers-color-scheme:dark){.logo-img.light{display:none}.logo-img.dark{display:inline}}:root[data-theme=light] .logo-img.dark{display:none}:root[data-theme=light] .logo-img.light{display:inline}:root[data-theme=dark] .logo-img.light{display:none}:root[data-theme=dark] .logo-img.dark{display:inline}.brand .sig{color:var(--mut);font-size:15px;display:flex;align-items:center;gap:10px}.rank-dec{height:38px;width:auto;object-fit:contain}.rank-dec.small{height:30px}.pagetop{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.trust{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 14px;margin-bottom:20px;box-shadow:var(--shadow)}.trust-dot{width:8px;height:8px;border-radius:50%;background:var(--ok);align-self:center;flex:none}.trust-title{font-size:13px;color:var(--ok);white-space:nowrap}.trust-sub{font-size:12px;color:var(--mut)}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;justify-content:center}@media(max-width:560px){.cards{grid-template-columns:1fr}}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;cursor:pointer;display:flex;flex-direction:column;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;box-shadow:var(--shadow)}.card:hover{border-color:var(--acc);transform:translateY(-3px);box-shadow:0 6px 18px #0000001a}.card .icon{width:44px;height:44px;margin-bottom:14px;background:var(--card2);border:1px solid var(--line);border-radius:11px;display:flex;align-items:center;justify-content:center}.card .icon img{width:30px;height:30px;object-fit:contain}.card h3{font-size:19px;margin-bottom:8px}.card p{color:var(--mut);font-size:13px;line-height:1.65;flex:1}.card .card-path{margin-top:12px;font-size:11px;color:var(--mut);font-family:Consolas,monospace;word-break:break-all;line-height:1.5;background:var(--card2);border:1px solid var(--line);border-radius:6px;padding:5px 8px;opacity:.85}.card .card-cta{margin-top:14px;font-size:13px;font-weight:600;color:var(--acc);border-top:1px dashed var(--line);padding-top:12px;display:flex;justify-content:space-between;align-items:center}.card:hover .card-cta{color:var(--acc)}.card .tag{display:none}.stepper{display:flex;align-items:flex-start;margin:0 0 22px}.stp{flex:1;display:flex;flex-direction:column;align-items:center;position:relative;min-width:0}.stp-node{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--card2);border:2px solid var(--line);color:var(--mut);font-size:14px;font-weight:700;transition:all .2s ease;z-index:1}.stp-label{margin-top:8px;font-size:12px;color:var(--mut);text-align:center;white-space:nowrap}.stp.on .stp-node{background:var(--acc);border-color:var(--acc);color:var(--acc-ink);box-shadow:0 0 0 4px color-mix(in srgb,var(--acc) 20%,transparent)}.stp.on .stp-label{color:var(--tx);font-weight:600}.stp.done .stp-node{background:var(--ok);border-color:var(--ok);color:#fff}.stp.done .stp-label{color:var(--ok)}.stp-line{position:absolute;top:17px;left:calc(50% + 20px);right:calc(-50% + 20px);height:2px;background:var(--line)}.stp.done .stp-line{background:var(--ok)}.stp:last-child .stp-line{display:none}.metric-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}.metric{background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:12px 10px;text-align:center;display:flex;flex-direction:column;gap:4px}.metric-val{font-size:20px;font-weight:700;color:var(--tx);font-variant-numeric:tabular-nums}.metric-label{font-size:11px;color:var(--mut)}.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:16px;box-shadow:var(--shadow)}.panel h2{font-size:15px;margin-bottom:14px}.panel .sub{color:var(--mut);font-size:12px;margin-top:-10px;margin-bottom:12px;line-height:1.6}.fovrow{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.fovrow input[type=number]{width:110px;background:var(--card2);border:1px solid var(--line);color:var(--tx);border-radius:8px;padding:9px 12px;font-size:16px}.fovrow input[type=range]{flex:1;min-width:180px;accent-color:var(--acc)}.derived{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;font-size:12px;color:var(--mut)}.derived b{color:var(--tx)}.chip{background:var(--card2);border:1px solid var(--line);border-radius:20px;padding:4px 12px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line)}th{color:var(--mut);font-weight:500}td input[type=number]{width:86px;background:var(--card2);border:1px solid var(--line);color:var(--tx);border-radius:6px;padding:6px 8px}td input[type=number]:disabled{opacity:.45}.restore{background:none;border:1px solid var(--line);color:var(--mut);border-radius:6px;padding:4px 8px;cursor:pointer;font-size:12px}.restore:hover{color:var(--acc);border-color:var(--acc)}.switch{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--mut);cursor:pointer}.switch input{accent-color:var(--acc);width:16px;height:16px}.modes{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.mode-btn{flex:1;min-width:220px;display:flex;flex-direction:column;gap:4px;align-items:flex-start;background:var(--card2);border:2px solid var(--line);border-radius:10px;padding:10px 14px;cursor:pointer;font-size:13px;color:var(--tx);text-align:left}.mode-btn .mode-tip{font-size:11px;color:var(--mut);font-weight:400}.mode-btn:hover{border-color:var(--acc)}.mode-btn.sel{border-color:var(--acc);background:var(--card)}.upl{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.upl input[type=file]{background:var(--card2);border:1px dashed var(--line);border-radius:8px;padding:10px;color:var(--mut);font-size:12px;cursor:pointer}.upl-hint{font-size:12px;color:var(--mut)}.upl-card{border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:14px;background:var(--card);box-shadow:var(--shadow)}.upl-card.has-file{border-color:var(--ok)}.upl-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:10px}.upl-head b{font-size:13px}.upl-path{font-size:11px;color:var(--acc);font-family:Consolas,monospace;word-break:break-all;line-height:1.5;margin-bottom:8px}.dropzone{display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--card2);border:2px dashed var(--line);border-radius:10px;padding:26px 16px;cursor:pointer;transition:border-color .15s,background .15s;margin-bottom:10px;text-align:center}.dropzone:hover{border-color:var(--acc);background:color-mix(in srgb,var(--acc) 6%,var(--card2))}.dz-icon{font-size:24px;color:var(--acc);font-weight:700;line-height:1}.dz-hint{font-size:13px;color:var(--tx);font-weight:600}.dz-path{font-size:11px;color:var(--mut);font-family:Consolas,monospace;word-break:break-all}.upl-pick{display:inline-flex;align-items:center;gap:8px;background:var(--card2);border:1px dashed var(--line);border-radius:8px;padding:9px 16px;cursor:pointer;font-size:13px;color:var(--tx);transition:border-color .15s,background .15s}.upl-pick:hover{border-color:var(--acc);background:color-mix(in srgb,var(--acc) 6%,var(--card2))}.upl-pick-icon{color:var(--acc);font-weight:700}.upl-done{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:color-mix(in srgb,var(--ok) 8%,var(--card));border:1px solid var(--ok);border-radius:10px;padding:12px 14px;margin-bottom:10px}.upl-done-ok{font-size:13px;font-weight:700;color:var(--ok)}.upl-done-sum{font-size:12px;color:var(--mut);flex:1;min-width:120px}.upl-change{flex:none}.dl-btn{width:auto;padding:10px 28px}.dl-btn:disabled{background:var(--card2);color:var(--mut);opacity:.7}.confirm{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:14px}.confirm input{accent-color:var(--acc);width:16px;height:16px}.kvbox{background:var(--kv-bg);border:1px solid var(--line);border-radius:8px;padding:12px;font-family:Consolas,monospace;font-size:12px;color:var(--kv-tx);white-space:pre-wrap;margin-bottom:14px;max-height:220px;overflow:auto}.bigbtn{width:100%;background:var(--acc);color:var(--acc-ink);border:none;border-radius:10px;padding:14px;font-size:15px;font-weight:700;cursor:pointer}.bigbtn:disabled{opacity:.4;cursor:not-allowed}.bigbtn.ghost{background:transparent;color:var(--tx);border:1.5px solid var(--line);box-shadow:none}.bigbtn.ghost:hover{border-color:var(--acc);color:var(--acc);background:color-mix(in srgb,var(--acc) 6%,transparent)}.back{background:none;border:none;color:var(--mut);cursor:pointer;font-size:13px;margin-bottom:10px}.back:hover{color:var(--acc)}.note{font-size:12px;color:var(--mut);line-height:1.6}.footer{color:var(--mut);font-size:11px;text-align:center;margin-top:32px;opacity:.7}.hide{display:none}.toast{position:fixed;bottom:20px;right:20px;background:var(--ok);color:#fff;padding:10px 22px;border-radius:30px;font-size:13px;font-weight:600;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s;pointer-events:none;z-index:99;max-width:70vw;box-shadow:0 4px 16px #00000040}.toast.show{opacity:1;transform:translateY(0)}.toast.warn{background:var(--warn)}.theme-toggle,.lang-toggle{position:fixed;right:14px;width:36px;height:36px;border-radius:50%;background:var(--card);border:1px solid var(--line);color:var(--mut);font-size:16px;cursor:pointer;box-shadow:var(--shadow);opacity:.75;transition:opacity .15s,border-color .15s;z-index:90;display:flex;align-items:center;justify-content:center}.theme-toggle{bottom:14px}.lang-toggle{bottom:56px;font-size:12px;font-weight:700}.theme-toggle:hover,.lang-toggle:hover{opacity:1;border-color:var(--acc)}.keybinds{font-size:13px}.kb-hint{color:var(--mut);font-size:12px;margin-bottom:12px;line-height:1.6}.kb-hint.warn{color:var(--warn)}.kb-table{width:100%;border-collapse:collapse}.kb-table th,.kb-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle}.kb-table th{color:var(--mut);font-weight:500}.kb-cmd{color:var(--mut);font-size:11px;font-family:Consolas,monospace}.kb-keys{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.kb-key{display:inline-flex;align-items:center;gap:4px;background:var(--card2);border:1px solid var(--line);border-radius:6px;padding:4px 8px;font-size:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.kb-key:hover{border-color:var(--acc)}.kb-key.rec,.kb-add.rec{border-color:var(--warn);color:var(--warn);animation:kb-blink .9s infinite}@keyframes kb-blink{50%{opacity:.4}}.kb-del{font-style:normal;color:var(--mut);opacity:.6;padding:0 2px}.kb-del:hover{color:var(--warn);opacity:1}.kb-add{width:30px;height:26px;border-radius:6px;background:none;border:1px dashed var(--line);color:var(--mut);cursor:pointer;font-size:14px}.kb-add:hover{color:var(--acc);border-color:var(--acc)}.kb-select{background:var(--card2);border:1px solid var(--line);color:var(--tx);border-radius:6px;padding:4px 6px;font-size:12px;max-width:150px}.kb-default{color:var(--mut);font-size:12px}.kb-unchanged{color:var(--mut);font-size:12px;font-style:italic}.kb-btn{background:none;border:1px solid var(--line);color:var(--mut);border-radius:6px;padding:4px 10px;cursor:pointer;font-size:12px;white-space:nowrap}.kb-btn:hover{color:var(--acc);border-color:var(--acc)}.row-custom td{border-bottom-color:var(--acc)}.collapse{margin-bottom:16px}.collapse summary{cursor:pointer;font-size:14px;font-weight:600;padding:12px 16px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);list-style:none;-webkit-user-select:none;user-select:none}.collapse summary:before{content:"▸ ";color:var(--acc)}.collapse[open] summary{border-radius:12px 12px 0 0;border-bottom:none}.collapse[open] summary:before{content:"▾ "}.collapse .collapse-body{background:var(--card);border:1px solid var(--line);border-top:none;border-radius:0 0 12px 12px;padding:14px 16px;box-shadow:var(--shadow)}.gfx-toolbar{position:sticky;top:0;z-index:20;display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--bg);padding:10px 0;margin:-6px 0 12px;border-bottom:1px solid var(--line)}.gfx-search{flex:1;min-width:140px;background:var(--card2);border:1px solid var(--line);color:var(--tx);border-radius:8px;padding:8px 12px;font-size:13px}.gfx-search:focus{outline:none;border-color:var(--acc)}.gfx-modified{font-size:12px;color:var(--mut);white-space:nowrap}.gfx-modified.has{color:var(--acc);font-weight:600}.gfx-mod-tag{display:inline-block;margin-top:4px;font-size:10px;color:var(--acc);background:color-mix(in srgb,var(--acc) 12%,transparent);border-radius:4px;padding:1px 6px;font-weight:600}.gfx-group-mod{margin-left:8px;font-size:11px;color:var(--acc);font-weight:600}.row-modified td{background:color-mix(in srgb,var(--acc) 5%,transparent)}.row-modified td:first-child{border-left:3px solid var(--acc)}.launch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}@media(max-width:640px){.launch-grid{grid-template-columns:1fr}}.launch-item{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px;transition:border-color .15s,background .15s}.launch-item:hover{border-color:var(--acc)}.launch-item.sel{border-color:var(--acc);background:color-mix(in srgb,var(--acc) 4%,var(--card))}.launch-item.risky{border-left:3px solid var(--warn)}.launch-item .note{margin-top:4px}.launch-dm{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-top:12px}.launch-dm-title{font-size:13px;font-weight:600;margin-bottom:8px}.launch-dm-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px}.launch-dm-opt{display:flex;align-items:center;gap:8px;cursor:pointer;background:var(--card2);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px;transition:border-color .15s}.launch-dm-opt:hover{border-color:var(--acc)}.launch-dm-opt.sel{border-color:var(--acc);background:color-mix(in srgb,var(--acc) 6%,var(--card2))}.launch-dm-opt input{accent-color:var(--acc)}.launch-dm-opt code{margin-left:auto;font-size:11px;color:var(--mut);font-family:Consolas,monospace;white-space:nowrap}.cfg-textarea,.cfg-code-input{width:100%;min-height:110px;background:var(--card2);border:1px solid var(--line);color:var(--tx);border-radius:8px;padding:10px;font-family:Consolas,monospace;font-size:12px;resize:vertical}.cfg-input{background:var(--card2);border:1px solid var(--line);color:var(--tx);border-radius:8px;padding:8px 10px;font-size:13px;flex:1;min-width:140px}.cfg-file-input{background:var(--card2);border:1px dashed var(--line);border-radius:8px;padding:10px;color:var(--mut);font-size:12px;cursor:pointer}.cfg-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.cfg-smbtn{background:var(--card2);border:1px solid var(--line);color:var(--tx);border-radius:6px;padding:6px 12px;font-size:12px;cursor:pointer}.cfg-smbtn:hover{border-color:var(--acc);color:var(--acc)}.cfg-smbtn.danger:hover{border-color:var(--warn);color:var(--warn)}.cfg-err{color:var(--warn);font-size:12px;margin-top:6px}.cfg-result{color:var(--ok);font-size:12px;margin-top:6px}.cfg-divider{border:none;border-top:1px solid var(--line);margin:14px 0}.cfg-list{list-style:none;margin:0;padding:0}.cfg-list-item{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--card2);border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin-bottom:8px;flex-wrap:wrap}.cfg-list-info{display:flex;align-items:center;gap:10px;flex:1;min-width:0;flex-wrap:wrap}.cfg-list-name{font-size:13px;word-break:break-all;min-width:0}.cfg-list-count{font-size:11px;color:var(--mut);white-space:nowrap}.cfg-list-actions{display:flex;gap:6px;flex:none}.dsh-toast-warn{background:var(--warn)!important}.cfg-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}@media(max-width:560px){.cfg-cards{grid-template-columns:1fr}}.cfg-card{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.cfg-card.open{border-color:var(--acc)}.cfg-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;cursor:pointer;-webkit-user-select:none;user-select:none}.cfg-card-head:hover{background:var(--card2)}.cfg-card-title{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cfg-card-icon{font-size:20px}.cfg-card-summary{font-size:11px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cfg-card-body{padding:12px 16px 16px;border-top:1px solid var(--line)}.cfg-path{margin:10px 0}.cfg-path-code{background:var(--card2);border:1px solid var(--line);border-radius:6px;padding:6px 10px;font-family:Consolas,monospace;font-size:11px;color:var(--kv-tx);word-break:break-all}
