.version-picker{display:grid;gap:8px;margin:18px 0;padding:14px;border:1px solid var(--line);border-radius:10px;background:#f4f7f1}.version-picker label{font-size:13px;font-weight:650}.version-picker select{width:100%;max-width:100%}.version-picker .note{margin:0}.workspace{grid-template-columns:minmax(360px,1fr) minmax(360px,1fr)}.builder,.preview{min-width:0}.preview{position:sticky;top:18px}fieldset{border:0;padding:0;margin:0;min-width:0}.code-editor{font:12px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;tab-size:2;color:#234735;white-space:pre;overflow:auto}.editor-actions{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.editor-actions .primary{margin:0}.change-summary{border-top:1px solid var(--line);padding-top:12px}.change-summary ul{padding-left:18px;line-height:1.8;font-size:12px;overflow-wrap:anywhere}.data-group{margin-left:8px;border-left:2px solid #d9e2d4;padding-left:12px}.data-group summary{border:0;padding:8px 0}.data-field{display:grid;grid-template-columns:minmax(100px,1fr) minmax(80px,1fr);align-items:center;gap:10px;margin:8px 0;font-size:11px;overflow-wrap:anywhere}.data-field input{padding:8px;font-variant-numeric:tabular-nums}.data-field input[type=checkbox]{justify-self:start}.builder #generate{margin-bottom:10px}#draft-meta,#job-detail{overflow-wrap:anywhere}.note a{color:var(--green);text-decoration:underline}#empty-editor{padding:28px}#empty-editor h2{margin-bottom:15px}#empty-editor a{display:inline-block;margin-top:15px}@media(max-width:850px){.workspace{grid-template-columns:1fr}.preview{position:static}}@media(max-width:480px){.data-field{grid-template-columns:1fr}.intro h1{font-size:24px}}
.editor-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:5px;margin:20px 0 16px;border:1px solid var(--line);border-radius:10px;background:#e8ede3}.editor-tabs [role=tab]{min-height:42px;padding:9px 6px;border:0;border-radius:6px;background:transparent;color:var(--muted);font:inherit;font-size:14px;font-weight:650;cursor:pointer}.editor-tabs [role=tab][aria-selected=true]{color:#fff;background:#2d7658}.editor-tabs [role=tab]:hover:not([aria-selected=true]){background:#dbe5d8;color:#173d34}[role=tabpanel][hidden],#editor-save-actions[hidden]{display:none!important}.history-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.history-heading h3{margin:0;font-size:16px}.edit-history-list{list-style:none;margin:0;padding:0}.history-entry{padding:18px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.history-entry-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.history-entry-head strong{font-size:14px}.history-state{font-size:11px;color:#2d7658;white-space:nowrap}.history-state[data-state=failed],.history-state[data-state=needs_input]{color:#9a4532}.history-entry time{display:block;color:var(--muted);font-size:11px;margin-top:7px}.history-entry p{font-size:13px;line-height:1.7;white-space:pre-wrap;margin:10px 0}.history-entry details{margin-top:10px}.history-entry summary{font-size:12px}.history-change{display:grid;gap:4px;padding:10px 0;border-top:1px solid var(--line);font-size:12px;line-height:1.6}.history-change code{white-space:pre-wrap;word-break:break-word;font-size:11px;color:var(--muted)}@media(max-width:480px){.editor-tabs [role=tab]{font-size:13px}.history-entry-head{align-items:flex-start}}

/* Keep the action recognizable while AI work and validation are pending. */
#generate{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px}
#generate>span{float:none;font-size:inherit}
#generate .generate-spinner{display:none;flex:none;width:18px;height:18px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%}
#generate[aria-busy=true]{opacity:1;cursor:progress}
#generate[aria-busy=true] .generate-spinner{display:block;animation:editor-generate-spin .8s linear infinite}
#generate[aria-busy=true] .generate-arrow{display:none}
@keyframes editor-generate-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){#generate[aria-busy=true] .generate-spinner{animation:none}}
.bitmap-mode-toggle{display:grid;gap:5px;padding:12px 14px;margin:0 0 14px;border:1px solid #c8d8c6;border-radius:8px;background:#f4f8ef;cursor:pointer}.bitmap-mode-control{display:flex;align-items:center;gap:9px;font-size:13px}.bitmap-mode-control input{width:18px;height:18px;margin:0;accent-color:#2d7658}.bitmap-mode-toggle .note{margin:0 0 0 27px;line-height:1.6}.bitmap-mode-toggle:has(input:checked){border-color:#6b9b78;background:#eaf4e5}.bitmap-mode-toggle:has(input:focus-visible){outline:3px solid #f0c6a8;outline-offset:3px}

/* Editor surface: a calm studio shell around the game preview. */
.editor-page{--editor-ink:#173d34;--editor-deep:#12342e;--editor-accent:#2d7658;--editor-accent-dark:#205b45;--editor-mint:#e8f3e8;--editor-line:#dbe6dc;--editor-soft:#f5f8f2;--editor-muted:#6c8075;background:#f2f5ef;color:var(--editor-ink)}
.editor-page main{max-width:1480px;padding-top:32px}
.editor-page .intro{position:relative;align-items:flex-end;gap:40px;margin-bottom:28px;padding:28px 32px;border:1px solid #dce7dd;border-radius:20px;background:linear-gradient(118deg,#fbfdf9 0%,#f3f8f1 72%,#eaf2e8 100%);box-shadow:0 16px 38px rgba(27,67,50,.06);overflow:hidden}
.editor-page .intro:after{content:"";position:absolute;right:-76px;top:-96px;width:260px;height:260px;border:1px solid rgba(45,118,88,.13);border-radius:50%;box-shadow:0 0 0 28px rgba(45,118,88,.035),0 0 0 56px rgba(45,118,88,.025);pointer-events:none}
.editor-page .intro-copy{position:relative;z-index:1;max-width:680px}.editor-page .eyebrow{margin-bottom:10px;color:var(--editor-accent);font-weight:700}.editor-page h1{color:var(--editor-deep);font-size:clamp(28px,3.2vw,42px);line-height:1.14;letter-spacing:-1.5px}.editor-page .intro .subtitle{max-width:570px;font-size:14px}
.intro-aside{position:relative;z-index:1;display:grid;gap:6px;min-width:230px;padding:14px 0 4px 22px;border-left:1px solid #c9d9cb}.intro-aside-label,.section-kicker,.field-caption{font:700 10px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:1.1px;text-transform:uppercase;color:var(--editor-accent)}.intro-aside strong{font-size:14px;color:var(--editor-deep)}.intro-aside>span:last-child{font-size:11px;color:var(--editor-muted)}
.editor-page .error{margin:0 0 18px;border:1px solid #efc9b8;border-left:4px solid #bb5c3d;border-radius:12px;background:#fff5ef;color:#8f3d28;box-shadow:0 8px 18px rgba(125,64,35,.06)}
.editor-page .workspace{grid-template-columns:minmax(420px,.92fr) minmax(480px,1.08fr);gap:24px}.editor-page .builder,.editor-page .preview{border-color:var(--editor-line);border-radius:18px;background:rgba(253,255,251,.94);box-shadow:0 18px 42px rgba(26,66,49,.07)}.editor-page .builder{padding:26px}.editor-page .preview{padding:26px;top:22px}
.editor-page .section-top{align-items:flex-start;margin-bottom:18px}.editor-page .section-top h2{font-size:21px;letter-spacing:-.3px;color:var(--editor-deep)}.editor-page .preview-heading{align-items:center}.preview-heading>div{display:grid;gap:5px}.preview-heading .section-kicker{font-size:9px}
.editor-page .pill{padding:6px 10px;border:1px solid #c8ded0;border-radius:999px;background:#eef7ee;color:var(--editor-accent-dark);font-size:10px;font-weight:700;letter-spacing:.3px}.editor-page .pill[data-state=busy],.editor-page .pill[data-state=generating],.editor-page .pill[data-state=checking]{border-color:#e4d19a;background:#fff8df;color:#946a1d}.editor-page .pill[data-state=dirty]{border-color:#e7baa5;background:#fff1e9;color:#985032}.editor-page .pill[data-state=verified]{border-color:#a5d0b1;background:#eaf8ed;color:#247044}
.version-picker{gap:10px;margin:0 0 18px;padding:14px 16px;border:1px solid #d8e5d9;border-radius:13px;background:var(--editor-soft)}.version-picker-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.version-picker label{font-size:11px;color:var(--editor-deep);letter-spacing:.2px}.version-picker select{height:40px;border-color:#c9d9cd;border-radius:8px;background:#fff;font-size:12px}.version-picker .note{margin:0;font-size:11px}.version-picker .field-caption{font-size:9px;letter-spacing:.4px;color:var(--editor-muted)}
.editor-tabs{gap:3px;margin:20px 0 16px;padding:4px;border:1px solid #d7e3d8;border-radius:12px;background:#edf3ec}.editor-tabs [role=tab]{display:flex;align-items:center;justify-content:center;gap:7px;min-height:42px;border-radius:8px;color:#708378;font-size:12px}.editor-tabs [role=tab][aria-selected=true]{color:#fff;background:var(--editor-accent);box-shadow:0 5px 12px rgba(31,91,69,.18)}.editor-tabs [role=tab]:hover:not([aria-selected=true]){background:#e0ece0;color:var(--editor-deep)}.tab-index{font:700 9px ui-monospace,SFMono-Regular,Consolas,monospace;opacity:.65}.editor-tabs [aria-selected=true] .tab-index{opacity:.8}
.editor-page #draft-meta{margin:0 0 18px;padding-left:2px;color:var(--editor-muted);font-size:10px}.editor-page .admin-panel{margin-bottom:18px;border-color:#b8d7c2;border-radius:12px;background:#eef8ef;color:#2b6144;box-shadow:none}.editor-page .admin-panel .text-button{font-weight:700}
.editor-page label{color:#365347}.editor-page .field-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px}.editor-page .field-label-row .field-caption{color:var(--editor-muted);font-size:9px;letter-spacing:.35px;text-transform:none}.editor-page input,.editor-page select,.editor-page textarea{border-color:#cfddd1;border-radius:9px;background:#fff;color:var(--editor-ink);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.editor-page input:focus,.editor-page select:focus,.editor-page textarea:focus{border-color:#5e9b77;box-shadow:0 0 0 3px rgba(62,137,91,.14);outline:0}.editor-page .prompt-field textarea{min-height:122px;padding:14px 15px;font-size:14px;line-height:1.75;background:#fcfefb}.editor-page .prompt-field{gap:9px;margin-bottom:14px}.editor-page .note{color:var(--editor-muted)}
.bitmap-mode-toggle{gap:8px;padding:14px 15px;margin:0 0 14px;border:1px solid #c9dfcd;border-radius:13px;background:linear-gradient(110deg,#f5faf3,#edf7ed);cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.bitmap-mode-toggle:hover{border-color:#8fbea0;box-shadow:0 7px 16px rgba(47,111,75,.08);transform:translateY(-1px)}.bitmap-mode-control{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:10px;font-size:13px}.bitmap-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#dbeedc;color:#2e7955;font-size:17px}.bitmap-copy{display:grid;gap:4px}.bitmap-copy strong{color:var(--editor-deep);font-size:13px}.bitmap-copy small{font-size:10px;font-weight:500;color:var(--editor-muted);letter-spacing:.2px}.bitmap-check{position:relative;display:block;width:38px;height:22px}.bitmap-check input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.toggle-track{position:absolute;inset:0;border-radius:99px;background:#c6d5c8;pointer-events:none;transition:background .18s ease}.toggle-track:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(14,48,29,.22);transition:transform .18s ease}.bitmap-check input:checked+.toggle-track{background:var(--editor-accent)}.bitmap-check input:checked+.toggle-track:after{transform:translateX(16px)}.bitmap-check input:focus-visible+.toggle-track{outline:3px solid rgba(62,137,91,.25);outline-offset:3px}.bitmap-mode-toggle .note{margin:0 0 0 40px;line-height:1.65;font-size:11px}.bitmap-mode-toggle:has(input:checked){border-color:#75ad83;background:linear-gradient(110deg,#edf8ec,#e6f3e7);box-shadow:0 7px 18px rgba(47,111,75,.08)}
.editor-page #generate{min-height:52px;margin:8px 0 9px;border-radius:10px;background:var(--editor-accent);box-shadow:0 8px 16px rgba(34,101,71,.16);font-size:13px}.editor-page #generate:hover{background:var(--editor-accent-dark);box-shadow:0 10px 20px rgba(34,101,71,.21)}.editor-page #generate[aria-busy=true]{box-shadow:none}.ai-submit-note{padding-left:2px;font-size:10px}
.editor-page details{margin:6px 0 14px;padding:0 13px;border:1px solid #e0e8df;border-radius:11px;background:#fbfdf9}.editor-page details[open]{padding-bottom:4px}.editor-page details summary{padding:13px 0;border:0;color:var(--editor-deep);font-size:12px;font-weight:700;list-style:none}.editor-page details summary::-webkit-details-marker{display:none}.editor-page details summary:before{content:"+";display:inline-grid;place-items:center;width:20px;height:20px;margin-right:8px;border:1px solid #bdd0c0;border-radius:6px;color:var(--editor-accent);font-size:14px;font-weight:500;vertical-align:-5px}.editor-page details[open]>summary:before{content:"–";background:#eaf4e9}.editor-page details label{margin-bottom:14px}.editor-page .code-editor{min-height:130px;padding:12px 13px;border-radius:8px;background:#f8fbf7;color:#254f40;font-size:11px;line-height:1.65}.editor-page .data-group{margin-left:0;padding-left:10px;border-left-color:#d2e1d4}.editor-page .data-field{margin:7px 0;font-size:10px}.editor-page .data-field input{padding:8px;border-radius:7px}
.editor-page .editor-actions{gap:9px;margin:14px 0}.editor-page .editor-actions .play-button{border-color:#c6d8c8;border-radius:8px;background:#eff5eb;color:var(--editor-accent-dark);font-weight:650}.editor-page .editor-actions .play-button:hover{background:#e4f0e2;border-color:#99bea2}.editor-page .change-summary{margin-top:20px;padding-top:18px;border-top-color:#dfe8df}.editor-page .change-summary h3{margin:0 0 10px;color:var(--editor-deep);font-size:13px}.editor-page .change-summary ul{margin-top:0;color:#52695c}.editor-page #validation-note{margin-bottom:0;padding:9px 11px;border-radius:8px;background:#f4f8f1;font-size:10px}
.editor-page .screen-wrap{border-radius:13px;background:#102925;box-shadow:0 12px 26px rgba(14,38,31,.18),inset 0 0 0 1px rgba(255,255,255,.08)}.editor-page .player-line{margin:16px 0 10px}.editor-page .player-line .play-button{border:0;border-radius:8px;background:#e4f2df;color:var(--editor-accent-dark);font-weight:700}.editor-page .player-line .play-button:hover{background:#d6ebd1}.editor-page .controller-settings{margin-top:16px;padding-top:15px;border-top:1px solid #e1e9e0}.editor-page .controller{margin-top:14px;padding:14px;border:1px solid #e0e9df;border-radius:13px;background:#f8fbf7}.editor-page .controller button{border-color:#c8d8ca;border-radius:9px;background:#fff;box-shadow:0 2px 0 rgba(30,75,52,.05)}.editor-page .controller button:active:not(:disabled){background:#dceedd;border-color:#70a47c;box-shadow:none}.editor-page .system-pad button{background:#f1f6ef}.editor-page .job{border-radius:12px;border-color:#c9ddc9;background:#f2f8ef;box-shadow:none}.editor-page .job[data-state=failed],.editor-page .job[data-state=needs_input]{border-color:#e7baa5;background:#fff5ef}.editor-page .job[data-state=ready]{border-color:#a8d4b3;background:#eef9ef}.editor-page .job-heading strong{color:var(--editor-deep)}.editor-page .job #job-detail{font-size:12px}
.editor-page #publish{margin-top:0;min-height:48px;border-radius:10px;background:var(--editor-accent);box-shadow:0 8px 16px rgba(34,101,71,.14)}.editor-page #publish:hover{background:var(--editor-accent-dark)}.editor-page #save-kit{min-height:48px;padding-inline:16px}.editor-page #save-result{min-height:18px;margin:3px 0 0}.editor-page #empty-editor{padding:36px;border-style:dashed;background:linear-gradient(145deg,#fbfdf9,#f2f7f0);text-align:center}.editor-page #empty-editor .subtitle{max-width:440px;margin:0 auto}.editor-page #empty-editor a{display:inline-flex;margin-top:20px;padding:10px 15px;border:1px solid #c5d9c8;border-radius:8px;background:#edf6e9;text-decoration:none;font-weight:650}
@media(max-width:1080px){.editor-page .workspace{grid-template-columns:minmax(360px,.95fr) minmax(390px,1.05fr)}.editor-page .intro{padding:24px}.intro-aside{min-width:205px}}
@media(max-width:850px){.editor-page .workspace{grid-template-columns:1fr}.editor-page .preview{position:static}.editor-page .intro-aside{display:none}}
@media(max-width:520px){.editor-page main{padding:20px 14px 44px}.editor-page .intro{padding:22px 18px;border-radius:15px}.editor-page h1{font-size:28px}.editor-page .builder,.editor-page .preview{padding:18px;border-radius:14px}.version-picker-heading{display:grid;gap:5px}.editor-tabs [role=tab]{font-size:11px}.tab-index{display:none}.bitmap-mode-control{grid-template-columns:28px 1fr auto}.bitmap-mode-toggle .note{margin-left:38px}.editor-page .controller{padding:10px}}

/* The asset inventory is deliberately data-first so image-model actions can be
   attached to one card without changing the editor's draft-save flow. */
.assets-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin:4px 0 8px}.assets-heading h3{margin:4px 0 0;color:var(--editor-deep);font-size:17px}.assets-heading .section-kicker{font-size:9px}.asset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-top:16px}.asset-card{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;min-width:0;padding:11px;border:1px solid #dce7dc;border-radius:12px;background:#fbfdf9}.asset-preview{display:grid;place-items:center;width:76px;height:76px;overflow:hidden;border:1px solid #d9e5d8;border-radius:9px;background:linear-gradient(145deg,#f3f8f1,#e8f1e7);color:var(--editor-muted);font-size:10px;text-align:center}.asset-preview canvas{display:block;max-width:64px;max-height:64px;image-rendering:pixelated;image-rendering:crisp-edges}.asset-swatches{display:grid;grid-template-columns:repeat(4,11px);gap:4px;justify-content:center}.asset-swatch{display:block;width:11px;height:11px;border:1px solid rgba(19,52,46,.16);border-radius:3px}.asset-card-body{display:grid;align-content:start;min-width:0}.asset-card-head{display:flex;align-items:center;justify-content:space-between;gap:7px;color:var(--editor-accent);font-size:9px;font-weight:700;letter-spacing:.3px}.asset-source{min-width:0;overflow:hidden;color:var(--editor-muted);font-size:9px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.asset-card h4{margin:5px 0 4px;overflow:hidden;color:var(--editor-deep);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.asset-card p{margin:0;color:var(--editor-muted);font-size:10px;line-height:1.55}.asset-card-foot{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-top:8px}.asset-card-foot code{min-width:0;overflow:hidden;color:#8a9b8e;font:9px ui-monospace,SFMono-Regular,Consolas,monospace;text-overflow:ellipsis;white-space:nowrap}.asset-card-foot .text-button{padding:4px 7px;border:1px solid #cdddcf;border-radius:6px;font-size:9px;white-space:nowrap}.asset-card-foot .text-button:disabled{border-color:#dce5dc;background:#f3f7f1;color:#9cac9f;cursor:default}.asset-model-note{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:9px;margin-top:16px;padding:11px 12px;border:1px dashed #cbdccf;border-radius:10px;background:#f6faf4}.asset-model-note p{margin:0;color:var(--editor-muted);font-size:10px;line-height:1.6}.asset-model-mark{padding:4px 6px;border-radius:5px;background:#e2f0e1;color:var(--editor-accent);font:700 8px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.5px;white-space:nowrap}
@media(max-width:520px){.asset-grid{grid-template-columns:1fr}.asset-model-note{grid-template-columns:1fr;gap:6px}}
