:root{color:#f9fafb;background-color:#111827}*{box-sizing:border-box}body{color:#f9fafb;background:#111827;margin:0;font-family:Inter,system-ui,sans-serif}code{padding:0 4px}button,select{color:#f9fafb;font:inherit;background:#111827;border:1px solid #374151;border-radius:8px;padding:8px 10px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}#root{min-height:100vh}.app-shell{flex-direction:column;gap:14px;min-height:100vh;padding:16px;display:flex}.top-warning-banner{color:#fde68a;background:#f59e0b1f;border:1px solid #f59e0b;border-radius:10px;padding:12px 14px;font-weight:600}.top-warning-banner code{background:#0f172a8c;border-radius:6px;padding:2px 6px}.app-header h1{margin:0;font-size:1.7rem}.app-header-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.help-button{color:#60a5fa;background:#60a5fa14;border-color:#60a5fa59}.help-button:hover:not(:disabled){background:#60a5fa24}.app-header p{color:#d1d5db;margin:8px 0 0}.app-header a{color:#60a5fa;text-decoration:underline}.app-header a:hover{color:#93c5fd}.main-grid{flex:1;grid-template-columns:minmax(560px,1fr) minmax(340px,420px);align-items:stretch;gap:14px;min-height:0;display:grid}.side-column{gap:14px;display:grid}.panel{background:#1f2937;border:1px solid #374151;border-radius:12px;padding:12px}.panel h2{margin:0 0 10px;font-size:1.05rem}.workspace-panel{flex-direction:column;min-height:0;display:flex}.workspace-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.starter-controls{align-items:center;gap:8px;display:flex}.workspace-surface{flex:1;width:100%;height:auto;min-height:220px;margin-top:10px}.button-secondary{background:#1f2937}.controls-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.controls-grid button.full-width{grid-column:span 2}button.danger{color:#f87171;background:#f8717114;border-color:#f8717147;transition:background-color .12s,transform 80ms}button.danger:hover:not(:disabled){background:#f8717124;transform:translateY(-1px)}button.success{color:#34d399;background:#34d39914;border-color:#34d39947;transition:background-color .12s,transform 80ms}button.success:hover:not(:disabled){background:#34d39924;transform:translateY(-1px)}.status{margin:0 0 8px}.status-disconnected{color:#fca5a5}.status-connected,.status-uploaded{color:#86efac}.status-uploading{color:#fde68a}.status-error{color:#fca5a5}.warning{color:#fde68a;margin:0 0 12px}.preview-panel pre,.console-panel pre{white-space:pre-wrap;background:#0f172a;border:1px solid #374151;border-radius:8px;max-height:300px;margin:0;padding:10px;font:.85rem/1.5 Fira Code,ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}.console-panel summary{cursor:pointer;margin-bottom:10px}.toast-error{color:#fee2e2;background:#7f1d1d;border:1px solid #ef4444;border-radius:8px;margin:0;padding:10px 12px}.blocklyToolboxDiv,.blocklyFlyout,.blocklyFlyoutBackground{background:#0f172a!important}.blocklyToolboxDiv{border-right:1px solid #334155!important}.blocklyTreeLabel,.blocklyToolboxCategoryLabel,.blocklyFlyoutLabelText{color:#000!important;fill:#000!important}.blocklyTreeRow,.blocklyToolboxCategory{color:#000!important}.blocklyTreeRow.blocklyTreeSelected,.blocklyToolboxCategory[aria-selected=true]{background:#1e293b!important}.blocklyTreeRow:not(.blocklyTreeSelected):hover,.blocklyToolboxCategory:hover{background:#334155!important}.blocklyScrollbarHandle{fill:#64748b!important}.modal-backdrop{z-index:1000;background:#000000a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{background:#1f2937;border:1px solid #374151;border-radius:12px;flex-direction:column;gap:16px;width:calc(100% - 32px);max-width:460px;padding:24px;display:flex}.modal-title{margin:0;font-size:1.1rem}.modal-message{color:#d1d5db;margin:0;line-height:1.55}.modal-message p{margin:0}.modal-message a{color:#60a5fa;text-decoration:underline}.modal-message a:hover{color:#93c5fd}.modal-actions{justify-content:flex-end;gap:10px;display:flex}.button-python-mode{color:#60a5fa;background:#60a5fa14;border-color:#60a5fa59;transition:background-color .12s,transform 80ms}.button-python-mode:hover:not(:disabled){background:#60a5fa24;transform:translateY(-1px)}.python-mode-badge{color:#93c5fd;white-space:nowrap;background:#60a5fa14;border:1px solid #60a5fa40;border-radius:6px;padding:3px 8px;font-size:.8rem}.python-editor-codemirror{border:1px solid #374151;border-radius:8px;flex-direction:column;flex:1;min-height:220px;margin-top:10px;display:flex;overflow:hidden}.python-editor-codemirror .cm-editor{flex:1;height:100%;font:.875rem/1.6 Fira Code,ui-monospace,SFMono-Regular,Menlo,monospace}.python-editor-codemirror .cm-scroller{min-height:220px;overflow:auto}.python-editor-codemirror .cm-focused{outline:none}.python-editor-codemirror .cm-editor.cm-focused{border-color:#60a5fa}.python-api-reference{margin-top:10px}.python-api-reference summary{cursor:pointer;color:#93c5fd;-webkit-user-select:none;user-select:none;padding:4px 0;font-size:.85rem}.python-api-reference summary:hover{color:#bfdbfe}.python-api-reference pre{white-space:pre-wrap;color:#d1d5db;background:#0f172a;border:1px solid #374151;border-radius:8px;margin:6px 0 0;padding:10px;font:.8rem/1.5 Fira Code,ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}@media (width<=1200px){.main-grid{grid-template-columns:1fr}.workspace-panel{min-height:42vh}.workspace-surface{min-height:260px}}
