:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#202e3b;background:#f2f5f8;color-scheme:light;--line:#dce3e9;--muted:#627283;--blue:#235add}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,textarea,select{outline-offset:4px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}[hidden]{display:none!important}header{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4vw}.brand{font-weight:800;letter-spacing:.03em}.brand span{font-weight:400;margin-left:12px;color:var(--muted)}nav{display:flex;gap:24px;font-size:14px}main{max-width:1600px;margin:auto;padding:32px 4vw 60px}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.eyebrow{font-size:12px;letter-spacing:.17em;color:var(--blue);font-weight:700;margin:0 0 8px}h1{font-size:32px;letter-spacing:-.04em;margin:0 0 10px}.heading p:last-child{margin:0;color:var(--muted);font-size:16px}.badge{font-size:14px;background:#e3eee9;color:#29654c;padding:10px 15px;border-radius:24px}.workspace{display:grid;grid-template-columns:340px minmax(0,1fr);gap:24px;align-items:start}aside,.preview,.history{background:#fff;border:1px solid var(--line);border-radius:16px}aside{padding:24px}fieldset{border:0;padding:0;margin:0;min-width:0}.section-title{display:flex;gap:10px;align-items:center;margin:0 0 16px}.section-title span{font-size:12px;color:var(--blue);font-weight:700;border:1px solid #d9e3fa;padding:4px;border-radius:5px}h2{font-size:16px;margin:0}.drop{border:1px dashed #acb9c8;border-radius:10px;background:#f7f9fc;display:flex;flex-direction:column;text-align:center;gap:10px;padding:23px 12px;position:relative;cursor:pointer}.drop.drag{border-color:var(--blue);background:#eaf0ff}.drop input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.drop:focus-within{outline:2px solid var(--blue)}.drop strong{font-size:16px}.drop small{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.field{display:block;margin:18px 0;font-size:14px;font-weight:600}.field input,.field textarea,.field select{display:block;margin-top:8px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:11px;width:100%;color:inherit;font-size:14px}.field textarea{resize:vertical}.optional{font-weight:400;color:var(--muted);float:right}.modes{display:grid;gap:10px}.modes label{display:flex;gap:10px;border:1px solid var(--line);padding:12px;border-radius:9px;cursor:pointer}.modes label:has(input:checked){border-color:var(--blue);background:#f3f6ff}.modes input{accent-color:var(--blue)}.modes b{font-size:14px}.modes small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.label{font-size:14px;margin:18px 0 10px}.label small{color:var(--muted);float:right}.chips{display:flex;gap:8px;flex-wrap:wrap}.chips label{font-size:14px;border:1px solid var(--line);border-radius:7px;padding:7px 8px}.chips input{accent-color:var(--blue);margin:0 5px 0 0}.rules{padding:12px 14px;border-left:3px solid #84a498;background:#f4f8f6;font-size:13px;line-height:1.7}.rules p{margin:4px 0 0;color:#586b61}.primary{border:0;border-radius:9px;background:var(--blue);color:#fff;width:100%;padding:14px;margin-top:20px;font-weight:600}#status{font-size:14px;line-height:1.6;margin:14px 0 0;color:var(--muted);overflow-wrap:anywhere}#status.error{color:#ad3434}.preview{overflow:hidden;position:sticky;top:24px}.preview-head{display:flex;justify-content:space-between;align-items:center;padding:19px 22px;gap:12px}.view-switch{display:flex;background:#f0f3f6;border-radius:8px;padding:3px}.view-switch button{font-size:14px;border:0;background:none;padding:7px 14px;color:var(--muted);border-radius:6px}.view-switch button[aria-pressed=true]{background:#fff;color:#263d60;box-shadow:0 1px 4px #0001}.canvas{min-height:440px;background:#e9edf1;display:flex;align-items:center;justify-content:center;border-block:1px solid var(--line);padding:18px}.empty{text-align:center;color:var(--muted)}.empty>span{font-size:42px;font-weight:200;display:block;margin-bottom:20px}.empty h3{font-weight:500;font-size:18px}.empty p{font-size:14px}.images{width:100%;display:grid;gap:14px}.images.compare{grid-template-columns:1fr 1fr}.images figure{margin:0;min-width:0}.images img{display:block;width:100%;height:auto;max-height:65vh;object-fit:contain}.images figcaption{font-size:12px;margin-top:8px;color:var(--muted)}.preview-foot{display:flex;gap:15px;align-items:center;justify-content:space-between;padding:18px 22px}.preview-foot p{font-size:14px;color:var(--muted);line-height:1.6;margin:0}.download{white-space:nowrap;background:#202e3b;color:#fff;border-radius:8px;padding:11px 15px;font-size:14px}.review{font-size:13px;line-height:1.6;background:#fff8e8;color:#826324;margin:0;padding:12px 22px}.history{margin-top:28px;padding-bottom:22px}.text-button{border:0;background:none;color:var(--blue);font-size:14px;padding:5px 0}.history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;padding:0 22px}.history-card{border:1px solid var(--line);background:#fff;border-radius:10px;text-align:left;padding:0;overflow:hidden;color:inherit}.history-card img{width:100%;height:130px;object-fit:cover;display:block;background:#eef1f5}.history-card div{padding:12px}.history-card b{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-card small{display:block;font-size:12px;margin-top:7px;color:var(--muted)}#historyStatus{font-size:14px;color:var(--muted);margin:0 22px 14px}@media(max-width:1050px){.workspace{grid-template-columns:300px minmax(0,1fr)}.images.compare{grid-template-columns:1fr}.preview-head{flex-wrap:wrap}.canvas{min-height:360px}}@media(max-width:760px){header{padding:0 20px;height:64px}nav{gap:12px}.brand span{display:none}main{padding:24px 16px}.heading{align-items:flex-start}.badge{display:none}.workspace{display:flex;flex-direction:column}.workspace>aside,.preview{width:100%}.preview{position:static}.preview-foot{flex-wrap:wrap}h1{font-size:28px}.canvas{min-height:280px}.images.compare{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:no-preference){.primary:hover{filter:brightness(1.08)}}
.effects{display:grid;grid-template-columns:1fr 1fr;gap:8px}.effects label{border:1px solid var(--line);border-radius:9px;padding:11px 9px;display:flex;gap:6px;cursor:pointer}.effects label:has(input:checked){background:#edf3ff;border-color:var(--blue)}.effects input{accent-color:var(--blue);margin:3px 0 0;width:13px;height:13px;flex-shrink:0}.effects b{font-size:14px;display:block}.effects small{display:block;font-size:12px;color:var(--muted);line-height:1.5;margin-top:4px}.effect-note{color:var(--muted);font-size:12px;line-height:1.7;margin:10px 0 18px}

.dream-mode{margin-top:10px}.dream-mode label:has(input:checked){background:#f1edff;border-color:#8263c4}

.quota{margin-top:18px;padding:12px 0 0;border-top:1px solid var(--line)}.quota b{display:block;font-size:14px;color:var(--blue)}.quota small{display:block;font-size:12px;line-height:1.7;color:var(--muted);margin-top:5px}

/* Desktop drag-and-drop feedback on both upload targets. */
.canvas{position:relative}.file-dragging .drop{border:2px dashed var(--blue);background:#edf3ff}.file-dragging .canvas::after{content:"松开鼠标，上传房间照片";position:absolute;inset:12px;z-index:3;display:flex;align-items:center;justify-content:center;border:2px dashed var(--blue);border-radius:12px;background:rgba(235,242,255,.94);color:var(--blue);font-size:20px;font-weight:600;text-align:center;padding:24px;pointer-events:none}.drop{min-height:130px}

.process-panel{margin:0 20px 18px;padding:16px;background:#f5f8ff;border:1px solid #d8e3fa;border-radius:10px}.process-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:14px}.process-heading>span{font-size:13px;color:var(--muted);white-space:nowrap}.process-steps{display:flex;list-style:none;padding:0;margin:17px 0 12px;gap:8px;counter-reset:stages}.process-steps li{flex:1;font-size:12px;color:var(--muted);counter-increment:stages}.process-steps li:before{content:counter(stages);display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:5px;border-radius:50%;background:#e0e5ee;font-size:12px}.process-steps li.done{color:#2c7956}.process-steps li.done:before{content:'✓';background:#dcefe4}.process-steps li.active{color:var(--blue);font-weight:600}.process-steps li.active:before{color:#fff;background:var(--blue)}.process-steps li.failed{color:#b44444}.process-track{height:4px;overflow:hidden;background:#e0e7f2;border-radius:3px}.process-track span{display:block;width:30%;height:100%;background:var(--blue);animation:process-wait 1.8s ease-in-out infinite}.process-panel[data-state=done] .process-track span{width:100%;background:#368862;animation:none}.process-panel[data-state=failed] .process-track span{width:100%;background:#b75858;animation:none}#processDetail{font-size:13px;line-height:1.7;color:var(--muted);margin:10px 0}.process-panel details{font-size:13px;border-top:1px solid #dce5f3;padding-top:10px}.process-panel summary{cursor:pointer}#processUpdated{color:var(--muted);font-size:12px}#processMeta{font-size:12px;overflow-wrap:anywhere;color:var(--muted);margin-top:12px}#processLogs{list-style:none;margin:10px 0 0;padding:0;max-height:190px;overflow:auto}#processLogs li{display:flex;gap:10px;margin:7px 0;line-height:1.6;overflow-wrap:anywhere}#processLogs time{font-variant-numeric:tabular-nums;color:var(--muted);flex-shrink:0}@keyframes process-wait{from{transform:translateX(-100%)}to{transform:translateX(440%)}}@media(max-width:1050px){.process-steps{flex-wrap:wrap}.process-steps li{flex:0 0 30%}}@media(prefers-reduced-motion:reduce){.process-track span{animation:none}}

.images img{cursor:zoom-in}.viewer-open{overflow:hidden}#imageViewer{width:96vw;max-width:1800px;height:94dvh;max-height:96dvh;border:1px solid #526178;border-radius:14px;padding:0;color:#f4f6fa;background:#14202c;overflow:hidden}#imageViewer::backdrop{background:rgba(6,12,20,.85)}#imageViewer[open]{display:flex;flex-direction:column}.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid #ffffff26}.viewer-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.viewer-actions button{background:#293a4d;border:1px solid #526178;border-radius:7px;color:#fff;padding:8px 12px;font-size:14px}#zoomLabel{font-size:13px;min-width:65px;text-align:center}#viewerScroll{flex:1;min-height:0;overflow:auto;padding:12px;overscroll-behavior:contain;display:flex;align-items:safe center;justify-content:safe center}#viewerImage{display:block;max-width:none;max-height:none;flex-shrink:0;height:auto;object-fit:contain}.viewer-hint{text-align:center;font-size:12px;color:#bdc9d8;margin:0;padding:10px}@media(max-width:650px){.viewer-toolbar{align-items:flex-start;flex-direction:column}.viewer-actions{gap:6px}.viewer-actions button{padding:7px 9px}#imageViewer{width:100vw;height:96dvh;border-radius:8px}.viewer-hint{font-size:12px}}

.composition-switch{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding:14px 12px;border:1px solid var(--line);border-radius:9px;cursor:pointer}.composition-switch:has(input:checked){border-color:var(--blue);background:#edf3ff}.composition-switch b{font-size:14px}.composition-switch small{display:block;font-size:12px;color:var(--muted);line-height:1.6;margin-top:5px}.composition-switch input{appearance:none;width:40px;height:24px;flex-shrink:0;border-radius:20px;background:#c7d0dc;position:relative;cursor:pointer;margin:0}.composition-switch input:before{content:'';display:block;position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;top:3px;left:3px;box-shadow:0 1px 3px #0002}.composition-switch input:checked{background:var(--blue)}.composition-switch input:checked:before{left:19px}.composition-switch input:disabled{opacity:.5;cursor:not-allowed}
