:root{
  --bg:#071019;
  --panel:#0b1623;
  --panel-2:#101f30;
  --border:#28445e;
  --text:#edf7ff;
  --muted:#8ea6ba;
  --accent:#28cbff;
  --danger:#ff667c;
  --stage-w:941px;
  --stage-h:1672px;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;background:var(--bg);color:var(--text)}
body{overflow:hidden}
button,input,select{font:inherit}
button{cursor:pointer;color:inherit}
button:disabled{opacity:.45;cursor:not-allowed}
button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #fff;outline-offset:2px}
.is-hidden{display:none!important}

.editor-app{width:100vw;height:100vh;display:grid;grid-template-columns:310px minmax(0,1fr) 310px;background:linear-gradient(180deg,#071019,#040a10)}
.panel{width:310px;min-width:310px;max-width:310px;height:100vh;overflow-y:auto;overflow-x:hidden;padding:18px;background:linear-gradient(180deg,var(--panel),#08111b);border-color:var(--border);border-style:solid}
.panel-left{border-width:0 1px 0 0}.panel-right{border-width:0 0 0 1px}
h1{font-size:20px;margin:0 0 4px}h2{font-size:14px;margin:22px 0 10px;text-transform:uppercase;letter-spacing:.08em;color:#cbeaff}p{margin:0}
.brand-row p{font-size:12px;color:var(--muted)}
.quick-help{margin-top:18px;padding:12px;border:1px solid var(--border);border-radius:12px;background:rgba(16,31,48,.72);font-size:12px;color:#cfe1ef}.quick-help strong{color:#fff}.quick-help ol{margin:8px 0 0;padding-left:20px;line-height:1.55}
.toolbar-stack{display:grid;gap:10px;margin-top:14px;min-width:0}.toolbar-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:0}.toolbar-row button{min-width:0;padding-left:7px;padding-right:7px;white-space:normal}
.action-button,.primary-button,.danger-button,.nudge-grid button,.layer-actions button{border:1px solid var(--border);border-radius:10px;padding:9px 12px;background:linear-gradient(180deg,#14283d,#0c1a29)}
.primary-button{border-color:#34cfff;background:linear-gradient(180deg,#0e80ab,#07506e);font-weight:800}.launch-button{width:100%;padding:11px 12px;font-size:14px}
.danger-button{border-color:#783747;background:linear-gradient(180deg,#572432,#35141e);color:#ffdce2}
.range-row,.select-row{display:grid;gap:6px;font-size:12px;color:#c3d6e5}.range-row input{width:100%}.select-row select{width:100%;border:1px solid #2a4961;border-radius:9px;background:#071522;color:#fff;padding:8px 9px}
.element-list{display:grid;gap:7px}.element-group-heading{margin:12px 2px 3px;padding:6px 8px;border-top:1px solid #203a51;color:#7edfff;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.element-group-heading:first-child{margin-top:0}
.element-button{width:100%;min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #203a51;border-radius:10px;padding:8px 10px;background:#0b1926;text-align:left;font-size:12px}.element-button:hover{background:#102338}.element-button.is-active{border-color:var(--accent);box-shadow:0 0 0 1px rgba(40,203,255,.24) inset;background:#0d2738}.element-button small{color:var(--muted)}.element-button.is-dynamic-button{border-color:#275c78;background:#0b1d2b}.element-button.is-dynamic-button small{color:#55dfff;font-weight:800}
.dynamic-help{margin:-4px 0 10px!important;color:#90aabd!important;font-size:11px!important;line-height:1.45!important}

.workspace{position:relative;min-width:0;min-height:0;overflow:hidden;background:radial-gradient(circle at 50% 45%,#142536,#050b11 68%)}
.stage-viewport{position:absolute;inset:12px 12px 42px;overflow:auto;padding:20px;background:#02070b;overscroll-behavior:contain}
.stage-viewport::-webkit-scrollbar{width:14px;height:14px}.stage-viewport::-webkit-scrollbar-track{background:#06111b}.stage-viewport::-webkit-scrollbar-thumb{background:#244761;border:3px solid #06111b;border-radius:10px}.stage-viewport::-webkit-scrollbar-corner{background:#06111b}
.stage-wrap{position:relative;width:var(--stage-w);height:var(--stage-h);transform-origin:top left;margin:0;filter:drop-shadow(0 22px 60px rgba(0,0,0,.62))}
.layout-stage{position:absolute;left:0;top:0;width:var(--stage-w);height:var(--stage-h);overflow:hidden;background:#02050a;transform-origin:top left;user-select:none;touch-action:none}
.game-frame{position:absolute;inset:0;width:941px;height:1672px;border:0;background:#02050a;z-index:1}
.items-layer{position:absolute;inset:0;width:941px;height:1672px;z-index:10;pointer-events:none}
.editor-box{position:absolute;box-sizing:border-box;border:0;background:transparent;pointer-events:auto;cursor:move;touch-action:none}
.editor-box::after{content:"";display:none;position:absolute;inset:-4px;border:2px solid #fff;box-shadow:0 0 0 2px var(--accent),0 0 16px rgba(40,203,255,.55);pointer-events:none}
.editor-box.is-selected::after{display:block}
.editor-box-label{display:none;position:absolute;left:0;bottom:100%;max-width:190px;padding:3px 6px;border-radius:6px 6px 0 0;background:#062238;color:#dbf9ff;font:700 10px/1.2 system-ui,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
.editor-box.is-selected .editor-box-label{display:block}
.resize-handle{display:none;position:absolute;right:-10px;bottom:-10px;width:22px;height:22px;border:2px solid #fff;border-radius:50%;background:var(--accent);box-shadow:0 0 14px rgba(40,203,255,.75);cursor:nwse-resize;z-index:5;padding:0}
.editor-box.is-selected .resize-handle{display:block}
.editor-box.is-hidden-box{opacity:.18}
.workspace-status{position:absolute;left:12px;right:12px;bottom:9px;height:26px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#a8bfce;pointer-events:none}

.empty-state{padding:14px;border:1px dashed #335269;border-radius:10px;color:var(--muted);font-size:13px}.selected-name{display:block;margin-bottom:12px;color:#fff}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field-grid label{display:grid;gap:5px;font-size:11px;color:#a9bfd0;text-transform:uppercase;letter-spacing:.06em}.field-grid input{width:100%;border:1px solid #2a4961;border-radius:8px;background:#06121e;color:#fff;padding:8px}.field-grid input[readonly]{opacity:.65}.field-grid-z{margin-top:12px}
.ratio-note{margin:10px 0 12px;font-size:11px;line-height:1.45;color:#8fa8bb}.checkbox-row{display:flex;gap:8px;align-items:center;font-size:12px}.layer-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.layer-actions button{padding:8px 6px;font-size:11px}.nudge-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:14px}.nudge-grid button{padding:7px 3px;font-size:10px}
hr{border:0;border-top:1px solid var(--border);margin:22px 0}.export-actions,.diagnostics-actions{display:grid;gap:9px}.diagnostics-actions{grid-template-columns:1fr 1fr}.diagnostics-actions .danger-button{grid-column:1/-1}
.diagnostic-log{height:220px;overflow:auto;margin:10px 0 0;padding:10px;border:1px solid #1d3548;border-radius:10px;background:#030b12;color:#b8d7e8;font:11px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;word-break:break-word}
.keyboard-help{margin-top:18px;padding:11px;border-radius:10px;background:#071522;border:1px solid #1d3548;font-size:11px;color:#9fb6c7;line-height:1.5}.keyboard-help strong{color:#e8f7ff}

@media(max-width:1100px){.editor-app{grid-template-columns:310px minmax(0,1fr) 310px}.panel{padding:14px}}

.bridge-status{margin:-4px 0 2px;padding:6px 8px;border:1px solid #294861;border-radius:8px;background:#071522;color:#9fb6c7;font-size:11px;line-height:1.25}
.bridge-status[data-state=ok]{border-color:#287e68;color:#99f1d1;background:#082019}
.bridge-status[data-state=error]{border-color:#7b3949;color:#ffd2db;background:#271019}

/* v0.5.48 — three independent layout rooms for the three game difficulties. */
.room-panel{margin-top:14px;padding:11px;border:1px solid #26465f;border-radius:12px;background:rgba(8,23,36,.86)}
.room-panel>strong{display:block;margin-bottom:8px;color:#eaf8ff;font-size:12px}
.room-panel>p{margin-top:8px;color:#8ea9bc;font-size:10px;line-height:1.4}
.difficulty-room-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.difficulty-room-tab{min-width:0;padding:7px 4px;border:1px solid #294b64;border-radius:9px;background:#0a1926;color:#b7cddd;text-align:center}
.difficulty-room-tab span,.difficulty-room-tab small{display:block;white-space:nowrap}
.difficulty-room-tab span{font-size:10px;font-weight:900}.difficulty-room-tab small{margin-top:2px;color:#7895aa;font-size:8px}
.difficulty-room-tab:hover{background:#10273a}.difficulty-room-tab.is-active{border-color:#3bd6ff;background:#0b3044;color:#fff;box-shadow:inset 0 0 14px rgba(42,205,255,.12),0 0 12px rgba(42,205,255,.12)}
.difficulty-room-tab.is-active small{color:#70e7ff}
/* Blank space must be clickable so it can clear the active selection. */
.items-layer{pointer-events:auto}

/* =====================================================================
   v0.5.54 — preview switches + bilingual custom text editor
   ===================================================================== */
.preview-controls{display:grid;gap:10px;margin-top:14px}
.preview-control-block{padding:11px;border:1px solid #26465f;border-radius:12px;background:rgba(8,23,36,.86)}
.preview-control-block>strong{display:flex;align-items:center;gap:7px;margin-bottom:8px;color:#eaf8ff;font-size:12px}
.preview-control-block>p{margin-top:8px;color:#8ea9bc;font-size:10px;line-height:1.4}
.step-number{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#0d79a1;color:#fff;font-size:11px;box-shadow:0 0 10px rgba(40,203,255,.22)}
.language-preview-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.language-preview-tab{min-width:0;padding:8px;border:1px solid #294b64;border-radius:9px;background:#0a1926;color:#b7cddd;text-align:center}
.language-preview-tab b,.language-preview-tab small{display:block}.language-preview-tab b{font-size:12px}.language-preview-tab small{margin-top:2px;color:#7895aa;font-size:9px}
.language-preview-tab:hover{background:#10273a}.language-preview-tab.is-active{border-color:#3bd6ff;background:#0b3044;color:#fff;box-shadow:inset 0 0 14px rgba(42,205,255,.12),0 0 12px rgba(42,205,255,.12)}
.language-preview-tab.is-active small{color:#70e7ff}
.preview-background-row{display:block}.preview-background-row select{margin:0}
.room-panel{display:none!important}

.text-tools-panel{margin-top:18px;padding:11px;border:1px solid #31536c;border-radius:12px;background:rgba(7,20,32,.88)}
.text-tools-panel h2{margin:0;text-transform:none;letter-spacing:0;font-size:13px}
.text-tools-panel>p{margin:8px 0 10px;color:#8ea9bc;font-size:10px;line-height:1.4}
.text-tools-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.compact-button{width:auto;padding:7px 9px;font-size:10px;white-space:nowrap}
.text-list{display:grid;gap:6px}.text-list:empty::after{content:"Текстовых слоёв пока нет";display:block;padding:9px;border:1px dashed #29465b;border-radius:9px;color:#69879d;font-size:10px;text-align:center}
.text-list-button{width:100%;min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #36596f;border-radius:9px;padding:7px 9px;background:#0b1d2b;text-align:left;font-size:11px}
.text-list-button:hover{background:#102a3d}.text-list-button.is-active{border-color:#6cecff;background:#0c3043;box-shadow:inset 0 0 12px rgba(51,213,255,.11)}
.text-list-button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-list-button small{flex:0 0 auto;color:#70e7ff;font-size:8px}

.editor-box.text-editor-box{border:0}.editor-box.text-editor-box::after{border-color:#fff;box-shadow:0 0 0 2px #ffcf45,0 0 17px rgba(255,202,63,.55)}
.editor-box.text-editor-box .resize-handle{background:#ffbf31;box-shadow:0 0 14px rgba(255,196,52,.75)}
.editor-box.text-editor-box .editor-box-label{background:#4b3504;color:#fff6d7}

.text-property-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.text-property-header .selected-name{margin:0}
.language-badge{display:inline-grid;place-items:center;min-width:34px;height:24px;padding:0 7px;border:1px solid #38cfff;border-radius:999px;background:#073047;color:#8feeff;font-size:10px;font-weight:900}
.textarea-row{display:grid;gap:6px;margin-top:12px;color:#a9bfd0;font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.textarea-row textarea{resize:vertical;min-height:70px;width:100%;border:1px solid #2a4961;border-radius:9px;background:#06121e;color:#fff;padding:9px;line-height:1.3}
.text-style-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}
.text-style-grid label{display:grid;gap:5px;color:#a9bfd0;font-size:10px;text-transform:uppercase;letter-spacing:.04em}
.text-style-grid select,.text-style-grid input[type=number]{width:100%;border:1px solid #2a4961;border-radius:8px;background:#06121e;color:#fff;padding:8px}
.color-label input[type=color]{width:100%;height:38px;padding:3px;border:1px solid #2a4961;border-radius:8px;background:#06121e}
.text-properties .checkbox-row{margin-top:10px}.delete-text-button{width:100%;margin-top:14px}.text-nudge-grid button{border:1px solid var(--border);border-radius:10px;padding:7px 3px;background:linear-gradient(180deg,#14283d,#0c1a29);font-size:10px}
