:root{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#ccc;background:#1e1e1e;--border:#303030;--code-size:14px;--console-height:230px;--sidebar-width:260px;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}body{margin:0;height:100dvh;overflow:hidden}button,select,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.3;cursor:default}[hidden]{display:none!important}.symbols{position:absolute;width:0;height:0;overflow:hidden}
button,select{transition:background-color 150ms,color 150ms,opacity 150ms,transform 180ms var(--ease)}button:hover:not(:disabled){background:#ffffff0c;color:#eee}button:active:not(:disabled){transform:scale(.96)}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,[role=separator]:focus-visible,summary:focus-visible{outline:1px solid #8da6bd;outline-offset:-1px}button{color:inherit}svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.3;flex-shrink:0}
.app{height:var(--app-height,100dvh);width:100%;display:flex;flex-direction:column;overflow:hidden}.topbar{height:38px;flex-shrink:0;background:#181818;border-bottom:1px solid #292929;display:flex;align-items:center;gap:14px;padding:0 12px;z-index:5}.app-name{font-size:11px;color:#aaa}.layout-controls{margin-left:auto;display:flex;align-items:center;gap:5px}.icon-button{border:0;background:transparent;color:#969696;border-radius:4px;width:29px;height:28px;padding:5px;display:flex;justify-content:center;align-items:center;font-size:10px;flex-shrink:0}.icon-button svg{width:17px;height:17px}
#project-picker{max-width:230px;background:transparent;color:#aaa;border:0;font-size:11px;padding:5px;min-width:90px}select option{background:#252525;color:#ddd}#save-indicator{width:4px;height:4px;flex-shrink:0;border-radius:50%;background:#626c62}#save-indicator[data-state=pending]{background:#b4a488}#save-indicator[data-state=error]{background:#d69595}
.menu{position:relative}.menu>summary{list-style:none;cursor:pointer}.menu>summary::-webkit-details-marker{display:none}.menu[open]>summary{background:#303030}.menu-items{position:absolute;right:0;top:34px;width:250px;padding:5px;background:#252525;border:1px solid #454545;border-radius:6px;box-shadow:0 10px 40px #0007;z-index:30;max-height:80dvh;overflow:auto;animation:appear 160ms var(--ease)}.menu-items button{width:100%;display:block;text-align:left;border:0;border-radius:3px;padding:9px 12px;background:transparent;font-size:12px}.menu-items hr{border:0;border-top:1px solid #3a3a3a;margin:4px 7px}.menu-items>span{display:block;font-size:10px;color:#868686;padding:9px 12px;line-height:1.5}
.workspace{flex:1;min-height:0;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);transition:grid-template-columns 260ms var(--ease)}.sidebar{min-width:0;overflow:hidden;background:#181818;border-right:1px solid #292929;display:flex;flex-direction:column;transition:opacity 180ms,visibility 260ms,transform 260ms var(--ease)}.sidebar-heading{height:38px;display:flex;align-items:center;justify-content:space-between;padding:0 10px 0 18px;font-size:10px;letter-spacing:.4px;white-space:nowrap;color:#a6a6a6;flex-shrink:0}.sidebar-actions{display:flex;gap:2px}#tree{flex:1;min-height:0;overflow:auto;padding:6px 0}.tree-row{border:0;width:100%;display:flex;align-items:center;gap:6px;padding:6px 10px;font-size:12px;color:#bcbcbc;background:transparent;text-align:left;white-space:nowrap;min-height:29px}.tree-row.selected{background:#2a2a2a;color:#eee}.tree-name{overflow:hidden;text-overflow:ellipsis}.tree-row svg{width:15px;height:15px}.tree-row svg:first-child{width:10px;transition:transform 180ms var(--ease);transform:rotate(90deg)}.tree-row.collapsed svg:first-child{transform:rotate(0)}.file-mark{width:23px;text-align:center;font:10px Consolas,monospace;color:#aebfca;flex-shrink:0}.file-actions{display:flex;align-items:center;gap:4px;min-height:38px;border-top:1px solid #292929;padding:0 8px}.file-actions>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:#777}
main{min-width:0;min-height:0;display:flex;flex-direction:column;background:#1e1e1e}.editor-bar{height:38px;flex-shrink:0;background:#181818;display:flex;align-items:stretch;justify-content:space-between}#tabs{display:flex;flex:1;min-width:0;overflow-x:auto;scrollbar-width:thin}.tab{display:flex;align-items:center;border-right:1px solid #292929;border-top:1px solid transparent;flex-shrink:0;color:#8d8d8d;max-width:250px}.tab.active{background:#1e1e1e;border-top-color:#969696;color:#ddd}.tab-open{padding:0 13px;height:100%;font-size:12px;background:transparent;border:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-close{padding:0 5px;margin-right:4px;border:0;border-radius:3px;color:#777;display:flex;align-items:center;background:none;height:24px}.tab-close svg{width:13px;height:13px}.editor-actions,.console-actions{display:flex;align-items:center;gap:5px;padding-right:10px;flex-shrink:0}#run{color:#adbdac}#run svg{fill:currentColor;stroke:none;width:15px;height:15px}#stop{width:0;padding:0;opacity:0;overflow:hidden;pointer-events:none;transition:width 220ms var(--ease),padding 220ms var(--ease),opacity 160ms}.app[data-state=running] #stop,.app[data-state=installing] #stop{width:28px;padding:5px;opacity:1;pointer-events:auto}
#editor{flex:1;min-height:100px;overflow:hidden}#empty-editor,#binary-preview{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:20px;color:#999;font-size:12px;overflow:auto}#binary-image{max-width:100%;max-height:70%;object-fit:contain}#empty-editor button,#binary-preview button{background:#292929;border:1px solid #444;border-radius:4px;padding:8px 14px}.cm-editor{height:100%}.cm-search input,.cm-search button{max-width:180px}.cm-search label{display:inline-flex;gap:3px}.cm-search button{padding:3px 6px}.edit-keys{display:none}
#resize-console{height:4px;flex-shrink:0;border-top:1px solid #333;cursor:row-resize;touch-action:none;transition:height 260ms var(--ease),background-color 160ms,visibility 260ms}#resize-console:hover{background:#65717d}.console-panel{height:var(--console-height);max-height:60%;flex-shrink:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:#1e1e1e;transition:height 260ms var(--ease),opacity 160ms,visibility 260ms}.console-bar{height:35px;flex-shrink:0;padding-left:20px;display:flex;align-items:center;justify-content:space-between}.console-title{font-size:10px;letter-spacing:.3px;color:#bbb;height:100%;display:flex;align-items:center;border-bottom:1px solid #999}#duration{font-size:10px;color:#737373;margin-right:5px}#output{flex:1;min-height:0;overflow:auto;padding:12px 20px;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/22px Consolas,'Liberation Mono',monospace;outline:none;color:#c7c7c7}.output-info{color:#888}.output-error{color:#d69595}.plot{display:block;max-width:100%;max-height:500px;object-fit:contain;margin:12px 0;background:#fff;border-radius:4px}
#terminal-form{flex-shrink:0;display:flex;align-items:flex-start;gap:8px;padding:8px 16px 10px;border-top:1px solid #292929;font:12px monospace;color:#777}#terminal-prompt{padding-top:4px;color:#999}#terminal-input{flex:1;min-width:0;max-height:120px;resize:vertical;background:transparent;color:#ddd;border:0;padding:3px 0;outline:none;font:12px/20px Consolas,monospace}#terminal-form button{border:0;background:#2a2a2a;color:#aaa;border-radius:4px;padding:4px 9px}#terminal-form.waiting{background:#ffffff03}
.statusbar{height:23px;flex-shrink:0;background:#181818;border-top:1px solid #303030;display:flex;align-items:center;justify-content:space-between;padding:0 12px;font-size:10px;color:#858585}.runtime-status{border:0;background:transparent;color:#858585;display:flex;align-items:center;gap:7px;padding:2px 0;font-size:10px}.status-right{display:flex;gap:20px}#status-dot{width:5px;height:5px;border-radius:50%;background:#999;transition:background-color 220ms}#status-dot[data-state=ready]{background:#92a88c}#status-dot[data-state=error]{background:#d69595}.app[data-state=loading] #status-dot,.app[data-state=running] #status-dot,.app[data-state=installing] #status-dot{animation:breathe 1.4s ease-in-out infinite}.sidebar-hidden .workspace{grid-template-columns:0px minmax(0,1fr)}.sidebar-hidden .sidebar{opacity:0;visibility:hidden;transform:translateX(-8px)}.console-hidden .console-panel{height:0;opacity:0;visibility:hidden}.console-hidden #resize-console{height:0;border:0;visibility:hidden}.resizing .console-panel{transition:none}.resizing{cursor:row-resize;user-select:none}.mobile-nav{display:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#toast{position:fixed;bottom:40px;left:50%;transform:translate(-50%,8px);max-width:min(500px,90vw);padding:10px 16px;border:1px solid #484848;border-radius:5px;background:#292929;font-size:12px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 200ms,transform 240ms var(--ease),visibility 240ms;z-index:100}#toast.visible{opacity:1;visibility:visible;transform:translate(-50%,0)}
dialog{width:min(440px,calc(100vw - 32px));padding:22px;background:#232323;color:#ccc;border:1px solid #444;border-radius:10px;box-shadow:0 20px 90px #0006}dialog[open]{animation:appear 180ms var(--ease)}dialog::backdrop{background:#0008;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.dialog-head h2{font-size:16px;font-weight:500;margin:0}dialog label{display:block;font-size:11px;color:#aaa;margin:8px 0}dialog input{width:100%;font-size:14px;padding:10px;background:#181818;color:#ddd;border:1px solid #555;border-radius:5px}dialog p{font-size:12px;line-height:1.7;white-space:pre-wrap}#dialog-note{color:#999}#dialog-error{color:#d69595}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.dialog-actions button{border:1px solid #444;border-radius:5px;background:#303030;font-size:12px;padding:8px 14px}.dialog-actions #dialog-confirm{background:#d5d5d5;color:#242424;border-color:#d5d5d5}.dialog-actions #dialog-confirm.danger{background:#bc7e7e;border-color:#bc7e7e;color:#171717}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#424242;border:2px solid #1e1e1e;border-radius:6px}@keyframes breathe{50%{opacity:.4}}@keyframes appear{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1000px){:root{--sidebar-width:220px}}
@media(max-width:700px){
  :root{--code-size:14px}.app{padding-top:env(safe-area-inset-top)}.topbar{height:50px;padding:0 12px;gap:8px}.app-name{font-size:13px}#project-picker{max-width:calc(100vw - 145px);font-size:13px;padding:8px}#save-indicator{margin-left:3px}.desktop-only{display:none!important}.icon-button{width:42px;height:42px;padding:10px}.icon-button svg{width:19px;height:19px}.layout-controls{gap:0}.menu-items{top:46px;max-height:calc(var(--app-height,100dvh) - 120px);width:min(290px,calc(100vw - 24px));padding:6px}.menu-items button{font-size:14px;min-height:44px}.menu-items>span{font-size:11px;padding:12px}
  .workspace,.sidebar-hidden .workspace{display:flex;transition:none;flex:1;min-height:0}.sidebar,.sidebar-hidden .sidebar{width:100%;border:0;transform:none;opacity:1;visibility:visible;display:none}.app[data-mobile-view=files] .sidebar{display:flex;animation:appear 160ms var(--ease)}.app[data-mobile-view=files] main{display:none}main{width:100%;flex:1;min-height:0}.sidebar-heading{height:54px;padding:0 12px 0 20px;font-size:11px}.sidebar-actions{gap:4px}.tree-row{min-height:46px;font-size:15px;gap:9px}.tree-row svg{width:19px;height:19px}.tree-row svg:first-child{width:12px}.file-mark{font-size:12px;width:28px}.file-actions{min-height:54px;padding:0 12px}.file-actions>span{font-size:12px}.editor-bar{height:46px}.tab-open{font-size:13px;padding:0 12px}.tab-close{height:44px;width:34px;padding:9px;margin:0}.tab-close svg{width:17px;height:17px}.editor-actions{gap:0;padding-right:6px}.app[data-state=running] #stop,.app[data-state=installing] #stop{width:42px;padding:10px}#run svg{width:18px;height:18px}#tabs{max-width:calc(100% - 90px)}
  #resize-console{display:none}.console-panel,.console-hidden .console-panel{display:none;transition:none;max-height:none}.app[data-mobile-view=terminal] .console-panel{display:flex;flex:1;height:auto;opacity:1;visibility:visible;animation:appear 160ms var(--ease)}.app[data-mobile-view=terminal] #editor,.app[data-mobile-view=terminal] #empty-editor,.app[data-mobile-view=terminal] #binary-preview,.app[data-mobile-view=terminal] .edit-keys{display:none}.console-bar{height:45px;padding-left:16px}.console-title{font-size:11px}.console-actions{gap:0;padding-right:8px}#output{font-size:13px;line-height:23px;padding:12px 16px}#terminal-form{padding:10px 12px;gap:7px;align-items:center}#terminal-input{font-size:16px;line-height:24px;min-height:28px}#terminal-form button{min-width:42px;min-height:42px}#terminal-prompt{font-size:16px;padding:0}
  .edit-keys{display:flex;flex-shrink:0;align-items:center;overflow:auto;height:43px;padding:0 4px;border-top:1px solid #303030;background:#222;gap:2px;scrollbar-width:none}.edit-keys button{height:38px;min-width:38px;padding:0 9px;border:0;background:transparent;color:#b0b0b0;border-radius:4px;font:14px monospace}.edit-keys svg{width:17px;height:17px}.statusbar{height:20px;padding:0 10px;font-size:9px}.runtime-status{font-size:9px}.status-right{gap:12px}.mobile-nav{display:flex;align-items:stretch;justify-content:space-around;flex-shrink:0;min-height:58px;padding:3px 8px calc(3px + env(safe-area-inset-bottom));background:#181818;border-top:1px solid #303030}.mobile-nav button{position:relative;flex:1;display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;min-height:49px;border:0;background:none;color:#707070;font-size:10px}.mobile-nav button[aria-current]{color:#d9d9d9}.mobile-nav svg{width:20px;height:20px}#terminal-badge{position:absolute;top:5px;left:calc(50% + 10px);width:5px;height:5px;border-radius:50%;background:#b2bdab}#toast{bottom:calc(77px + env(safe-area-inset-bottom));font-size:12px}dialog{padding:20px}dialog input{font-size:16px}.dialog-actions button{font-size:14px;min-height:44px}.cm-search input{font-size:16px;max-width:145px}.cm-search button{min-height:30px}.cm-search label{font-size:11px}.cm-scroller{overscroll-behavior:contain}.cm-tooltip{max-width:calc(100vw - 40px)}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

@media(max-width:700px){#editor{min-height:0}.edit-keys button{white-space:nowrap;flex-shrink:0;min-width:42px}.keyboard-open .mobile-nav{display:none}.keyboard-open .statusbar{display:none}}
/* Acciones de archivos y edición, con los mismos controles en escritorio y móvil. */
.project-root{border:0;background:transparent;padding:7px 18px;text-align:left;font-size:10px;font-weight:600;letter-spacing:.3px;color:#999}.tree-entry{display:flex;align-items:stretch}.tree-entry .tree-row{flex:1;min-width:0}.tree-more{width:26px;height:29px;opacity:0}.tree-entry:hover .tree-more,.tree-entry:focus-within .tree-more{opacity:1}.tree-row.is-cut{opacity:.5}.file-actions{gap:1px}.file-actions .icon-button{width:27px}.edit-menu-label{display:flex;align-items:center;gap:7px;height:100%;padding:0 10px;list-style:none;font-size:11px;color:#aaa;cursor:pointer;white-space:nowrap}.edit-menu-label::-webkit-details-marker{display:none}.edit-menu-label:hover{background:#ffffff0c}.edit-menu-label span{color:#666}#edit-menu .menu-items{top:36px;width:260px}.menu-items kbd,.context-menu kbd{font:9px system-ui;color:#777;margin-left:auto;padding-left:15px}.menu-items button:has(kbd){display:flex;align-items:center;justify-content:space-between}.context-menu{position:fixed;min-width:230px;padding:5px;background:#252525;border:1px solid #454545;border-radius:6px;box-shadow:0 10px 40px #0007;z-index:60;max-height:calc(100dvh - 16px);overflow:auto;animation:appear 150ms var(--ease)}.context-menu button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 12px;text-align:left;font-size:12px;border:0;background:transparent;border-radius:3px}.context-menu hr{border:0;border-top:1px solid #3a3a3a;margin:4px 7px}.context-menu button:disabled{opacity:.35}.context-menu button:focus-visible{outline:none;background:#3b3b3b}#dialog-select,#dialog-textarea{width:100%;padding:10px;background:#181818;color:#ddd;border:1px solid #555;border-radius:5px;font-size:14px}#dialog-textarea{min-height:130px;max-height:40dvh;resize:vertical;font-family:Consolas,monospace}
@media(max-width:700px){.tree-more{opacity:1;width:42px;height:46px}.project-root{min-height:40px;font-size:12px;padding-left:20px}.file-actions .icon-button{width:42px;flex-shrink:0}.file-actions>span{font-size:11px}#edit-menu .menu-items{top:45px;right:-80px;width:min(280px,calc(100vw - 20px));max-height:calc(var(--app-height,100dvh) - 115px)}.edit-menu-label{font-size:12px;padding:0 7px}#tabs{max-width:calc(100% - 140px)}.context-menu{min-width:260px;max-width:calc(100vw - 16px)}.context-menu button{min-height:42px;font-size:14px}#dialog-select,#dialog-textarea{font-size:16px}.edit-keys button[data-text]{display:grid;place-items:center}}
@media(max-width:700px){#edit-menu .menu-items{position:fixed;left:10px;right:10px;top:calc(96px + env(safe-area-inset-top));width:auto;max-height:calc(var(--app-height,100dvh) - 180px)}.context-menu{max-height:calc(var(--app-height,100dvh) - 16px)}}
