:root{font-family:IBM Plex Sans,Segoe UI,sans-serif;color:#d4d4d4;background:#1e1e1e}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0}body{background:#1e1e1e}.app-shell{display:flex;flex-direction:column;height:100%;min-height:0}.menu-bar{display:flex;align-items:center;gap:.15rem;padding:.2rem .4rem;border-bottom:1px solid #3c3c3c;background:#1e1e1e;position:relative;z-index:40;overflow:visible}.menu-entry{position:relative}.menu-entry__trigger{border:none;background:transparent;color:#ccc;padding:.25rem .55rem;border-radius:4px;font-size:.95rem;cursor:pointer}.menu-entry__trigger:hover,.menu-entry--open .menu-entry__trigger{background:#094771;color:#fff}.menu-panel{display:none;position:absolute;top:calc(100% + .2rem);left:0;min-width:220px;border:1px solid #454545;border-radius:6px;background:#252526;box-shadow:0 6px 18px #00000059;z-index:30}.menu-entry--open .menu-panel{display:block}.menu-panel__list{list-style:none;margin:0;padding:.35rem}.menu-panel__item{width:100%;border:none;background:transparent;color:#ccc;padding:.35rem .45rem;border-radius:4px;font-size:.97rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;text-align:left;gap:1rem}.menu-panel__item:hover{background:#094771;color:#fff}.menu-panel__item[aria-disabled=true]{color:#7f7f7f;cursor:not-allowed}.menu-panel__item[aria-disabled=true]:hover{background:transparent;color:#7f7f7f}.menu-panel__shortcut{color:#9fa7b2;font-size:.88rem}.menu-panel__separator{border-top:1px solid #3c3c3c;margin:.35rem 0;height:0}.context-menu-host{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;pointer-events:none}.context-menu{position:fixed;min-width:240px;border:1px solid #454545;border-radius:6px;background:#252526;box-shadow:0 8px 22px #0000006b;pointer-events:auto}.context-menu__list{list-style:none;margin:0;padding:.35rem}.context-menu__item{width:100%;border:none;border-radius:4px;background:transparent;color:#ccc;display:grid;grid-template-columns:1.2rem 1fr auto;align-items:center;gap:.55rem;padding:.34rem .45rem;text-align:left;font-size:.95rem;cursor:pointer}.context-menu__item:hover{background:#094771;color:#fff}.context-menu__item[aria-disabled=true]{color:#7f7f7f;cursor:not-allowed}.context-menu__item[aria-disabled=true]:hover{background:transparent;color:#7f7f7f}.context-menu__icon{color:#9fa7b2;font-size:.84rem;text-align:center}.context-menu__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.context-menu__shortcut{color:#9fa7b2;font-size:.84rem;white-space:nowrap;margin-left:.8rem}.context-menu__separator{border-top:1px solid #3c3c3c;margin:.28rem 0;height:0}.editor-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000073;z-index:120}.editor-dialog{width:min(420px,calc(100vw - 2rem));border:1px solid #454545;border-radius:8px;background:#252526;box-shadow:0 12px 30px #00000073;padding:1rem}.editor-dialog__title{margin:0;font-size:1.02rem;color:#f0f0f0}.editor-dialog__message{margin:.55rem 0 0;color:#c8c8c8;font-size:.95rem}.editor-dialog__input{width:100%;margin-top:.9rem;border:1px solid #3c3c3c;border-radius:6px;background:#1e1e1e;color:#d4d4d4;font-size:.95rem;padding:.45rem .55rem}.editor-dialog__input:focus{outline:1px solid #007acc;border-color:#007acc}.editor-dialog__actions{margin-top:1rem;display:flex;justify-content:flex-end;gap:.45rem}.editor-dialog__button{border:1px solid #4c4c4c;border-radius:6px;background:#2d2d2d;color:#d4d4d4;padding:.35rem .75rem;font-size:.9rem;cursor:pointer}.editor-dialog__button:hover{background:#3a3a3a}.editor-dialog__button--primary{background:#0e639c;border-color:#0e639c;color:#fff}.editor-dialog__button--primary:hover{background:#17b}.editor-dialog__button--danger{background:#ad3535;border-color:#ad3535;color:#fff}.editor-dialog__button--danger:hover{background:#bf4040}.app-button{border:1px solid #555;background:#0e639c;color:#fff;border-radius:6px;padding:.45rem .75rem;font-size:1.05rem;cursor:pointer}.app-button:hover{background:#17b}.app-body{flex:1;min-height:0;display:grid;grid-template-columns:var(--explorer-width, 280px) 8px minmax(0,1fr)}.status-bar-host{min-height:30px;border-top:1px solid #3c3c3c;background:#1e1e1e}.status-bar{min-height:30px;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:0 .5rem;color:#ccc;font-size:1.03rem;font-family:IBM Plex Sans,Segoe UI,sans-serif}.status-bar__left,.status-bar__right{display:flex;align-items:center;min-width:0}.status-bar__right{gap:.15rem}.status-bar__status{font-weight:500;padding:.15rem .4rem;border-radius:4px}.status-bar__status--ready,.status-bar__status--saved{background:#00000026}.status-bar__status--saving{background:#00000038}.status-bar__status--error{background:#ad3535}.status-bar__item{color:inherit;border:none;background:transparent;font:inherit;padding:.2rem .45rem;border-radius:3px;white-space:nowrap}.status-bar__item--button{cursor:pointer}.status-bar__item--button:hover{background:#ffffff29}.status-bar__item--button:focus-visible{outline:1px solid #ffffff;outline-offset:1px}.app-body--explorer-hidden{grid-template-columns:1fr}.app-body--explorer-hidden .app-explorer,.app-body--explorer-hidden .explorer-splitter{display:none}.app-explorer{background:#252526;display:flex;flex-direction:column;min-height:0}.explorer-splitter{width:8px;cursor:col-resize;background:#2a2a2c;border-left:1px solid #3c3c3c;border-right:1px solid #3c3c3c}.explorer-splitter:hover{background:#3a3a3d}.panel-title{display:flex;align-items:center;margin:0;min-height:40px;padding:0 .75rem;font-size:.88rem;text-transform:uppercase;letter-spacing:.08em;color:#bbb;border-bottom:1px solid #3c3c3c}.explorer-container{flex:1;overflow:auto;padding:.25rem .5rem .75rem;scrollbar-width:thin;scrollbar-color:#4f4f4f #1e1e1e}.explorer-container::-webkit-scrollbar{width:12px;height:12px}.explorer-container::-webkit-scrollbar-track{background:#1e1e1e}.explorer-container::-webkit-scrollbar-thumb{background:#4f4f4f;border:3px solid #1e1e1e;border-radius:8px}.explorer-container::-webkit-scrollbar-thumb:hover{background:#666}.explorer-empty{color:#bbb;font-size:1.04rem;margin:.5rem}.explorer-empty-state{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.75rem;padding:.75rem .75rem 0}.explorer-open-button{min-width:150px}.explorer-list{list-style:none;margin:0;padding:0}.explorer-list .explorer-list{margin-left:.75rem}.explorer-folder{color:#ccc;font-size:1.03rem;padding:.2rem 0;cursor:default;border-radius:4px}.explorer-folder__label{display:inline-block;min-width:0}.explorer-folder--active{background:#37373d}.explorer-item{width:100%;text-align:left;border:none;border-radius:4px;padding:.2rem .3rem;color:#ccc;background:transparent;cursor:pointer;font-size:1rem}.explorer-item:hover,.explorer-item--active{background:#37373d}.explorer-item[draggable=true],.explorer-folder[draggable=true]{cursor:grab}.explorer-item[draggable=true]:active,.explorer-folder[draggable=true]:active{cursor:grabbing}.explorer-drag-source{opacity:.55}.explorer-drop-target{background:#0b4f75;outline:1px solid #2ea3ef;outline-offset:-1px}.explorer-container--drop-target-root{box-shadow:inset 0 0 0 2px #2ea3ef}.explorer-rename-input{width:100%;border:1px solid #007acc;border-radius:3px;background:#1f1f1f;color:#d4d4d4;font-size:1rem;padding:.1rem .3rem;font-family:inherit}.explorer-rename-input:focus{outline:none;box-shadow:0 0 0 1px #007acc}.app-editor{display:grid;grid-template-rows:auto 1fr;min-height:0}.editor-stage{position:relative;min-height:0;height:100%}.editor-surface{display:grid;grid-template-columns:auto 1fr;min-height:0;height:100%;overflow:hidden}.editor-stage--line-numbers-hidden .editor-surface{grid-template-columns:1fr}.editor-gutter{min-width:4.25rem;background:#252526;border-right:1px solid #3c3c3c;overflow:auto;scrollbar-width:none;-webkit-user-select:none;user-select:none}.editor-stage--line-numbers-hidden .editor-gutter{display:none}.editor-gutter::-webkit-scrollbar{width:0;height:0}.editor-line-numbers{margin:0;padding:1rem .55rem 1rem .6rem;color:#858585;font-size:1.1rem;line-height:1.45;font-family:Fira Code,Cascadia Code,monospace;text-align:right;white-space:pre;pointer-events:none}.tabs-container{min-height:40px;display:flex;align-items:stretch;gap:.3rem;padding:.3rem .4rem;border-bottom:1px solid #3c3c3c;background:#252526;overflow-x:auto}.tabs-empty{margin:0;color:#bbb;font-size:1rem;align-self:center}.tabs-item{display:flex;align-items:center;background:#2d2d2d;border:1px solid #3c3c3c;border-radius:6px}.tabs-item--active{background:#1e1e1e;border-color:#3c3c3c}.tabs-item__trigger,.tabs-item__close{border:none;background:transparent;color:#ccc;cursor:pointer}.tabs-item__trigger{padding:.35rem .55rem;font-size:.99rem;white-space:nowrap}.tabs-item__close{padding:.2rem .4rem;opacity:.8}.tabs-item__close:hover{opacity:1}.editor-textarea{width:100%;height:100%;resize:none;border:none;padding:1rem;background:#1e1e1e;color:#d4d4d4;font-size:1.1rem;line-height:1.45;font-family:Fira Code,Cascadia Code,monospace;scrollbar-width:thin;scrollbar-color:#4f4f4f #1e1e1e}.editor-textarea::-webkit-scrollbar{width:12px;height:12px}.editor-textarea::-webkit-scrollbar-track{background:#1e1e1e}.editor-textarea::-webkit-scrollbar-thumb{background:#4f4f4f;border:3px solid #1e1e1e;border-radius:8px}.editor-textarea::-webkit-scrollbar-thumb:hover{background:#666}.editor-textarea:focus{outline:2px solid #007acc;outline-offset:-2px}.editor-stage--runtime .editor-surface{display:none}.sprite-surface{display:none;min-height:0;height:100%}.editor-stage--sprite .editor-surface{display:none}.editor-stage--sprite .sprite-surface{display:block}.editor-stage--runtime .sprite-surface{display:none}.sprite-editor{height:100%;min-height:0;display:grid;grid-template-rows:auto 1fr;background:radial-gradient(circle at top right,rgb(27 66 96 / 28%),transparent 32%),linear-gradient(180deg,#15181d,#131519)}.sprite-editor--hidden{display:none}.sprite-editor__toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem .9rem;border-bottom:1px solid #3c3c3c;background:#0e1217e0}.sprite-editor__tools-group{display:flex;align-items:center;gap:.4rem;min-width:0}.sprite-editor__toolbar-controls{display:flex;align-items:center;gap:.45rem}.sprite-editor__toolbar-button{border:1px solid #3c4f60;border-radius:6px;background:#1d2731;color:#d7e7f5;padding:.22rem .55rem;font-size:.88rem;cursor:pointer}.sprite-editor__toolbar-button:hover{background:#243543}.sprite-editor__toolbar-button--active{background:#0b4f75;border-color:#2ea3ef}.sprite-editor__toolbar-zoom{min-width:2.6rem;text-align:center;color:#a8c9e2;font-size:.88rem}.sprite-editor__meta{color:#9fc8e7;font-size:.92rem;margin-left:auto}.sprite-editor__body{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 260px}.sprite-editor__viewport{min-height:0;overflow:auto;padding:1rem;display:flex;align-items:flex-start;justify-content:flex-start;scrollbar-width:thin;scrollbar-color:#4f4f4f #1e1e1e}.sprite-editor__viewport::-webkit-scrollbar{width:12px;height:12px}.sprite-editor__viewport::-webkit-scrollbar-track{background:#1e1e1e}.sprite-editor__viewport::-webkit-scrollbar-thumb{background:#4f4f4f;border:3px solid #1e1e1e;border-radius:8px}.sprite-editor__viewport::-webkit-scrollbar-thumb:hover{background:#666}.sprite-editor__canvas{display:block;image-rendering:pixelated;image-rendering:crisp-edges;box-shadow:0 20px 48px #0000005c;border:1px solid #435465}.sprite-editor__sidebar{border-left:1px solid #3c3c3c;background:#12161cf0;padding:1rem;overflow:auto;display:grid;align-content:start;gap:.9rem;scrollbar-width:thin;scrollbar-color:#4f4f4f #1e1e1e}.sprite-editor__sidebar::-webkit-scrollbar{width:12px;height:12px}.sprite-editor__sidebar::-webkit-scrollbar-track{background:#1e1e1e}.sprite-editor__sidebar::-webkit-scrollbar-thumb{background:#4f4f4f;border:3px solid #1e1e1e;border-radius:8px}.sprite-editor__sidebar::-webkit-scrollbar-thumb:hover{background:#666}.sprite-editor__status{margin:0;color:#d0d8e0;font-size:.96rem;line-height:1.45}.sprite-editor__section{border:1px solid #2f3a45;border-radius:8px;background:#151c23d1;padding:.7rem}.sprite-editor__section-title{margin:0 0 .55rem;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:#9fc0d8}.sprite-editor__tool-button{border:1px solid #3b4e60;border-radius:6px;background:#17222d;color:#d7e2ec;padding:.35rem .3rem;font-size:.82rem;cursor:pointer}.sprite-editor__tool-button:hover{background:#1f2f3e}.sprite-editor__tool-button--active{background:#0f5078;border-color:#2ea3ef;color:#eff8ff}.sprite-editor__palette-info{margin:0 0 .5rem;color:#9eb0bf;font-size:.78rem}.sprite-editor__palette-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(24px,1fr));gap:.24rem}.sprite-editor__palette-button{width:100%;aspect-ratio:1;min-height:24px;border:1px solid #2b3947;border-radius:4px;padding:0;cursor:pointer}.sprite-editor__palette-button--selected{outline:2px solid #f0f6ff;outline-offset:1px}.sprite-editor__palette-button--erase{box-shadow:inset 0 0 0 2px #111}.sprite-editor__details{margin:0;display:grid;gap:.55rem}.sprite-editor__detail-row{display:grid;grid-template-columns:80px 1fr;gap:.6rem;color:#c4ccd4;font-size:.9rem}.sprite-editor__detail-row dt,.sprite-editor__detail-row dd{margin:0}.sprite-editor__detail-row dt{color:#8ba0b2}.runtime-panel{display:none;height:100%;min-height:0;grid-template-rows:auto 1fr 8px var(--runtime-logs-height, 160px);background:#1f1f20}.runtime-panel.runtime-panel--logs-hidden{grid-template-rows:auto 1fr 0 0}.editor-stage--runtime .runtime-panel{display:grid}.runtime-toolbar{display:flex;align-items:center;justify-content:space-between;padding:.45rem .75rem;border-bottom:1px solid #3c3c3c;background:#252526}.runtime-title{margin:0;font-size:.92rem;text-transform:uppercase;letter-spacing:.06em;color:#cfcfcf}.runtime-status{font-size:.82rem;color:#9ad3ff}.runtime-iframe{width:100%;height:100%;border:none;background:#101011}.runtime-splitter{height:8px;cursor:row-resize;background:#2a2a2c;border-top:1px solid #3c3c3c;border-bottom:1px solid #3c3c3c}.runtime-splitter:hover{background:#3a3a3d}.runtime-panel.runtime-panel--logs-hidden .runtime-splitter,.runtime-panel.runtime-panel--logs-hidden .runtime-logs{display:none}.runtime-logs{margin:0;padding:.75rem;overflow:auto;background:#171718;color:#d2d2d2;font-family:IBM Plex Mono,Fira Code,monospace;font-size:.92rem;line-height:1.45;white-space:pre-wrap;word-break:break-word;scrollbar-width:thin;scrollbar-color:#4f4f4f #1e1e1e}.runtime-logs::-webkit-scrollbar{width:12px;height:12px}.runtime-logs::-webkit-scrollbar-track{background:#1e1e1e}.runtime-logs::-webkit-scrollbar-thumb{background:#4f4f4f;border:3px solid #1e1e1e;border-radius:8px}.runtime-logs::-webkit-scrollbar-thumb:hover{background:#666}@media (max-width: 840px){.app-body{grid-template-columns:1fr;grid-template-rows:minmax(180px,35vh) 1fr}.app-explorer{border-right:none;border-bottom:1px solid #3c3c3c}.explorer-splitter{display:none}.status-bar{font-size:1rem;gap:.3rem}.status-bar__item{padding:.2rem .3rem}.sprite-editor__body{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}.sprite-editor__sidebar{border-left:none;border-top:1px solid #3c3c3c}.sprite-editor__toolbar{flex-wrap:wrap;gap:.55rem}.sprite-editor__meta{order:3;width:100%;margin-left:0}}
