:root{font-family:Microsoft YaHei UI,PingFang SC,Noto Sans CJK SC,system-ui,sans-serif;color:#17191d;background:#f3f3ef;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #17191d;--ink-soft: #60636b;--ink-faint: #8d9097;--line: #dcddd8;--line-strong: #c8cac4;--surface: #ffffff;--surface-soft: #f8f8f5;--surface-deep: #ebebe6;--lime: #c8f35c;--lime-dark: #769f16;--coral: #ff8065;--blue: #84b9ff;--violet: #b8a1ff;--danger: #c44437;--danger-soft: #fff0ed;--success: #357b35;--success-soft: #edf8e9;--warning: #936817;--warning-soft: #fff6de;--shadow-sm: 0 1px 2px rgba(25, 27, 29, .05), 0 8px 24px rgba(25, 27, 29, .04);--shadow-md: 0 20px 50px rgba(25, 27, 29, .12);--radius-sm: 10px;--radius: 16px;--radius-lg: 24px}*{box-sizing:border-box}html{min-width:320px;height:100%;height:100dvh;overflow:hidden;overscroll-behavior:none;touch-action:manipulation;background:#f3f3ef}body{margin:0;min-width:320px;height:100%;height:100dvh;overflow:hidden;overscroll-behavior:none;touch-action:manipulation;background:#f3f3ef}#root{width:100%;height:100%;height:100dvh;overflow:hidden}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}button:not(:disabled),a,label[for]{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}img{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}a{color:inherit}:focus-visible{outline:3px solid rgba(79,121,228,.42);outline-offset:2px}::selection{background:var(--lime);color:var(--ink)}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.mono{font-family:Consolas,Cascadia Mono,monospace}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.button{min-height:44px;border:1px solid transparent;border-radius:12px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:650;font-size:14px;line-height:1;background:transparent;transition:transform .14s ease,background-color .14s ease,border-color .14s ease}.button:not(:disabled):active{transform:translateY(1px) scale(.99)}.button.primary{color:#151812;background:var(--lime);border-color:#afd844;box-shadow:0 5px #9bc539}.button.primary:not(:disabled):hover{background:#d2fb68}.button.primary:active{box-shadow:0 2px #9bc539}.button.secondary{background:var(--surface);border-color:var(--line-strong);box-shadow:0 1px 1px #00000008}.button.secondary:not(:disabled):hover{background:var(--surface-soft);border-color:#aeb0aa}.button.ghost{border-color:var(--line);color:var(--ink-soft)}.button.ghost:not(:disabled):hover{background:var(--surface-deep);color:var(--ink)}.button.danger{background:var(--danger);color:#fff}.button.large{width:100%;min-height:54px;border-radius:15px;font-size:16px}.button.compact{min-height:36px;padding:0 12px;font-size:13px;border-radius:9px}.button.full-width{width:100%}.icon-button{width:44px;height:44px;flex:0 0 44px;border:0;border-radius:50%;background:transparent;display:inline-grid;place-items:center}.icon-button:hover{background:#1416180f}.icon-button.soft{background:var(--surface);border:1px solid var(--line)}.spinner-wrap{display:inline-flex;align-items:center;justify-content:center}.spinner{display:inline-block;width:17px;height:17px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}.loading-block{min-height:180px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:13px;color:var(--ink-soft);font-size:14px}.loading-block .spinner{width:24px;height:24px}.brand{display:inline-flex;align-items:center;gap:10px;font-size:17px;font-weight:750;letter-spacing:-.3px;white-space:nowrap}.brand-mark{width:34px;height:34px;display:inline-grid;place-items:center;border-radius:10px;background:var(--ink);color:var(--lime)}.brand-tag{color:var(--ink-soft);font-size:11px;font-weight:600;letter-spacing:0;border:1px solid var(--line);border-radius:999px;padding:3px 7px}.boot-screen{min-height:100vh;min-height:100dvh;width:min(100%,580px);margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:24px}.boot-screen>.empty-state{width:100%}.empty-state{border:1px dashed var(--line-strong);border-radius:var(--radius-lg);padding:38px 24px;text-align:center;background:#ffffff8c}.empty-icon{width:52px;height:52px;margin:0 auto 17px;border-radius:16px;display:grid;place-items:center;background:var(--surface-deep);color:var(--ink-soft)}.empty-state h3{margin-bottom:8px;font-size:18px}.empty-state p{margin:0 auto 20px;max-width:440px;color:var(--ink-soft);line-height:1.7;font-size:14px}.empty-state p:last-child{margin-bottom:0}.inline-notice{border:1px solid;border-radius:12px;padding:12px 14px;display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.65}.inline-notice>svg{margin-top:2px;flex:0 0 auto}.inline-notice small{display:block;margin-top:3px;opacity:.75}.inline-notice.info{background:#eef5ff;border-color:#c9daf4;color:#355a8d}.inline-notice.warning{background:var(--warning-soft);border-color:#ead59e;color:#755519}.inline-notice.danger{background:var(--danger-soft);border-color:#f0c8c1;color:#9e372d}.inline-notice.success{background:var(--success-soft);border-color:#c7e4bd;color:var(--success)}.toast{position:fixed;z-index:100;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));transform:translate(-50%);width:min(calc(100% - 32px),440px);min-height:52px;padding:11px 10px 11px 15px;border-radius:14px;background:#202328;color:#fff;display:flex;align-items:center;gap:10px;box-shadow:var(--shadow-md);animation:toast-in .22s ease-out}.toast.danger{background:#8f3028}.toast>svg{color:var(--lime);flex:0 0 auto}.toast.danger>svg{color:#ffd1ca}.toast span{flex:1;font-size:14px}.toast button{width:36px;height:36px;border:0;border-radius:50%;background:#ffffff1a;color:#fff;display:grid;place-items:center}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}}.dialog-backdrop{position:fixed;inset:0;z-index:110;background:#1113168f;backdrop-filter:blur(4px);padding:20px;display:grid;place-items:center}.dialog{width:min(100%,410px);background:var(--surface);border-radius:22px;padding:26px;box-shadow:var(--shadow-md)}.dialog-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#eef5ff;color:#4871aa;margin-bottom:17px}.dialog-icon.danger{background:var(--danger-soft);color:var(--danger)}.dialog h2{font-size:20px;margin-bottom:8px}.dialog p{color:var(--ink-soft);font-size:14px;line-height:1.7;margin-bottom:24px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}.public-app{width:100%;height:100%;height:100dvh;display:flex;flex-direction:column;overflow:hidden;position:relative;overscroll-behavior:none}.public-app-scroll-body{flex:1;width:100%;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;scroll-behavior:smooth}.topbar{position:sticky;z-index:20;top:0;height:68px;background:#f3f3efeb;backdrop-filter:blur(16px);border-bottom:1px solid rgba(201,202,196,.6)}.topbar-inner{height:100%;width:min(100%,760px);margin:auto;padding:0 18px;display:flex;align-items:center;gap:9px}.topbar-title{min-width:0;display:flex;flex-direction:column;line-height:1.25}.topbar-title strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:16px}.topbar-title span{color:var(--ink-faint);font-size:11px}.topbar-action{margin-left:auto;display:flex;align-items:center}.user-chip{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--coral);border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line);font-size:11px;font-weight:750}.page{width:min(100%,760px);margin:auto;padding:26px 18px 48px}.page-with-nav{padding-bottom:calc(105px + env(safe-area-inset-bottom))}.detail-page{padding-top:20px}.welcome-row{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:4px 0 23px}.welcome-row h1,.page-title h1{font-size:clamp(28px,7vw,38px);line-height:1.18;letter-spacing:-1.1px;margin-bottom:0}.eyebrow{margin-bottom:6px;color:var(--ink-faint);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.page-title{margin:5px 0 28px}.page-title>p:last-child{color:var(--ink-soft);font-size:14px;margin:9px 0 0}.bottom-nav{position:absolute;z-index:30;left:50%;bottom:0;transform:translate(-50%);width:min(100%,760px);height:calc(72px + env(safe-area-inset-bottom));padding:6px max(20px,env(safe-area-inset-left)) env(safe-area-inset-bottom) max(20px,env(safe-area-inset-right));display:grid;grid-template-columns:repeat(2,1fr);background:#fffffff0;backdrop-filter:blur(18px);border:1px solid var(--line);border-bottom:0;border-radius:20px 20px 0 0;box-shadow:0 -8px 30px #1416180f}.bottom-nav button{border:0;background:transparent;border-radius:13px;display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;color:var(--ink-faint);font-size:11px}.bottom-nav button.active{color:var(--ink);background:#eff9da}.bottom-nav button.active svg{color:var(--lime-dark)}.status-panel{border-radius:var(--radius-lg);padding:19px;color:#fff;background:#1d2025;box-shadow:var(--shadow-sm);overflow:hidden;position:relative}.status-panel.offline{background:#4d4645}.status-panel:after{content:"";position:absolute;right:-45px;top:-72px;width:160px;height:160px;border-radius:50%;border:32px solid rgba(200,243,92,.08);pointer-events:none}.status-main{display:flex;align-items:center;gap:11px;position:relative;z-index:1}.status-orb{width:38px;height:38px;border-radius:50%;background:#c8f35c1f;display:grid;place-items:center}.status-orb span{width:10px;height:10px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 5px #c8f35c1f}.offline .status-orb span{background:#c7b7b3;box-shadow:none}.status-main>div:nth-child(2){min-width:0}.status-main p{margin:0;font-size:16px;font-weight:680}.status-main div>span{font-size:12px;color:#aeb2b8}.status-label{margin-left:auto;align-self:flex-start;font-size:11px;font-weight:700;color:var(--lime);border:1px solid rgba(200,243,92,.24);border-radius:99px;padding:4px 9px}.offline .status-label{color:#d6ccca;border-color:#ffffff2e}.status-metrics{margin-top:19px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1);display:grid;grid-template-columns:1.2fr 1fr;gap:12px}.status-metrics>div{display:flex;gap:9px;align-items:center;min-width:0}.status-metrics svg{color:#858c95;flex:0 0 auto}.status-metrics span{min-width:0;display:flex;flex-direction:column}.status-metrics small{color:#8e949c;font-size:10px}.status-metrics strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vram-row{display:grid;grid-template-columns:1fr auto;gap:5px 10px;margin-top:14px;color:#9da2aa;font-size:10px}.meter{grid-column:1 / -1;height:4px;border-radius:99px;overflow:hidden;background:#ffffff1a}.meter i{display:block;height:100%;background:var(--lime);border-radius:inherit}.section-block{margin-top:34px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:15px}.section-heading h2{margin:0;font-size:21px;letter-spacing:-.4px}.section-heading .eyebrow{margin-bottom:3px}.count-badge{min-width:27px;height:27px;padding:0 8px;display:inline-grid;place-items:center;border-radius:99px;background:var(--surface-deep);color:var(--ink-soft);font-size:12px;font-weight:700}.workflow-grid{display:grid;gap:10px}.workflow-card{width:100%;min-height:105px;padding:16px;text-align:left;border:1px solid var(--line);border-radius:18px;background:var(--surface);display:flex;align-items:center;gap:14px;box-shadow:var(--shadow-sm);transition:border-color .14s,transform .14s}.workflow-card:hover{border-color:var(--line-strong)}.workflow-card:active{transform:scale(.992)}.workflow-glyph{width:52px;height:52px;flex:0 0 52px;display:grid;place-items:center;border-radius:15px;color:#252823}.workflow-glyph.lime,.summary-icon.lime{background:var(--lime)}.workflow-glyph.coral,.summary-icon.coral{background:var(--coral)}.workflow-glyph.blue,.summary-icon.blue{background:var(--blue)}.workflow-glyph.violet{background:var(--violet)}.workflow-copy{flex:1;min-width:0;display:flex;flex-direction:column}.workflow-copy>strong{font-size:15px;margin-bottom:3px}.workflow-copy>small{color:var(--ink-soft);font-size:12px;line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workflow-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.workflow-meta i{font-style:normal;font-size:9px;color:var(--ink-soft);background:var(--surface-deep);border-radius:99px;padding:3px 7px}.card-chevron{color:var(--ink-faint);flex:0 0 auto}.workflow-description{color:var(--ink-soft);font-size:14px;line-height:1.7;margin:2px 2px 17px}.form-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);padding:20px 18px;box-shadow:var(--shadow-sm)}.form-card-heading{display:flex;align-items:center;gap:12px;padding-bottom:18px;border-bottom:1px solid var(--line)}.form-card-heading>span{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--surface-deep);color:var(--ink-soft)}.form-card-heading h2{font-size:17px;margin-bottom:2px}.form-card-heading p{margin:0;color:var(--ink-faint);font-size:11px}.fields-stack{display:grid;gap:25px;margin-top:24px}.form-field{min-width:0;position:relative;scroll-margin-top:24px}.form-field>label,.form-field>.label{display:block;font-size:13px;font-weight:650;margin-bottom:8px}.required{color:var(--danger);margin-left:3px}.field-hint{margin:-4px 0 8px;color:var(--ink-faint);font-size:11px;line-height:1.5}.form-field input:not([type=checkbox]):not([type=file]),.form-field textarea,.form-field select{width:100%;min-height:46px;border:1px solid var(--line-strong);border-radius:11px;background:var(--surface);color:var(--ink);padding:10px 12px;font-size:16px!important;transition:border-color .14s,box-shadow .14s}.form-field textarea{resize:vertical;line-height:1.65;min-height:92px}.form-field select{padding-right:35px}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{outline:0;border-color:#82a928;box-shadow:0 0 0 3px #a7d2422b}.form-field input:disabled,.form-field textarea:disabled,.form-field select:disabled{color:#777a80;background:#f0f0ec}.form-field.has-error input,.form-field.has-error textarea,.form-field.has-error select,.json-drop.has-error{border-color:#db7c72}.field-error{color:var(--danger);display:flex;align-items:flex-start;gap:5px;margin:7px 0 0;font-size:11px;line-height:1.5}.field-error svg{flex:0 0 auto;margin-top:1px}.number-wrap{position:relative}.number-wrap input{padding-right:105px!important}.number-wrap span{position:absolute;right:11px;top:50%;transform:translateY(-50%);color:var(--ink-faint);font-size:10px;pointer-events:none}.switch-row{width:100%;min-height:62px;padding:10px 13px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface-soft);display:flex;align-items:center;text-align:left}.switch-row>span{display:flex;flex-direction:column}.switch-row strong{font-size:13px}.switch-row small{color:var(--ink-faint);font-size:10px;margin-top:2px}.switch-row>i{margin-left:auto;width:45px;height:26px;border-radius:99px;background:#c9cbc7;padding:3px;transition:background .16s}.switch-row b{display:block;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .16s}.switch-row.on>i{background:#89b52c}.switch-row.on b{transform:translate(19px)}.seed-wrap{display:flex;gap:8px}.seed-wrap input{min-width:0}.seed-wrap button{flex:0 0 auto;border:1px solid var(--line-strong);border-radius:11px;background:var(--surface-soft);padding:0 12px;display:flex;align-items:center;gap:5px;font-size:12px;font-weight:650}.image-picker{display:grid;gap:10px}.upload-drop{min-height:122px;padding:18px;border:1px dashed #aeb1aa;border-radius:14px;background:var(--surface-soft);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--ink-soft)}.upload-drop svg{margin-bottom:8px;color:var(--ink)}.upload-drop strong{font-size:13px;color:var(--ink)}.upload-drop span{margin-top:4px;font-size:10px}.preview-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.file-preview{aspect-ratio:1;border-radius:13px;overflow:hidden;background:var(--surface-deep);position:relative}.file-preview img{width:100%;height:100%;object-fit:cover}.file-preview button{position:absolute;right:7px;top:7px;width:29px;height:29px;display:grid;place-items:center;border:0;border-radius:50%;background:#121416bf;color:#fff;backdrop-filter:blur(5px)}.file-preview>span{position:absolute;inset:auto 0 0;padding:18px 8px 7px;color:#fff;background:linear-gradient(transparent,#000000b3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:9px}.upload-summary{margin:11px 2px 0;display:flex;align-items:center;gap:7px;color:var(--ink-soft);font-size:11px}.submit-dock{margin-top:18px}.submit-dock>p{color:var(--ink-faint);text-align:center;font-size:10px;margin:13px 0 0}.job-status-card{border-radius:var(--radius-lg);background:#1d2025;color:#fff;padding:21px}.job-status-card.succeeded{background:#183c2d}.job-status-card.failed{background:#4f2522}.job-status-card.cancelled{background:#484a4f}.job-status-top{display:flex;align-items:center;gap:13px}.job-status-icon{width:48px;height:48px;flex:0 0 48px;border-radius:16px;display:grid;place-items:center;background:#ffffff17;color:var(--lime)}.failed .job-status-icon{color:#ff9c8e}.cancelled .job-status-icon{color:#d3d5d9}.job-status-top p{font-size:18px;font-weight:700;margin-bottom:3px}.job-status-top div>span{color:#a8adb5;font-size:11px}.pulse-rings{width:13px;height:13px;position:relative}.pulse-rings i{position:absolute;inset:0;border-radius:50%;background:var(--lime);animation:pulse 1.5s ease-out infinite}.pulse-rings i:last-child{animation-delay:.7s}@keyframes pulse{0%{transform:scale(.5);opacity:1}to{transform:scale(2.3);opacity:0}}.progress-track{height:6px;margin-top:23px;background:#ffffff1f;border-radius:99px;overflow:hidden}.progress-track i{display:block;height:100%;border-radius:inherit;background:var(--lime);transition:width .3s ease}.progress-copy{margin-top:6px;display:flex;justify-content:space-between;color:#8f959e;font-size:10px}.progress-copy strong{color:var(--lime)}.job-status-card>.button{margin-top:17px;color:#d7d9dc;border-color:#ffffff2e}.job-detail{display:grid;gap:15px}.result-section{margin-top:15px}.result-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.result-grid figure{margin:0;border:1px solid var(--line);background:var(--surface);border-radius:15px;overflow:hidden;box-shadow:var(--shadow-sm)}.result-grid figure>a{display:block;aspect-ratio:1;background:var(--surface-deep);overflow:hidden}.result-grid img{width:100%;height:100%;object-fit:cover}.result-grid figcaption{min-height:47px;padding:7px 8px 7px 11px;display:flex;align-items:center;gap:6px}.result-grid figcaption>span{flex:1;color:var(--ink-soft);font-size:9px}.download-button{min-height:32px;padding:0 8px;border-radius:8px;display:inline-flex;align-items:center;gap:4px;background:var(--surface-deep);text-decoration:none;font-size:10px;font-weight:650}.job-meta-card{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);padding:18px}.job-meta-card h2{font-size:15px;margin-bottom:14px}.job-meta-card dl{margin:0;display:grid;gap:10px}.job-meta-card dl>div{display:grid;grid-template-columns:80px minmax(0,1fr);gap:8px;font-size:11px}.job-meta-card dt{color:var(--ink-faint)}.job-meta-card dd{margin:0;text-align:right;overflow:hidden;text-overflow:ellipsis}.history-groups{display:grid;gap:27px}.history-groups section>h2{margin:0 0 9px 4px;color:var(--ink-faint);font-size:11px;font-weight:650}.job-list{display:grid;gap:8px}.job-row{width:100%;min-height:82px;padding:10px;border:1px solid var(--line);background:var(--surface);border-radius:16px;display:flex;align-items:center;gap:11px;text-align:left;box-shadow:var(--shadow-sm)}.job-thumb{width:60px;height:60px;flex:0 0 60px;border-radius:11px;display:grid;place-items:center;background:var(--surface-deep);color:var(--ink-faint);overflow:hidden}.job-thumb img{width:100%;height:100%;object-fit:cover}.job-row-copy{min-width:0;flex:1;display:flex;flex-direction:column}.job-row-copy strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job-row-copy small{color:var(--ink-faint);font-size:10px;margin-top:2px}.status-text{width:max-content;margin-top:6px;font-size:9px;font-weight:700;border-radius:99px;padding:3px 7px;background:var(--surface-deep);color:var(--ink-soft)}.status-text.succeeded{background:var(--success-soft);color:var(--success)}.status-text.failed{background:var(--danger-soft);color:var(--danger)}.status-text.running{background:#eef5ff;color:#3f69a1}.job-row>svg{color:var(--ink-faint)}html[data-app=admin],html[data-app=admin] body{background:#f1f1ed}.admin-app{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:244px minmax(0,1fr)}.admin-sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:244px;background:#181a1e;color:#f5f5f1;padding:24px 18px;display:flex;flex-direction:column}.admin-sidebar .brand-mark{background:var(--lime);color:var(--ink)}.admin-sidebar .brand-tag{border-color:#41444a;color:#92969e}.admin-sidebar nav{display:grid;gap:5px;margin-top:34px}.admin-sidebar nav button,.admin-mobile-nav button{border:0;background:transparent;color:#9c9fa6;min-height:46px;border-radius:11px;padding:0 12px;display:flex;align-items:center;gap:11px;font-size:13px;font-weight:600;text-align:left}.admin-sidebar nav button.active{color:#171a1d;background:var(--lime)}.local-only{margin-top:auto;padding:13px;border:1px solid #36393f;border-radius:12px;color:#8e929a;display:flex;align-items:center;gap:9px}.local-only svg{color:var(--lime)}.local-only div{display:flex;flex-direction:column}.local-only strong{font-size:11px;color:#d4d6da}.local-only span{font:9px Consolas,Cascadia Mono,monospace;margin-top:2px}.admin-main{grid-column:2;min-width:0}.admin-header{height:62px;padding:0 34px;border-bottom:1px solid var(--line);background:#f1f1eded;backdrop-filter:blur(15px);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20}.admin-header>div:first-child{color:var(--ink-faint);font-size:11px;font-weight:650}.health-chip{border:1px solid var(--line);border-radius:99px;padding:6px 10px;background:var(--surface);display:flex;align-items:center;gap:6px;font-size:10px;font-weight:650;color:var(--ink-soft)}.health-chip i{width:7px;height:7px;border-radius:50%;background:#a9aca8}.health-chip.online i{background:#71af34;box-shadow:0 0 0 3px #e9f4df}.health-chip.offline{color:var(--danger)}.health-chip.offline i{background:var(--danger)}.admin-page{max-width:1240px;margin:0 auto;padding:36px 38px 70px}.narrow-admin-page{max-width:870px}.admin-title-row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px}.admin-title-row h1{margin-bottom:7px;font-size:32px;letter-spacing:-1px}.admin-title-row p:last-child{max-width:600px;color:var(--ink-soft);font-size:13px;margin:0;line-height:1.6}.summary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:32px}.summary-cards>div{min-height:98px;border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:16px;display:flex;align-items:center;gap:13px}.summary-icon{width:45px;height:45px;border-radius:13px;display:grid;place-items:center}.summary-cards p{margin:0;display:flex;flex-direction:column}.summary-cards strong{font-size:22px;line-height:1.1}.summary-cards small{margin-top:4px;color:var(--ink-faint);font-size:10px}.admin-section-heading{margin:0 0 11px;display:flex;align-items:center;justify-content:space-between;gap:14px}.admin-section-heading h2{font-size:16px;margin:0}.admin-section-heading>div{display:flex;align-items:center;gap:7px}.admin-workflow-list{display:grid;gap:8px}.admin-workflow-row{width:100%;min-height:82px;padding:13px 16px;border:1px solid var(--line);border-radius:15px;background:var(--surface);display:flex;align-items:center;gap:13px;text-align:left}.admin-workflow-row:hover{border-color:#b5b7b1}.admin-workflow-row .workflow-glyph{width:46px;height:46px;flex-basis:46px;border-radius:12px}.admin-row-main{flex:1;min-width:0;display:flex;flex-direction:column}.admin-row-main strong{font-size:14px}.admin-row-main small{margin-top:3px;color:var(--ink-faint);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.version-stack{min-width:110px;display:flex;align-items:flex-end;flex-direction:column;gap:4px}.version-stack small{color:var(--ink-faint);font-size:9px}.state-badge{display:inline-flex;align-items:center;border-radius:99px;padding:4px 8px;font-style:normal;font-size:9px;font-weight:700;white-space:nowrap}.state-badge.success{background:var(--success-soft);color:var(--success)}.state-badge.draft{background:var(--warning-soft);color:var(--warning)}.admin-workflow-row>svg{color:var(--ink-faint)}.admin-mobile-nav{display:none}.back-link{border:0;background:transparent;color:var(--ink-soft);padding:0;margin:0 0 23px;display:inline-flex;align-items:center;gap:6px;font-size:12px}.import-form{margin-top:17px}.import-form .form-card{padding:24px}.import-form .form-field{margin-top:22px}.json-drop{min-height:210px;padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed #aeb1aa;border-radius:16px;background:var(--surface-soft);text-align:center}.json-drop:hover{border-color:#82a928;background:#fafdf2}.json-icon,.file-success{width:58px;height:58px;margin-bottom:14px;border-radius:17px;display:grid;place-items:center;background:var(--surface-deep)}.file-success{background:var(--success-soft);color:var(--success)}.json-drop strong{font-size:15px}.json-drop small{margin-top:5px;color:var(--ink-faint);font-size:11px}.link-text{margin-top:13px;color:#52751a;font-size:11px;font-weight:650;text-decoration:underline}.char-count{position:absolute;right:9px;bottom:8px;color:var(--ink-faint);font-size:9px;background:var(--surface);padding:2px 4px}.admin-form-actions{margin-top:18px;display:flex;justify-content:flex-end;gap:10px}.editor-page{max-width:1380px}.editor-breadcrumb{margin-bottom:19px;display:flex;align-items:center;gap:6px;color:var(--ink-faint);font-size:10px}.editor-breadcrumb button{border:0;background:transparent;padding:0;color:var(--ink-soft)}.editor-title{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.editor-title-line{display:flex;align-items:center;gap:10px}.editor-title h1{font-size:29px;margin:0;letter-spacing:-.8px}.editor-title .hash{margin:6px 0 0;color:var(--ink-faint);font-size:9px}.editor-actions{display:flex;align-items:center;gap:8px}.version-tabs{display:flex;gap:5px;padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--line);overflow-x:auto}.version-tabs button{min-width:48px;height:32px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink-soft);font-size:10px;position:relative}.version-tabs button.active{color:var(--ink);border-color:#91b641;background:#f2fadf;font-weight:700}.version-tabs i{position:absolute;right:4px;top:4px;width:5px;height:5px;border-radius:50%;background:#62a52c}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:17px;margin-top:17px}.editor-primary{min-width:0;display:grid;gap:13px}.editor-section,.side-card,.trusted-list-card{border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:20px}.editor-section-heading{display:grid;grid-template-columns:31px minmax(0,1fr) auto;gap:10px;align-items:start;margin-bottom:20px}.editor-section-heading>span{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;background:var(--ink);color:var(--lime);font:9px Consolas,Cascadia Mono,monospace}.editor-section-heading h2{font-size:15px;margin:1px 0 2px}.editor-section-heading p{margin:0;color:var(--ink-faint);font-size:10px}.two-column-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.two-column-fields .full{grid-column:1 / -1}.binding-list{display:grid;gap:10px}.binding-card{border:1px solid var(--line);border-radius:13px;background:var(--surface-soft);padding:15px}.binding-head{margin-bottom:14px;display:flex;align-items:center;gap:8px}.binding-head>span{font:9px Consolas,Cascadia Mono,monospace;color:var(--ink-faint)}.binding-head strong{flex:1;font-size:12px}.binding-head button{width:31px;height:31px;border:0;border-radius:8px;background:transparent;color:var(--danger);display:grid;place-items:center}.binding-head button:hover{background:var(--danger-soft)}.binding-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.binding-grid .full{grid-column:1 / -1}.binding-grid .form-field>label{font-size:10px;color:var(--ink-soft);margin-bottom:5px}.binding-grid .form-field input:not([type=checkbox]),.binding-grid .form-field select,.binding-grid .form-field textarea{min-height:39px;padding:7px 9px;border-radius:8px;font-size:11px}.required-toggle{align-self:end;min-height:39px;display:flex;align-items:center;gap:7px;color:var(--ink-soft);font-size:10px}.required-toggle input,.output-options input{position:absolute;opacity:0;pointer-events:none}.check-box{width:19px;height:19px;border:1px solid var(--line-strong);border-radius:5px;display:grid;place-items:center;color:transparent;background:var(--surface)}.required-toggle input:checked+.check-box,.output-options input:checked+.check-box{background:#82ac25;border-color:#82ac25;color:#fff}.output-options{display:grid;gap:8px}.output-options label{min-height:58px;border:1px solid var(--line);border-radius:11px;padding:10px 12px;display:flex;align-items:center;gap:10px}.output-options label>span:last-child{display:flex;flex-direction:column}.output-options strong{font-size:11px}.output-options small{color:var(--ink-faint);font:9px Consolas,Cascadia Mono,monospace;margin-top:2px}.editor-aside{position:sticky;top:80px;display:grid;gap:12px}.side-card{padding:16px}.side-card-heading{display:flex;align-items:center;gap:10px;margin-bottom:13px}.validation-orb{width:37px;height:37px;flex:0 0 37px;border-radius:11px;display:grid;place-items:center;background:var(--surface-deep);color:var(--ink-soft)}.validation-orb.success{background:var(--success-soft);color:var(--success)}.validation-orb.danger{background:var(--danger-soft);color:var(--danger)}.validation-orb.pending{background:var(--warning-soft);color:var(--warning)}.side-card-heading h3{margin:0;font-size:12px}.side-card-heading p{margin:2px 0 0;color:var(--ink-faint);font-size:9px}.muted-box{padding:10px;border-radius:9px;background:var(--surface-soft);color:var(--ink-faint);font-size:9px;line-height:1.6;margin:0}.finding-list{display:grid;gap:5px}.finding-list>div{padding:8px;border-radius:8px;display:flex;align-items:flex-start;gap:7px;font-size:9px;line-height:1.5;background:var(--surface-soft);color:var(--ink-soft)}.finding-list>div.error{background:var(--danger-soft);color:var(--danger)}.finding-list>div.warning{background:var(--warning-soft);color:var(--warning)}.finding-list svg{width:14px;height:14px;flex:0 0 auto}.node-scroll{max-height:260px;overflow:auto;display:grid;gap:2px}.node-line{min-height:43px;padding:5px 3px;border-bottom:1px solid #eeeeea;display:flex;align-items:center;gap:7px}.node-line>span{width:25px;color:var(--ink-faint);font:8px Consolas,Cascadia Mono,monospace}.node-line>div{flex:1;min-width:0;display:flex;flex-direction:column}.node-line strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.node-line small{color:var(--ink-faint);font:8px Consolas,Cascadia Mono,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.node-line>i{font-style:normal;font-size:8px;padding:2px 5px;border-radius:99px}.node-line>i.trusted{background:var(--success-soft);color:var(--success)}.node-line>i.unknown{background:var(--warning-soft);color:var(--warning)}.muted-center{text-align:center;color:var(--ink-faint);font-size:9px;margin:9px 0 0}.action-card>h3{font-size:12px;margin-bottom:12px}.action-card ol{list-style:none;padding:0;margin:0;display:grid;gap:8px}.action-card li{color:var(--ink-faint);font-size:10px;display:flex;align-items:center;gap:8px}.action-card li>span{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;background:var(--surface-deep);font:8px Consolas,Cascadia Mono,monospace}.action-card li>span svg{width:13px}.action-card li.done{color:var(--success)}.action-card li.done>span{background:var(--success-soft)}.side-actions{margin-top:15px;display:grid;gap:7px}.action-card>.inline-notice{margin-top:10px}.trust-form{margin-top:17px;padding:18px;border:1px solid var(--line);border-radius:15px;background:var(--surface);display:grid;grid-template-columns:1fr auto;align-items:end;gap:10px}.trusted-list-card{margin-top:15px}.trusted-list{display:grid}.trusted-list>div{min-height:58px;border-top:1px solid #ecece8;display:flex;align-items:center;gap:11px}.trusted-check{width:29px;height:29px;border-radius:9px;display:grid;place-items:center;background:var(--success-soft);color:var(--success)}.trusted-list>div>span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column}.trusted-list strong{font:11px Consolas,Cascadia Mono,monospace}.trusted-list small{color:var(--ink-faint);font-size:9px;margin-top:2px}.trusted-date{color:var(--ink-faint);font-size:9px}.trusted-list button{width:34px;height:34px;border:0;border-radius:8px;background:transparent;color:var(--ink-faint);display:grid;place-items:center}.trusted-list button:hover{background:var(--danger-soft);color:var(--danger)}@media(min-width:620px){.workflow-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-card{min-height:125px;align-items:flex-start}.preview-grid,.result-grid{grid-template-columns:repeat(3,1fr)}.form-card{padding:24px}}@media(max-width:980px){.admin-app{display:block}.admin-sidebar{display:none}.admin-main{padding-bottom:68px}.admin-header{height:58px;padding:0 20px}.admin-header:before{content:"ComfyRemote 管理";font-weight:700;font-size:14px}.admin-page{padding:28px 22px 55px}.admin-mobile-nav{position:fixed;z-index:40;inset:auto 0 0;height:calc(65px + env(safe-area-inset-bottom));padding:4px 12px env(safe-area-inset-bottom);background:#fffffff2;backdrop-filter:blur(16px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr)}.admin-mobile-nav button{padding:4px;justify-content:center;flex-direction:column;gap:1px;font-size:9px}.admin-mobile-nav button.active{color:var(--lime-dark);background:#f1fadf}.editor-layout{grid-template-columns:1fr}.editor-aside{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.editor-aside>:last-child{grid-column:1 / -1}}@media(max-width:620px){.topbar{height:62px}.page{padding-left:15px;padding-right:15px}.dialog{padding:22px}.dialog-actions{display:grid;grid-template-columns:1fr 1fr}.admin-page{padding:22px 15px 48px}.admin-title-row{align-items:flex-start;flex-direction:column;margin-bottom:22px}.admin-title-row h1{font-size:27px}.admin-title-row>.button{width:100%}.summary-cards{grid-template-columns:1fr;gap:7px}.summary-cards>div{min-height:74px;padding:12px}.admin-workflow-row{padding:11px}.admin-row-main small{max-width:160px}.version-stack{min-width:0}.version-stack small{display:none}.admin-workflow-row>svg{display:none}.import-form .form-card{padding:16px}.json-drop{min-height:180px}.admin-form-actions{display:grid;grid-template-columns:1fr 1fr}.editor-title{align-items:flex-start;flex-direction:column}.editor-title h1{font-size:24px}.editor-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.editor-actions>.button:only-child{grid-column:1 / -1}.editor-layout{gap:10px}.editor-section{padding:15px}.editor-section-heading{grid-template-columns:29px minmax(0,1fr)}.editor-section-heading>div:last-child{grid-column:1 / -1}.editor-section-heading>div:last-child .button{width:100%}.two-column-fields,.binding-grid{grid-template-columns:1fr}.binding-grid .full{grid-column:auto}.editor-aside{grid-template-columns:1fr}.editor-aside>:last-child{grid-column:auto}.trust-form{grid-template-columns:1fr}.trusted-date{display:none}.toast{bottom:calc(76px + env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
