:root{--ink:#181612;--paper:#fffdfa;--surface:#efefea;--panel:#f7f7f3;--line:#d8d6cd;--line-on-dark:#ffffff24;--muted:#716f68;--muted-strong:#a8a49a;--muted-on-dark:#b9b4a9;--accent:#f2583e;--accent-dark:#b93624;--success:#48d597;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;color:var(--ink);background:var(--surface);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;font-weight:500;line-height:1.5}*{box-sizing:border-box}html{background:var(--surface)}body{min-width:320px;min-height:100svh;margin:0}button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{cursor:not-allowed}::selection{color:var(--paper);background:var(--accent)}.app-shell{background:var(--surface);height:100svh;min-height:100svh;color:var(--ink);grid-template-columns:300px minmax(0,1fr) 360px;display:grid;overflow:hidden}.control-rail,.workspace,.inspector{min-width:0;animation:.48s both rise-in}.control-rail{background:var(--ink);height:100svh;color:var(--paper);flex-direction:column;gap:28px;padding:28px;display:flex;position:sticky;top:0}.brand-lockup{align-items:center;gap:14px;display:flex}.brand-mark{width:42px;height:42px;color:var(--accent);background:#ffffff0f;border:1px solid #ffffff2e;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.brand-lockup p,.overline{letter-spacing:0;text-transform:uppercase;color:var(--muted-strong);margin:0;font-size:12px;font-weight:700;line-height:1}.brand-lockup h1{letter-spacing:0;margin:6px 0 0;font-size:24px;font-weight:750;line-height:1}.rail-section,.inspector-section,.prompt-panel{border-top:1px solid var(--line-on-dark);padding-top:22px}.section-title,.prompt-head,.control-label,.history-head,.run-status,.viewer-actions,.rail-actions{align-items:center;display:flex}.section-title{gap:8px;margin-bottom:16px;font-size:14px;font-weight:700}.field-label{color:var(--muted-on-dark);margin-bottom:8px;font-size:13px;display:block}.key-control input,.model-select-control select,.prompt-panel textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:var(--paper);border-radius:8px;outline:none;transition:border-color .18s,box-shadow .18s,background .18s}.key-control input{color:var(--paper);background:#ffffff12;border-color:#ffffff24;padding:12px}.model-select-control select{height:44px;color:var(--paper);background:#ffffff12;border-color:#ffffff24;padding:0 12px}.model-select-control select option{color:var(--ink);background:var(--paper)}.key-control input:focus,.model-select-control select:focus,.prompt-panel textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #f2583e29}.rail-actions{gap:10px;margin-top:14px}.button,.generate-button,.icon-button,.text-button,.reference-clear,.control-trigger,.history-page-button,.segmented button,.count-options button,.history-item{font:inherit;letter-spacing:0;border:0;border-radius:8px}.button,.generate-button{justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 14px;font-weight:700;display:inline-flex}.button.light{color:var(--ink);background:var(--paper)}.button.ghost{color:var(--paper);background:0 0;border:1px solid #ffffff2e}.key-state{color:var(--muted-on-dark);align-items:center;gap:8px;margin-top:14px;font-size:13px;display:flex}.key-state.is-ready{color:var(--success)}.meta-list{gap:14px;margin:0;display:grid}.meta-list div{gap:6px;display:grid}.meta-list dt{color:var(--muted-on-dark);font-size:12px}.meta-list dd{overflow-wrap:anywhere;font-family:var(--mono);color:var(--paper);margin:0;font-size:13px}.api-help{border-top:1px solid var(--line-on-dark);color:var(--muted-on-dark);margin:16px 0 0;padding-top:14px;font-size:13px;line-height:1.55}.api-help a{color:var(--paper);text-underline-offset:3px;font-weight:700;text-decoration-color:#ffffff57}.api-help a:hover{color:var(--accent)}.generate-button{width:100%;color:var(--paper);background:var(--accent);margin-top:auto;transition:transform .18s,box-shadow .18s,opacity .18s;box-shadow:0 12px 26px #f2583e3d}.generate-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 16px 34px #f2583e4d}.generate-button:disabled{cursor:not-allowed;opacity:.72}.workspace{grid-template-rows:auto minmax(360px,1fr);gap:22px;height:100svh;min-height:0;padding:30px;display:grid;overflow:hidden}.run-status{z-index:3;border:1px solid var(--line);min-height:34px;color:var(--muted);background:var(--paper);border-radius:8px;flex:none;gap:8px;padding:0 12px;font-size:13px;position:absolute;top:14px;right:14px}.prompt-panel{border-top:0;padding-top:0}.prompt-head{color:var(--muted);justify-content:space-between;margin-bottom:10px;font-size:13px}.prompt-head label{color:var(--ink);font-weight:700}.prompt-panel textarea{resize:vertical;min-height:164px;padding:16px;font-size:15px;line-height:1.6}.reference-row{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:10px;margin-top:12px;display:grid}.reference-panel{gap:10px;min-width:0;display:grid}.reference-drop{border:1px dashed var(--line);min-width:0;min-height:72px;color:var(--muted);background:var(--paper);cursor:pointer;border-radius:8px;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;padding:8px 12px 8px 8px;transition:border-color .16s,color .16s,transform .16s;display:grid;position:relative}.reference-drop:hover{color:var(--ink);border-color:var(--accent);transform:translateY(-1px)}.reference-drop.has-image{border-style:solid;border-color:#f2583e61}.reference-drop.is-dragging{color:var(--ink);border-color:var(--accent);background:#f2583e14}.reference-drop input{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.reference-icon{width:48px;height:48px;color:var(--accent);background:#f2583e1a;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.reference-drop strong,.reference-drop small{white-space:nowrap;text-overflow:ellipsis;min-width:0;display:block;overflow:hidden}.reference-drop strong{color:var(--ink);font-size:14px}.reference-drop small{color:var(--muted);margin-top:2px;font-size:12px}.reference-stack{width:54px;height:54px;position:relative}.reference-stack img{object-fit:cover;border:2px solid var(--paper);background:var(--surface);border-radius:6px;width:44px;height:44px;position:absolute;box-shadow:0 8px 18px #0000001f}.reference-stack img:first-child{z-index:3;top:0;left:0}.reference-stack img:nth-child(2){z-index:2;top:5px;left:5px}.reference-stack img:nth-child(3){z-index:1;top:10px;left:10px}.reference-list{grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:8px;display:grid}.reference-thumb{aspect-ratio:1;border:1px solid var(--line);background:var(--paper);border-radius:8px;min-width:0;position:relative;overflow:hidden}.reference-thumb img{object-fit:cover;width:100%;height:100%;display:block}.reference-thumb span{min-width:18px;height:18px;color:var(--paper);background:#0c0c0ac2;border-radius:999px;justify-content:center;align-items:center;font-size:11px;font-weight:760;display:inline-flex;position:absolute;bottom:4px;right:4px}.reference-clear{min-width:68px;color:var(--accent);background:#f2583e14;border:1px solid #f2583e47;padding:0 14px;font-weight:700}.reference-clear:disabled{cursor:not-allowed;opacity:.58}.error-line{border-left:3px solid var(--accent);color:var(--accent-dark);background:#f2583e17;margin-top:12px;padding:12px;font-size:14px}.result-stage{border:1px solid var(--line);background:linear-gradient(90deg, #1a19160d 1px, transparent 1px), linear-gradient(#1a19160d 1px, transparent 1px), var(--paper);background-size:32px 32px;border-radius:8px;flex-direction:column;min-height:420px;display:flex;position:relative;overflow:hidden}.preview-pane{flex:auto;place-items:center;width:100%;min-height:0;padding:0;display:grid;position:relative;overflow:hidden}.empty-state,.loading-state{color:var(--muted);text-align:center;place-items:center;gap:14px;display:grid}.empty-state svg{color:var(--accent)}.empty-state p,.loading-state p,.muted{color:var(--muted);margin:0}.scan-frame{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:190px;height:190px;position:relative;overflow:hidden}.scan-frame span{background:linear-gradient(100deg,#0000 0%,#f2583e24 45%,#1d94882e 55%,#0000 100%);animation:1.2s ease-in-out infinite scan;position:absolute;inset:0;transform:translate(-100%)}.image-viewer{grid-template-rows:minmax(0,1fr) auto;place-items:stretch stretch;gap:12px;width:auto;min-width:0;height:auto;min-height:0;margin:0;display:grid;position:absolute;inset:58px 18px 18px;overflow:hidden}.image-fit-area{justify-content:center;align-items:center;width:100%;min-width:0;height:100%;min-height:0;display:flex;overflow:hidden}.image-fit-area img{cursor:zoom-in;object-fit:contain;filter:drop-shadow(0 26px 40px #00000029);border-radius:8px;width:auto;max-width:100%;height:auto;max-height:100%;animation:.42s both image-in;display:block}.image-viewer figcaption{justify-content:space-between;justify-self:center;align-items:center;gap:12px;width:100%;max-width:920px;display:flex}.image-viewer figcaption>span{color:var(--paper);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0c0c0ab8;border-radius:8px;padding:8px 10px;font-size:13px}.viewer-actions{gap:8px}.icon-button{width:38px;height:38px;color:var(--paper);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0c0c0abd;justify-content:center;align-items:center;transition:background .16s,transform .16s;display:inline-flex}.icon-button:hover{background:var(--accent);transform:translateY(-1px)}.batch-strip{border-top:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f7f7f3eb;flex:none;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;width:100%;padding:12px;display:grid}.batch-slot{min-height:70px;color:var(--muted);text-align:left;border:1px solid var(--line);background:var(--paper);grid-template-columns:54px minmax(0,1fr);align-items:center;gap:10px;padding:8px;transition:border-color .16s,color .16s,transform .16s;display:grid}.batch-slot:disabled{cursor:default;opacity:1}.batch-slot:not(:disabled):hover,.batch-slot.is-active{color:var(--ink);border-color:var(--accent);transform:translateY(-1px)}.slot-thumb{width:54px;height:54px;color:var(--muted);background:var(--surface);border-radius:6px;justify-content:center;align-items:center;font-size:13px;font-weight:760;display:inline-flex;position:relative;overflow:hidden}.slot-thumb img{object-fit:cover;width:100%;height:100%}.batch-slot.is-generating .slot-thumb{color:var(--accent);background:#f2583e1a}.batch-slot.is-generating .slot-thumb:after{content:"";background:var(--accent);border-radius:999px;height:2px;animation:.9s ease-in-out infinite progress-pulse;position:absolute;bottom:8px;left:8px;right:8px}.batch-slot.is-failed{border-color:#f2583e75}.batch-slot.is-failed .slot-thumb{color:var(--accent-dark);background:#f2583e1f}.slot-label{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:13px;font-weight:650;overflow:hidden}.inspector{overscroll-behavior:contain;border-left:1px solid var(--line);background:var(--panel);flex-direction:column;gap:28px;height:100svh;min-height:0;padding:30px 26px;display:flex;overflow-y:auto}.inspector-section{border-color:var(--line)}.control-block{border-top:1px solid var(--line);gap:0;padding:18px 0;display:grid}.control-block:first-of-type{border-top:0;padding-top:0}.control-label{color:var(--muted);justify-content:space-between;gap:14px;font-size:13px}.control-label span{color:var(--ink);font-weight:700}.control-label strong{color:var(--muted);font-size:12px;font-weight:650}.control-trigger{width:100%;min-height:48px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:14px;padding:0;display:flex}.control-trigger-copy{gap:4px;min-width:0;display:grid}.control-trigger-copy span{color:var(--ink);font-size:13px;font-weight:760}.control-trigger-copy strong{color:var(--muted);font-size:12px;font-weight:650}.collapse-icon{color:var(--muted);flex:none;transition:color .16s,transform .16s}.control-trigger:hover .collapse-icon{color:var(--ink)}.collapsible-control.is-open .collapse-icon{transform:rotate(180deg)}.collapse-panel{padding-top:12px;animation:.16s both collapse-in}.segmented{border:1px solid var(--line);background:var(--paper);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:4px;display:grid}.size-options{grid-template-columns:repeat(3,minmax(0,1fr))}.segmented button{min-height:38px;color:var(--muted);text-align:center;background:0 0;gap:3px;padding:8px 10px;transition:color .16s,background .16s,transform .16s;display:grid}.segmented small{color:inherit;font-size:11px}.segmented button.is-active{color:var(--paper);background:var(--ink)}.segmented button:hover{transform:translateY(-1px)}.segmented button:disabled{cursor:not-allowed;opacity:.58;transform:none}.count-options{border:1px solid var(--line);background:var(--paper);border-radius:8px;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:4px;display:grid}.count-options button{min-height:42px;color:var(--muted);background:0 0;font-weight:760;transition:color .16s,background .16s,transform .16s}.count-options button.is-active{color:var(--paper);background:var(--ink)}.count-options button:hover{transform:translateY(-1px)}.count-options button:disabled{cursor:not-allowed;opacity:.58}.history-head{justify-content:space-between;gap:12px}.text-button{color:var(--accent);background:0 0;padding:0;font-weight:700}.history-list{gap:10px;display:grid}.history-item{color:var(--muted);text-align:left;border:1px solid var(--line);background:var(--paper);grid-template-columns:54px minmax(0,1fr);align-items:center;gap:10px;padding:8px;transition:border-color .16s,transform .16s,color .16s;display:grid}.history-item:hover,.history-item.is-active{color:var(--ink);border-color:var(--accent);transform:translateY(-1px)}.history-item img{object-fit:cover;background:var(--surface);border-radius:6px;width:54px;height:54px}.history-item span{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:13px;overflow:hidden}.history-pagination{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;margin-top:12px;font-size:12px;font-weight:700;display:flex}.history-page-button{width:32px;height:32px;color:var(--ink);background:var(--paper);border:1px solid var(--line);justify-content:center;align-items:center;transition:border-color .16s,color .16s,transform .16s;display:inline-flex}.history-page-button:hover:not(:disabled){color:var(--accent);border-color:var(--accent);transform:translateY(-1px)}.history-page-button:disabled{cursor:not-allowed;opacity:.42}.original-preview-backdrop{z-index:30;cursor:zoom-out;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0a0a08e0;place-items:center;padding:24px;animation:.18s both image-in;display:grid;position:fixed;inset:0}.original-preview-backdrop img{cursor:default;object-fit:contain;width:auto;max-width:100%;height:auto;max-height:100%;display:block;box-shadow:0 30px 90px #00000057}.spin{animation:.8s linear infinite spin}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scan{to{transform:translate(100%)}}@keyframes image-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes collapse-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes progress-pulse{0%,to{opacity:.45;transform:scaleX(.35)}50%{opacity:1;transform:scaleX(1)}}@media (width<=1180px){.app-shell{grid-template-columns:280px minmax(0,1fr);height:auto;overflow:visible}.workspace,.inspector{height:auto;overflow:visible}.inspector{border-top:1px solid var(--line);border-left:0;grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);display:grid}}@media (width<=820px){.app-shell{grid-template-columns:1fr}.control-rail{height:auto;padding:22px;position:static}.workspace{grid-template-rows:auto auto;padding:22px}.reference-row,.inspector{grid-template-columns:1fr}.result-stage{min-height:360px}.image-fit-area img{max-width:100%;max-height:100%}.image-viewer figcaption{background:var(--panel);width:100%;padding:12px;position:static}.batch-strip{grid-template-columns:1fr}}
