:root {font-family:Arial,sans-serif;color:#eef0f3;background:#111318;color-scheme:only dark;--ink:#eef0f3;--muted:#a1a7b3;--focus:#8ab4ff;--surface:#1d2129;--hover:#2a303b;--selected:#363e4c;--canvas:#171a20;--checker:repeating-conic-gradient(#22262e 0% 25%,#1b1e25 0% 50%) 50% / 16px 16px}
* {box-sizing:border-box;font-family:inherit}
body {margin:0;font-size:14px;line-height:1.5;background:#111318}
button,input,textarea,select {font:inherit;color:inherit}
button,a,input,summary,textarea {-webkit-tap-highlight-color:transparent}
[hidden] {display:none!important}
.app-bar {height:64px;max-width:1500px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 32px}
h1 {font-size:19px;line-height:24px;font-weight:600;letter-spacing:-.4px;margin:0}
#connection {display:inline-flex;align-items:center;gap:7px;min-height:24px;line-height:20px;font-size:12px;color:var(--muted);white-space:nowrap}
#connection::before {content:'';width:5px;height:5px;border-radius:50%;background:var(--muted);flex:none}
#connection[data-state=ready]::before {background:#8ebda4}
#connection[data-state=working]::before {background:#d9b97c}
.workspace {display:grid;grid-template-columns:minmax(300px,340px) minmax(0,1fr);gap:32px;max-width:1500px;padding:16px 32px 16px;margin:auto;align-items:start}
form,.result-panel {min-width:0}
fieldset {border:0;padding:0;margin:0;min-width:0}
.form-fields {display:flex;flex-direction:column;gap:16px}
.field-heading {display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:13px;font-weight:600;line-height:20px}
.field-heading>span:last-child:not(:first-child) {font-size:11px;font-weight:400;color:var(--muted)}
.prompt-field {display:flex;flex-direction:column;gap:12px}
.prompt-heading,.result-toolbar {height:32px}
textarea {display:block;width:100%;height:160px;min-height:128px;max-height:380px;resize:vertical;padding:12px 14px;border:0;border-radius:7px;background:var(--surface);line-height:1.6;margin:0}
::placeholder {color:#a1a7b3;opacity:1}
.examples {margin:0}
#examples {display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}
#examples button {display:flex;align-items:center;gap:8px;min-width:0;min-height:32px;font-size:12px;text-align:left;padding:4px 8px 4px 4px;background:var(--surface);border:0;border-radius:5px;color:var(--ink)}
#examples img {width:24px;height:24px;flex:none;object-fit:contain;border-radius:3px;background:var(--checker)}
#examples button:hover {background:var(--hover)}
#examples button:active {background:var(--selected)}
#examples-note {font-size:11px;line-height:17px;margin-top:8px}
.choice-field legend {font-size:13px;font-weight:600;margin-bottom:8px;padding:0}
.choices {display:flex;gap:2px;background:var(--surface);padding:2px;border-radius:7px}
.choices label {flex:1;position:relative;min-width:0;display:flex;align-items:center;justify-content:center;min-height:30px;border:0;border-radius:5px;padding:4px 2px;cursor:pointer;font-size:12px;background:transparent;color:var(--muted)}
.choices input {position:absolute;opacity:0;width:1px;height:1px;inset:50% auto auto 50%;margin:0}
.choices label:has(input:checked) {background:var(--selected);color:#fff;font-weight:600}
.choices label:hover:not(:has(input:checked)) {background:var(--hover);color:var(--ink)}
.choices label:has(input:focus-visible) {z-index:1}
.settings-row {display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hint {font-size:12px;color:var(--muted);line-height:1.5;margin:0}
#size-hint {margin-top:-8px}
.checkbox-row {display:flex;align-items:center;gap:9px;min-height:36px;padding:5px 4px;border-radius:5px;cursor:pointer;font-size:13px}
input[type=checkbox] {width:17px;height:17px;accent-color:#a9c4ef;margin:0}
details {border:0}
details+details {margin-top:-16px}
summary {cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;min-height:44px;padding:10px 4px;border-radius:5px;font-size:13px;font-weight:600}
summary:hover {background:var(--surface)}
summary::-webkit-details-marker {display:none}
summary::after {content:'+';font-size:18px;font-weight:400;line-height:1}
details[open]>summary::after {content:'−'}
summary>span {margin-left:auto;font-size:12px;color:var(--muted);font-weight:400}
.details-content {display:flex;flex-direction:column;gap:10px;padding:4px 4px 16px}
#seed {width:100%;height:44px;padding:10px 12px;border:0;border-radius:6px;background:var(--surface)}
#seed:disabled {background:var(--canvas);color:var(--muted)}
button,.secondary,.text-button {cursor:pointer}
button:disabled {cursor:wait}
.secondary,.icon-button,.text-button {display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:9px 12px;border:0;border-radius:6px;color:var(--ink);background:var(--surface);text-decoration:none;font-size:12px;white-space:nowrap}
.secondary:hover,.icon-button:hover {background:var(--hover)}
.secondary:active,.icon-button:active {background:var(--selected)}
.secondary:disabled {cursor:wait;opacity:.55}
.text-button {background:transparent;text-decoration:underline;text-underline-offset:3px;align-self:start}
.primary {display:block;width:100%;min-height:48px;background:#dce5f3;color:#171c25;border:0;border-radius:7px;font-weight:600;margin-top:16px}
.primary:hover:not(:disabled) {background:#f2f6fd}
.primary:active:not(:disabled) {background:#bfcee4}
.primary:disabled {background:#303743;color:#a1a7b3}
fieldset:disabled .choices label,fieldset:disabled .checkbox-row,fieldset:disabled button {cursor:default;opacity:.65}
.quota-note {font-size:11px;color:var(--muted);text-align:center;margin:9px 0 0}
.error {color:#ffb9bf;background:#392127;border:0;border-radius:6px;padding:10px 12px;font-size:13px;margin:12px 0 0}
[aria-invalid=true] {background:#392127}
:where(button,a,input,textarea,summary):focus-visible,.choices label:has(input:focus-visible),.checkbox-row:has(input:focus-visible) {outline:3px solid var(--focus);outline-offset:2px}
.choices input:focus-visible {outline:none}
/* Focus rings stay outside surfaces; only the images themselves have rounded edges. */
.result-toolbar {display:flex;align-items:center;margin-bottom:12px}
h2 {font-size:13px;line-height:20px;font-weight:600;margin:0}
#result-actions {display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:12px}
#result-actions .secondary {min-height:32px;padding:6px 9px;font-size:11px}
.icon-button {width:32px;min-width:32px;min-height:32px;padding:6px}
.icon-button svg {width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
#canvas {height:clamp(400px,calc(100vh - 236px),640px);min-height:400px;background:var(--canvas);border:0;border-radius:7px;display:flex;align-items:center;justify-content:center;position:relative}
#empty-result {text-align:center;padding:24px;color:var(--muted);font-size:12px}
#empty-result p {font-size:15px;color:var(--ink);margin:0 0 6px}
#result-image {display:block;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;border-radius:7px;background:var(--checker)}
#canvas[aria-busy=true] #result-image {opacity:.45}
#job-status {position:absolute;bottom:12px;left:12px;right:12px;padding:10px 12px;border-radius:5px;background:#111318f2;color:var(--ink);font-size:12px}
#job-status>div {display:flex;justify-content:space-between;gap:8px;min-height:22px}
#elapsed {color:var(--muted);white-space:nowrap}
progress {appearance:none;display:block;width:100%;height:3px;border:0;border-radius:2px;background:var(--selected);margin-top:4px;accent-color:#a9c4ef}
progress::-webkit-progress-bar {background:var(--selected);border-radius:2px}
progress::-webkit-progress-value {background:#a9c4ef;border-radius:2px}
progress:not([value]) {opacity:.5}
#result-info {margin-top:12px;display:flex;flex-wrap:wrap;align-items:center;gap:5px 12px;font-size:12px;color:var(--muted)}
#result-status {margin:0;overflow-wrap:anywhere}
#cache-note {font-size:11px;padding:3px 6px;border-radius:4px;background:var(--surface)}
.result-note {font-size:11px;color:var(--muted);margin:9px 0 0}
#reference-preview {display:flex;align-items:center;gap:12px;min-width:0}
#reference-preview img {width:80px;height:80px;object-fit:contain;background:var(--checker);border:0;border-radius:5px}
#reference-preview>div {min-width:0;display:flex;flex-direction:column;align-items:start}
#reference-name {font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
footer {max-width:1500px;margin:auto;padding:18px 32px 26px;font-size:11px;color:var(--muted);display:flex;align-items:center;gap:7px}
footer a {color:inherit;padding:5px 2px;text-underline-offset:3px}
dialog {width:100%;max-width:none;height:100%;max-height:none;inset:0;margin:0;padding:16px 20px;border:0;background:#111318;color:var(--ink)}
dialog::backdrop {background:#111318}
.dialog-toolbar {display:flex;align-items:center;justify-content:space-between;gap:16px;height:48px;margin-bottom:12px;font-size:13px;font-weight:600}
#close-fullscreen span {font-size:11px;color:var(--muted)}
.dialog-image {height:calc(100% - 60px);display:flex;justify-content:center;align-items:center}
.dialog-image img {max-width:100%;max-height:100%;object-fit:contain;background:var(--checker)}
@media(max-width:760px) {
 .app-bar {height:60px;padding:0 18px}.app-bar h1 {font-size:18px}#connection {font-size:11px}
 .workspace {grid-template-columns:1fr;padding:12px 18px 12px;gap:24px}
 .form-fields {gap:14px}details+details {margin-top:-14px}
 .choices {padding:0}.choices label {min-height:44px;padding:4px 2px}
 #examples button {min-height:44px;padding:6px}
 textarea {min-height:128px;resize:vertical;font-size:16px}
 #canvas {height:390px;min-height:280px}
 #result-actions {gap:6px}#result-actions .secondary {min-height:44px;padding:6px 8px}
 .icon-button {width:44px;min-width:44px;min-height:44px;padding:11px}
 .secondary {padding:9px 10px}
 footer {padding:12px 18px 24px}dialog {padding:12px}
 #seed {font-size:16px}
}
@media(max-width:350px) {.app-bar {gap:8px}#connection {font-size:10px;gap:5px}.settings-row {gap:12px}.workspace,.app-bar {padding-inline:16px}}
@media(prefers-reduced-motion:reduce) {* {animation:none!important;transition:none!important;scroll-behavior:auto!important}}
