.native-editor { width: 100vw; height: 100vh; display: grid; grid-template-rows: 40px 40px minmax(0, 1fr) auto auto; overflow: hidden; background: var(--bg-app); color: var(--text-primary); font: 12px Inter, ui-sans-serif, system-ui, sans-serif; user-select: none; }
.editor-header { height: 40px; display: flex; align-items: center; border-bottom: 1px solid var(--border-color); background: var(--bg-header); }
.editor-logo { width: 20px; height: 20px; flex: 0 0 20px; margin: 0 7px 0 10px; background: url("https://cdn.ecxogames.ca/ecxogames/files/socrate/icons/logo.png") center/contain no-repeat; color: transparent; font-size: 0; }
.editor-menubar { align-self: stretch; display: flex; align-items: stretch; }
.editor-menubar button { min-width: 42px; padding: 0 10px; border: 0; background: transparent; color: #b5b5b5; font-size: 12px; cursor: default; }
.editor-menubar button:hover, .editor-menubar button:focus { outline: 0; background: #242424; color: #fff; }
.editor-header-actions { height: 100%; display: flex; align-items: center; gap: 6px; margin-left: auto; padding-right: 8px; }
.editor-header-actions button { height: 26px; padding: 0 9px; border: 1px solid #333; border-radius: 4px; background: #1b1b1b; color: #bdbdbd; font-size: 11px; cursor: pointer; }
.editor-header-actions button { display:inline-flex;align-items:center;gap:7px }
.editor-header-actions svg { width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round }
.editor-header-actions button:hover { border-color: #444; background: #252525; color: #fff; }
.editor-header-actions strong { color: #ededed; font-weight: 500; }
.editor-tools { height: 40px; display: flex; align-items: center; gap: 2px; padding: 0 8px; border-bottom: 1px solid var(--border-color); background: var(--bg-app); }
.editor-tools button { width: 28px; height: 28px; display: grid; place-content: center; padding: 0; border: 1px solid transparent; border-radius: 3px; background: transparent; color: #a2a2a2; font-size: 15px; cursor: pointer; }
.editor-tools button:hover { background: #242424; color: #fff; }
.editor-tools button.active { border-color: #2563eb; background: #2563eb; color: #fff; }
.editor-tools button svg { width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round }
.editor-tools button svg.filled { fill:currentColor;stroke:none }
.editor-tools i { width: 1px; height: 20px; margin: 0 5px; background: #333; }
.editor-main { min-height: 0; display: grid; overflow: hidden; }
.editor-dock { min-width: 0; min-height: 0; display: grid; grid-auto-rows: minmax(34px, 1fr); overflow: hidden; background: var(--bg-panel); }
.editor-center { min-width: 0; min-height: 0; display: grid; grid-template-rows: 36px minmax(0, 1fr); overflow: hidden; }
.editor-tabs { min-width: 0; height: 36px; display: flex; align-items: stretch; overflow-x: auto; overflow-y: hidden; border-bottom: 1px solid var(--border-color); background: var(--bg-app); scrollbar-width: none; user-select: none; }
.editor-tabs::-webkit-scrollbar { display: none; }
.editor-tabs button { position: relative; width: 128px; min-width: 128px; height: 35px; display: flex; align-items: center; gap: 4px; padding: 0 6px 0 9px; overflow: hidden; border: 0; border-right: 1px solid var(--border-color); border-radius: 0; background: var(--bg-app); color: var(--text-secondary); font: 400 12px/1 Inter, sans-serif; text-align: left; cursor: pointer; transition: background .12s, color .12s, opacity .12s; }
.editor-tabs button:hover { background: #ffffff0d; color: #ddd; }
.editor-tabs button.active { background: var(--bg-panel); color: #fff; }
.editor-tabs button.active::after { content: ""; position: absolute; right: 0; bottom: 0; left: 0; height: 2px; background: #3b82f6; }
.editor-tabs button > span { height: auto; padding: 0; border: 0; background: transparent; }
.editor-tabs .tab-title { display: block; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.editor-tabs .tab-close { width: 15px; height: 15px; display: grid; flex: none; place-items: center; border-radius: 3px; opacity: 0; color: #bbb; font: 400 15px/13px Arial, sans-serif; }
.editor-tabs button:hover .tab-close { opacity: 1; }
.editor-tabs .tab-close:hover { background: #ffffff20; }
.editor-tabs button.dragging { opacity: .35; }
.editor-tabs button.drag-over::before { content: ""; position: absolute; top: 4px; bottom: 4px; left: 0; z-index: 2; width: 2px; border-radius: 2px; background: #60a5fa; }
.editor-canvas { min-width: 0; min-height: 0; display: grid; place-items: stretch; overflow: hidden; background: #0f0f0f; text-align: left; }
.editor-welcome { place-self: center; color: #777; text-align: center; }
.editor-welcome h2 { margin: 0 0 5px; color: #cfcfcf; font-size: 15px; font-weight: 500; }
.editor-welcome p { margin: 0; font-size: 11px; }
.editor-resizer { z-index: 3; background: #242424; transition: background .12s; }
.editor-resizer:hover, .editor-resizer:active { background: #2563eb; }
.resize-x { width: 4px; cursor: col-resize; }
.resize-y { height: 4px; cursor: row-resize; }
.editor-output { min-height: 34px; overflow: hidden; background: var(--bg-panel); }
.editor-output > socrate-panel { height: 100%; }
.native-editor socrate-panel { min-height: 0; display: flex; flex-direction: column; overflow: hidden; border-bottom: 1px solid var(--border-color); }
.native-editor .panel-toolbar { height: 30px; flex: 0 0 30px; padding: 0 4px 0 9px; background: #191919; cursor: grab; }
.native-editor .panel-toolbar:active { cursor: grabbing; }
.native-editor .panel-title { overflow: hidden; color: #c9c9c9; font-size: 10px; font-weight: 600; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.native-editor .panel-toolbar-actions button, .panel-actions button { width: 23px; height: 23px; padding: 0; border: 1px solid transparent; border-radius: 3px; background: transparent; color: #929292; cursor: pointer; }
.native-editor .panel-toolbar-actions button:hover, .panel-actions button:hover { border-color: #343434; background: #242424; color: #f2f2f2; }
.native-editor socrate-explorer, .native-editor socrate-assets, .native-editor socrate-modules, .native-editor socrate-output { min-height: 0; display: flex; flex: 1; flex-direction: column; overflow: hidden; }
.panel-actions { height: 28px; flex: 0 0 28px; display: flex; justify-content: flex-end; align-items: center; gap: 1px; padding: 2px 5px; border-bottom: 1px solid #252525; }
.panel-list { min-height: 0; display: flex; flex: 1; flex-direction: column; padding: 3px 0; overflow: auto; }
.panel-list button { min-height: 24px; display: grid; grid-template-columns: 12px 20px minmax(0, 1fr); align-items: center; gap: 2px; padding: 0 6px; overflow: hidden; border: 0; background: transparent; color: #bcbcbc; text-align: left; font-size: 11px; cursor: default; }
.panel-list button:hover { background: #242424; color: #fff; }
.panel-list button.selected { background: #26384f; color: #fff; }
.panel-list button span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.native-editor socrate-assets .panel-list button { grid-template-columns:20px minmax(0,1fr) auto 18px }
.asset-thumb { width:18px;height:18px;border-radius:2px;object-fit:cover }.asset-size{color:#666;font-size:9px}.native-editor socrate-assets [data-remove]{opacity:0;color:#777;font-size:15px}.native-editor socrate-assets button:hover [data-remove]{opacity:1}.native-editor socrate-assets [data-remove]:hover{color:#f87171}
.panel-file-icon, .panel-icon { color: #71717a; font-size: 9px; text-align: center; }
.panel-file-icon.file-script { color:#facc15 }.panel-file-icon.file-module { color:#34d399 }.panel-file-icon.file-json { color:#ca8a04 }.panel-file-icon.file-html { color:#f97316 }.panel-file-icon.file-style { color:#60a5fa }.panel-file-icon.file-image { color:#c084fc }.panel-file-icon.file-audio { color:#f472b6 }
.panel-empty-message, .module-empty { padding: 10px; color: #696969; font-size: 10px; text-align: center; }
.module-actions { height:28px;display:flex;align-items:center;justify-content:flex-end;gap:1px;padding:2px 5px }
.module-actions button { width:23px;height:23px;display:grid;place-content:center;padding:0;border:1px solid transparent;border-radius:3px;background:transparent;color:#929292 }
.module-actions button:hover { border-color:#343434;background:#242424;color:#fff }
.module-actions .material-icon { font-size:14px }
.module-filter { display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;padding:6px 8px 8px }
.module-filter select,.module-filter input { min-width:0;height:25px;padding:0 7px;border:1px solid #333;border-radius:3px;background:#1e1e1e;color:#c9c9c9;font-size:10px;outline:0 }
.module-filter select:focus,.module-filter input:focus { border-color:#007bff }
.module-list { min-height:0;flex:1;overflow:auto;padding:0 8px 8px }
.module-row { width:100%;height:25px;display:grid;grid-template-columns:18px minmax(0,1fr) 18px;align-items:center;gap:3px;padding:0 4px;border:0;border-radius:3px;background:transparent;color:#c6c6c6;text-align:left;font-size:11px }
.module-row:hover { background:#ffffff0d;color:#fff }
.module-row.selected { background:#007bff33;color:#fff }
.module-row .material-icon { color:#777;font-size:14px }
.module-row span:nth-child(2) { overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
.module-row [data-remove] { opacity:0;color:#777;font-family:'Material Symbols Outlined';font-size:14px }
.module-row:hover [data-remove] { opacity:1 }
.module-row [data-remove]:hover { color:#f87171 }
.context-menu { min-width: 200px; padding: 4px; border-color: #343434; background: #1b1b1b; }
.context-menu button { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 27px; padding: 5px 9px; cursor: default; }
.context-menu button:disabled { color: #626262; pointer-events: none; }
.context-menu kbd { color: #777; font: 10px Inter, sans-serif; }
.context-menu hr { margin: 4px 3px; }
.native-editor socrate-code, .native-editor socrate-json, .native-editor socrate-preview { min-width: 0; min-height: 0; width: 100%; height: 100%; }
@media (max-width: 800px) { .editor-header-actions button:not([data-preview]) { display: none; } .editor-menubar button { min-width: 36px; padding: 0 6px; } }
