:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#252a2a;background:#f6f7f8;font-size:14px;font-synthesis:none;--green:#176a54;--line:#e2e6e5;--muted:#77817e;--radius:6px}*{box-sizing:border-box;letter-spacing:0}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:inherit;text-decoration:none}button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;background:none;color:inherit}svg{width:19px;height:19px;flex-shrink:0}input,select,textarea{width:100%;border:1px solid #d5ddda;border-radius:var(--radius);background:#fff;padding:10px 11px;color:#252a2a;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #b9d9cc;border-color:#176a54}textarea{resize:vertical;line-height:1.75;min-height:132px;max-height:350px}label{display:block;font-weight:500;font-size:13px}label input,label select,label textarea{margin-top:8px}h1,h2,h3,p{margin:0}h1{font-size:23px;line-height:1.4;font-weight:650}h2{font-size:13px;font-weight:600}h3{font-size:15px;margin-bottom:18px}.primary{background:var(--green);color:#fff;border-radius:var(--radius);min-height:42px;padding:10px 18px;font-weight:600}.primary:hover{background:#10533f}.subtle{border:1px solid #d9e0de;background:#fff;border-radius:var(--radius);min-height:35px;padding:7px 12px;font-size:13px}.subtle:hover,.icon-button:hover{background:#edf2ef}.icon-button{width:34px;height:34px;border-radius:4px;flex-shrink:0}.text-button{font-size:12px;color:var(--green);padding:4px 0;gap:5px}.text-button svg{width:15px;height:15px}.danger{background:#ae3535;color:#fff;padding:10px 18px;border-radius:6px}.error{color:#b73535;font-size:12px;line-height:1.7;overflow-wrap:anywhere}.error:empty{display:none}.notice{padding:12px 14px;border:1px solid #d4e1e9;border-radius:6px;background:#f2f7fa;color:#416170;font-size:12px;line-height:1.8;margin-bottom:18px;overflow-wrap:anywhere}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#b3bcb8;flex-shrink:0}.ready .dot,.provider-label .dot,.gate-footer .dot{background:#298767}.shell{display:grid;grid-template-columns:210px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:26px 16px 16px}.brand{display:flex;align-items:center;gap:10px;padding:0 4px;margin-bottom:40px;font-size:17px;font-weight:650}.brandmark{display:flex;align-items:center;justify-content:center;background:var(--green);color:#fff;width:35px;height:35px;border-radius:8px;flex-shrink:0}.brandmark svg{width:24px;height:24px}.brand small{display:block;font-size:9px;font-weight:500;color:var(--muted);margin-top:4px}.nav-label{font-size:11px;color:#929b97;padding:0 12px;margin-bottom:12px}.nav-button{justify-content:flex-start;width:100%;min-height:43px;text-align:left;padding:10px 12px;gap:11px;color:#64716c;font-size:13px;border-radius:5px;margin-bottom:5px}.nav-button.active{background:#eaf3ee;color:#176a54;font-weight:600}.nav-button:hover{background:#f0f4f2}.nav-count{margin-left:auto;font-size:11px;color:#84948b}.sidebar-bottom{margin-top:auto}.provider-label{font-size:13px;padding:14px 12px;margin-bottom:10px;border-top:1px solid var(--line)}.provider-label .dot{margin-right:7px}.provider-label small{display:block;margin:7px 0 0 14px;font-size:11px;color:var(--muted);overflow-wrap:anywhere}.profile{display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);margin-top:14px;padding:18px 3px 0;font-size:12px}.avatar{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid #d8e2dc;border-radius:50%;background:#f0f4f1;color:#507060;font-size:12px;flex-shrink:0}.profile>span:nth-child(2){min-width:0;overflow-wrap:anywhere}.profile small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.profile button{margin-left:auto}.main{min-width:0}.topbar{height:65px;border-bottom:1px solid var(--line);background:#fff;padding:0 30px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.topbar>div{display:flex;align-items:center;gap:12px;min-width:0}.crumb{color:var(--muted)}.slash{color:#bac2be}.topbar strong{font-weight:500}.topbar-right{gap:20px!important}.quota{color:#70807a;white-space:nowrap}.connection{border:1px solid #e4e6df;background:#f9faf7;color:#87906b;border-radius:5px;font-size:11px;display:flex;gap:6px;align-items:center;padding:6px 9px;white-space:nowrap}.connection.ready{background:#f0f7f3;color:#4c806c;border-color:#dfece4}#content{padding:27px 30px 34px;max-width:1600px;margin:auto}.workspace-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:24px}.workspace-heading p{font-size:12px;color:var(--muted);margin-top:6px}.editor-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:25px}.controls{padding-right:25px;border-right:1px solid var(--line)}.segmented{display:flex;background:#e9ecea;border:1px solid #e3e7e4;padding:3px;border-radius:6px;margin-bottom:26px;height:40px}.segmented button{flex:1;font-size:12px;color:#6f7b75;border-radius:4px;min-width:0;white-space:nowrap}.segmented svg{width:15px;height:15px}.segmented .selected{background:#fff;color:var(--green);box-shadow:0 1px 3px #22332312}.field-heading{display:flex;align-items:center;justify-content:space-between;min-height:32px;gap:8px;margin-bottom:8px}.field-heading>span{font-size:11px;color:#909a95}.dropzone{border:1px dashed #c8d3cd;background:#fff;border-radius:6px;padding:20px 10px;text-align:center;cursor:pointer;display:flex;align-items:center;flex-direction:column;gap:9px;min-height:145px}.dropzone:hover,.dropzone.dragging{border-color:var(--green);background:#f3f8f5}.dropzone input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.dropzone:focus-within{outline:2px solid var(--green);outline-offset:3px}.upload-symbol{width:35px;height:35px;border-radius:6px;background:#edf3ef;display:grid;place-items:center;color:#57816c}.dropzone strong{font-size:13px;font-weight:500}.dropzone>span:last-child{font-size:10px;color:var(--muted);line-height:1.5}.reference-list{display:grid;gap:6px;margin-top:9px}.reference{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:5px;padding:5px;background:#fff}.reference img{width:34px;height:34px;object-fit:contain;background:#f2f3f2;border-radius:3px}.reference>span{font-size:11px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;min-width:0;flex:1}.reference .icon-button{width:25px;height:25px}.reference svg{width:14px;height:14px}#upload-section{margin-bottom:20px}#upload-section[hidden]{display:none}#sample-button{margin-top:7px}.preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:14px}.preset-button{border:1px solid #dce3df;background:#fff;font-size:11px;height:34px;border-radius:5px;justify-content:flex-start;padding:8px 10px;gap:7px}.preset-button:hover{border-color:#94b8a3;background:#f3f8f5}.preset-button svg{width:14px;height:14px;color:#728e7d}#saved-preset{margin-bottom:10px;font-size:12px}.prompt-count{font-size:10px;text-align:right;color:#8b9590;margin-top:4px}.setting-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:15px;margin-top:18px}.setting-grid label{font-size:12px;color:#65726b}.setting-grid select{font-size:12px}.submit-area{padding-top:22px}.submit-area .primary{width:100%;min-height:43px}.submit-area .error{margin-bottom:10px}.model-note{display:flex;justify-content:space-between;gap:5px;font-size:10px;color:#88968e;margin-top:11px;overflow-wrap:anywhere}.result-area{min-width:0}.result-toolbar{display:flex;align-items:center;justify-content:space-between;min-height:40px;margin-bottom:15px}.result-toolbar h2{font-size:14px}.result-toolbar>div{display:flex;gap:5px}.comparison{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.preview-pane{position:relative;aspect-ratio:3/4;background:#fff;border:1px solid var(--line);border-radius:6px;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden;max-height:570px}.preview-pane>img{width:100%;height:100%;object-fit:contain;padding:32px 12px 12px}.pane-label{position:absolute;top:12px;left:12px;font-size:10px;background:#f1f4f2;border:1px solid #e2e8e3;padding:4px 7px;border-radius:3px;z-index:1;color:#5a7062}.preview-empty{color:#9aa69f;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:13px;text-align:center;padding:30px 16px;width:100%;max-height:100%;overflow:auto;font-size:12px}.preview-empty>svg{width:31px;height:31px;color:#a7b8ac}.preview-empty strong{color:#5d7968;font-size:13px;font-weight:500}.preview-empty p{font-size:11px;line-height:1.8;overflow-wrap:anywhere}.preview-empty.failed>svg{color:#bc7168}.preview-empty.failed strong{color:#a9564e}.preview-meta{min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;color:#8b9690;overflow-wrap:anywhere}.recent-section{margin-top:24px;border-top:1px solid var(--line);padding-top:15px}.recent-section .field-heading{margin-bottom:8px}.recent-row{width:100%;display:flex;text-align:left;padding:10px 4px;gap:12px;border-bottom:1px solid var(--line);min-height:63px}.recent-row:hover,.recent-row.selected{background:#edf3ef}.recent-row>img{height:41px;width:41px;object-fit:contain;background:#fff;border:1px solid #e2e8e3;border-radius:4px}.recent-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.recent-title small{display:block;color:#909c94;font-size:10px;margin-top:6px}.badge{font-size:10px;line-height:1.4;white-space:nowrap;display:inline-flex;align-items:center;padding:4px 7px;border-radius:4px;background:#eef1ef;color:#87948b;flex-shrink:0}.badge.succeeded{background:#e9f5ee;color:#43805a}.badge.running{background:#edf3fb;color:#4d79ac}.badge.queued{background:#fff4e5;color:#b8873c}.badge.failed{background:#f9ecea;color:#b66c61}.badge.cancelled{background:#eef0ef;color:#8c938e}.empty-record{display:flex;align-items:center;justify-content:center;gap:8px;color:#9aa79f;font-size:12px;min-height:95px}.empty-record svg{width:17px;height:17px}.job-symbol{width:41px;height:41px;display:grid;place-items:center;background:#eff4f0;border-radius:4px;color:#8aa190;flex-shrink:0}.spinner{display:inline-block;width:25px;height:25px;border:2px solid #dfe9e2;border-top-color:var(--green);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.history-tools{display:flex;align-items:center;gap:16px}.checkbox{display:flex;align-items:center;gap:7px;font-size:12px;color:#607367}.checkbox input{width:15px;height:15px;margin:0;accent-color:var(--green)}.history-table{overflow:auto;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th{background:#f4f6f5;color:#7c8a81;font-size:11px;font-weight:500;padding:14px 12px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:13px 12px;border-bottom:1px solid #eef0ef;color:#637469;white-space:nowrap}.table-task{display:flex;align-items:center;gap:12px;min-width:180px;max-width:410px;color:#374d3f}.table-task img{width:45px;height:45px;object-fit:contain;border:1px solid var(--line);border-radius:4px}.table-task>span:last-child{overflow:hidden;text-overflow:ellipsis}.row-actions{display:flex;gap:3px}.empty-page{text-align:center;color:#97a29b;font-size:13px;padding:70px 20px}.preset-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.preset-item{background:#fff;border:1px solid var(--line);border-radius:6px;padding:20px;min-width:0}.preset-item>div{display:flex;gap:10px;align-items:center;color:#53765f}.preset-item p{font-size:12px;line-height:1.8;color:#819087;margin:18px 0;white-space:pre-wrap;overflow-wrap:anywhere}.preset-item footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:10px}.gate{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#f4f7f5;padding:32px 20px;gap:24px}.gate-brand{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:600}.gate-form{width:100%;max-width:410px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:32px}.gate-form h1{font-size:22px;margin:12px 0 26px}.eyebrow{font-size:9px;color:#8e9c94}.gate-form label{margin-bottom:18px}.gate-form .primary{width:100%;margin-top:4px}.gate-form .error{margin-bottom:14px}.gate-footer{display:flex;align-items:center;justify-content:center;gap:7px;border-top:1px solid var(--line);margin-top:25px;padding-top:21px;color:#8a978f;font-size:11px}.loading{display:grid;place-items:center;height:100vh;color:#75847b}dialog{border:1px solid #dbe4de;border-radius:8px;padding:25px;width:calc(100% - 32px);max-width:460px;max-height:90vh;color:#304337;box-shadow:0 15px 60px #14332220}dialog.wide{max-width:660px}dialog::backdrop{background:#152c2255}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:12px}.modal-header h2{font-size:18px}.modal-header button{margin:-6px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px;align-items:center}.modal-actions .primary{min-height:37px;font-size:12px}dialog form>label{margin-bottom:17px}dialog form>.setting-grid{margin-bottom:20px}dialog .error{margin-top:12px}details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0;margin-top:18px}summary{font-size:12px;cursor:pointer;color:#718577}details .setting-grid{margin-bottom:4px}.config-note{font-size:11px;line-height:1.7;color:#8d9a92;margin-top:15px}.modal-tabs{display:flex;gap:25px;border-bottom:1px solid var(--line);margin-bottom:22px}.modal-tabs button{padding:0 0 12px;font-size:13px;color:#8e9c93}.modal-tabs .selected{color:var(--green);border-bottom:2px solid var(--green)}#test-result{font-size:12px;line-height:1.8;overflow-wrap:anywhere;margin-top:16px}.user-list{border-top:1px solid var(--line);margin-top:24px}.user-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.user-name{flex:1;min-width:0;font-size:13px;overflow-wrap:anywhere}.user-name small{display:block;font-size:10px;color:#8b9a90;margin-top:5px}#toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,10px);background:#283e32;color:#fff;padding:11px 18px;border-radius:6px;max-width:calc(100vw - 32px);box-shadow:0 4px 16px #22332218;font-size:13px;z-index:100;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;overflow-wrap:anywhere}#toast.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:1500px){.editor-layout{grid-template-columns:340px minmax(0,1fr);gap:32px}.controls{padding-right:32px}.preview-pane{aspect-ratio:1/1}}
@media(max-width:1150px){.shell{grid-template-columns:180px minmax(0,1fr)}.sidebar{padding:22px 12px 16px}.brand{font-size:15px;gap:8px}.brandmark{width:30px;height:30px}.brand small{font-size:8px}.topbar{padding:0 20px}#content{padding:24px 20px}.editor-layout{grid-template-columns:280px minmax(0,1fr);gap:18px}.controls{padding-right:18px}.comparison{gap:8px}.preview-pane{aspect-ratio:2/3}.preset-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.shell{grid-template-columns:70px minmax(0,1fr)}.sidebar{padding:22px 10px 15px}.brand{padding:0;justify-content:center}.brand>span:last-child,.nav-label,.nav-count,.provider-label,.profile>span,.profile small{display:none}.nav-button{font-size:0;justify-content:center;gap:0;padding:12px}.nav-button svg{width:20px;height:20px}.profile{justify-content:center;padding-top:14px}.profile button{margin:0}.editor-layout{grid-template-columns:260px minmax(0,1fr)}.comparison{grid-template-columns:1fr}.preview-pane{aspect-ratio:1/1;max-height:310px}.recent-section{margin-top:15px}.topbar-right{gap:10px!important}}
@media(max-width:650px){.shell{display:block}.sidebar{position:static;height:auto;flex-direction:row;align-items:center;justify-content:space-between;padding:12px 14px;border-right:0;border-bottom:1px solid var(--line);gap:10px}.brand{margin:0}.sidebar nav{display:flex;gap:4px;flex:1;justify-content:center}.nav-button{width:36px;height:36px;min-height:36px;margin:0;padding:7px}.sidebar-bottom{display:flex;align-items:center;margin:0;gap:4px}.profile{margin:0;border:0;padding:0}.topbar{height:52px;padding:0 16px;font-size:11px;gap:5px}.topbar>div{gap:7px}.crumb,.slash{display:none}.topbar-right{gap:9px!important}.quota{font-size:10px}.connection{font-size:10px;padding:5px 6px}#content{padding:21px 16px 28px}.workspace-heading{margin-bottom:20px;gap:8px}h1{font-size:21px}.workspace-heading .subtle{font-size:11px;padding:6px 8px}.editor-layout{display:flex;flex-direction:column;gap:25px}.controls{padding-right:0;border-right:0}.segmented{margin-bottom:20px}.dropzone{min-height:128px;padding:16px}.comparison{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.preview-pane{aspect-ratio:3/4;max-height:none}.preview-pane>img{padding:30px 8px 8px}.pane-label{top:8px;left:8px}.preview-empty{font-size:11px;padding:32px 10px 12px}.preview-empty p{font-size:10px}.preview-meta{font-size:9px}.recent-section{margin-top:14px}.preset-list{grid-template-columns:1fr}.setting-grid{gap:12px}.gate-form{padding:26px 23px}dialog{padding:21px;max-height:92vh}.modal-header h2{font-size:17px}.user-row{gap:9px}.history-table td,.history-table th{padding:10px}.table-task{max-width:240px}.model-note{font-size:11px}.submit-area{padding-top:18px}.result-toolbar{margin-bottom:10px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
