@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap");:root{--bg-workspace:#F5F2EC;--grid-line:#DDD9D0;--surface-primary:#FFFFFF;--surface-secondary:#F8F7F4;--surface-elevated:#FFFFFF;--surface-border:#E2DFD8;--shell-bg:#0D1B3E;--shell-bg-light:#142754;--shell-bg-hover:#1A3068;--shell-border:#1E3570;--sidebar-activity-width:48px;--sidebar-activity-bg:#11172A;--sidebar-explorer-bg:#151D33;--sidebar-title-text:#D7DEEE;--sidebar-header-text:#97A6C3;--sidebar-item-text:#C0CCE2;--sidebar-item-text-active:#F4F7FF;--sidebar-item-hover-bg:rgba(255,255,255,0.06);--sidebar-item-active-bg:rgba(255,255,255,0.12);--sidebar-guide-color:rgba(255,255,255,0.15);--sidebar-scrollbar-thumb:rgba(255,255,255,0.2);--sidebar-scrollbar-thumb-hover:rgba(255,255,255,0.3);--sidebar-folder-icon:#E0B878;--sidebar-file-icon:#C8D3EA;--sidebar-python-icon:#7FB9FF;--action-primary:#E8480A;--action-hover:#d13e06;--action-active:#B83505;--action-glow:rgba(232,72,10,0.25);--text-primary:#0D1B3E;--text-secondary:#5A6478;--text-tertiary:#8B95A8;--text-on-dark:#FFFFFF;--text-on-dark-secondary:#A8B4CC;--success:#22C55E;--success-bg:#F0FDF4;--error:#EF4444;--error-bg:#FEF2F2;--warning:#F59E0B;--warning-bg:#FFFBEB;--info:#3B82F6;--code-bg:#1E1E2E;--code-text:#CDD6F4;--code-keyword:#CBA6F7;--code-string:#A6E3A1;--code-comment:#6C7086;--code-function:#89B4FA;--terminal-bg:#0C0E14;--terminal-text:#CDD6F4;--terminal-cursor:#F5E0DC;--terminal-header-bg:rgba(0,0,0,0.3);--terminal-header-border:rgba(255,255,255,0.06);--terminal-line-muted:rgba(205,214,244,0.52);--terminal-line-stdout:#A6E3A1;--terminal-line-info:#3B82F6;--terminal-line-repl:#94A3B8;--terminal-line-error:#EF4444;--editor-chrome-bg:#1A233D;--editor-chrome-bg-alt:#141C33;--editor-chrome-bg-hover:#243255;--editor-chrome-border:#28395F;--editor-tab-text:#9FB0CF;--editor-tab-text-hover:#C8D5EE;--editor-tab-text-active:#F2F6FF;--editor-layout-btn-bg:rgba(255,255,255,0.08);--editor-layout-btn-text:#B3C2DE;--editor-dragover-bg:rgba(232,72,10,0.12);--editor-dragover-border:rgba(232,72,10,0.5);--editor-splitter:rgba(146,167,206,0.3);--editor-splitter-handle:rgba(255,255,255,0.22);--overlay-bg:rgba(9,15,31,0.52);--overlay-backdrop-blur:4px;--modal-title-icon:var(--action-primary);--modal-card-hover-border:rgba(232,72,10,0.45);--modal-card-active-bg:rgba(232,72,10,0.14);--modal-card-active-border:rgba(232,72,10,0.6);--modal-danger-hover-bg:rgba(239,68,68,0.12);--theme-style-dark-bg:rgba(13,27,62,0.08);--theme-style-dark-text:#0D1B3E;--theme-style-dark-border:rgba(13,27,62,0.2);--theme-style-light-bg:rgba(245,158,11,0.1);--theme-style-light-text:#B45309;--theme-style-light-border:rgba(245,158,11,0.28);--focus-ring:rgba(232,72,10,0.45);--interactive-muted-bg:rgba(255,255,255,0.08);--interactive-muted-bg-hover:rgba(255,255,255,0.16);--interactive-muted-border:rgba(255,255,255,0.12);--status-success-soft-bg:rgba(34,197,94,0.12);--status-success-soft-border:var(--status-success-soft-border);--status-info-soft-bg:rgba(59,130,246,0.12);--status-info-soft-border:var(--status-info-soft-border);--status-warning-soft-bg:rgba(245,158,11,0.1);--status-warning-soft-border:rgba(245,158,11,0.3);--status-error-soft-bg:rgba(239,68,68,0.12);--status-error-soft-border:var(--status-error-soft-border);--bg-primary:var(--surface-primary);--bg-secondary:var(--surface-secondary);--sidebar-width:288px;--topbar-height:52px;--terminal-height:200px;--panel-gap:1px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--shadow-sm:0 1px 3px rgba(0,0,0,0.06);--shadow-md:0 4px 12px rgba(0,0,0,0.08);--shadow-lg:0 8px 30px rgba(0,0,0,0.12);--shadow-glow:0 0 20px var(--action-glow);--transition-fast:120ms ease;--transition-normal:200ms ease;--transition-slow:350ms ease;--z-sidebar:100;--z-topbar:200;--z-context-menu:450;--z-modal:500;--z-toast:600}[data-theme=dark]{--bg-workspace:#0F1729;--grid-line:#1C2A4A;--surface-primary:#142754;--surface-secondary:#111D3A;--surface-elevated:#1A3068;--surface-border:#1E3570;--shell-bg:#090F1F;--shell-bg-light:#0D1B3E;--shell-bg-hover:#142754;--shell-border:#1C2A4A;--sidebar-activity-bg:#0D111D;--sidebar-explorer-bg:#11192D;--sidebar-title-text:#CBD6EF;--sidebar-header-text:#8597BA;--sidebar-item-text:#AFBEDC;--sidebar-item-text-active:#EDF3FF;--sidebar-item-hover-bg:rgba(255,255,255,0.075);--sidebar-item-active-bg:rgba(255,255,255,0.14);--sidebar-guide-color:rgba(255,255,255,0.16);--sidebar-scrollbar-thumb:rgba(255,255,255,0.22);--sidebar-scrollbar-thumb-hover:rgba(255,255,255,0.33);--sidebar-folder-icon:#D8AA67;--sidebar-file-icon:#BFCCE8;--sidebar-python-icon:#72B4FF;--text-primary:#E8EAF0;--text-secondary:#8B95A8;--text-tertiary:#5A6478;--success-bg:rgba(34,197,94,0.1);--error-bg:rgba(239,68,68,0.1);--warning-bg:rgba(245,158,11,0.1);--code-bg:#0C0E14;--terminal-bg:#080A10;--terminal-header-bg:rgba(0,0,0,0.4);--terminal-header-border:rgba(255,255,255,0.08);--terminal-line-muted:rgba(216,226,244,0.52);--terminal-line-stdout:#B8EFC4;--terminal-line-info:#78AFFF;--terminal-line-repl:#9EB0D2;--terminal-line-error:#FF8E8E;--editor-chrome-bg:#121A2F;--editor-chrome-bg-alt:#0E1528;--editor-chrome-bg-hover:#1A2542;--editor-chrome-border:#26375B;--editor-tab-text:#A9BADA;--editor-tab-text-hover:#D7E1F5;--editor-tab-text-active:#F2F6FF;--editor-layout-btn-bg:rgba(255,255,255,0.12);--editor-layout-btn-text:#CCD7ED;--editor-dragover-bg:rgba(232,72,10,0.16);--editor-dragover-border:rgba(232,72,10,0.58);--editor-splitter:rgba(165,185,219,0.34);--editor-splitter-handle:rgba(255,255,255,0.28);--overlay-bg:rgba(5,8,17,0.68);--modal-card-hover-border:rgba(232,72,10,0.5);--modal-card-active-bg:rgba(232,72,10,0.22);--modal-card-active-border:rgba(232,72,10,0.7);--modal-danger-hover-bg:rgba(239,68,68,0.2);--theme-style-dark-bg:rgba(139,149,168,0.18);--theme-style-dark-text:#DDE6F7;--theme-style-dark-border:rgba(139,149,168,0.38);--theme-style-light-bg:rgba(245,158,11,0.2);--theme-style-light-text:#FCD34D;--theme-style-light-border:rgba(245,158,11,0.4);--interactive-muted-bg:rgba(255,255,255,0.1);--interactive-muted-bg-hover:rgba(255,255,255,0.18);--interactive-muted-border:rgba(255,255,255,0.18);--status-success-soft-bg:rgba(34,197,94,0.16);--status-success-soft-border:rgba(34,197,94,0.44);--status-info-soft-bg:rgba(59,130,246,0.16);--status-info-soft-border:rgba(59,130,246,0.44);--status-warning-soft-bg:rgba(245,158,11,0.16);--status-warning-soft-border:rgba(245,158,11,0.38);--status-error-soft-bg:rgba(239,68,68,0.18);--status-error-soft-border:rgba(239,68,68,0.46);--bg-primary:var(--surface-primary);--bg-secondary:var(--surface-secondary)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg-workspace);color:var(--text-primary);line-height:1.5;overflow:hidden;height:100vh;transition:background-color var(--transition-normal),color var(--transition-normal)}.mono,code,pre{font-family:JetBrains Mono,Fira Code,monospace}button{cursor:pointer;border:none;outline:none;background:none}button,input,select,textarea{font-family:inherit;font-size:inherit}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--text-tertiary);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.app-layout{display:grid;grid-template-rows:var(--topbar-height) 1fr;grid-template-columns:var(--sidebar-width) 1fr;grid-template-areas:"topbar topbar" "sidebar main";height:100vh;width:100vw;overflow:hidden}.topbar{grid-area:topbar;background:var(--shell-bg);justify-content:space-between;padding:0 16px;height:var(--topbar-height);z-index:var(--z-topbar);border-bottom:1px solid var(--shell-border)}.topbar,.topbar__left{display:flex;align-items:center}.topbar__left{gap:16px}.topbar__logo{display:flex;align-items:center;gap:10px;color:var(--text-on-dark);font-weight:700;font-size:1.1rem;letter-spacing:-.02em}.topbar__logo-mark{width:28px;height:28px;border-radius:var(--radius-sm);flex-shrink:0}.topbar__logo-lockup{display:flex;flex-direction:column;line-height:1.1}.topbar__logo-highlight{color:var(--action-primary);font-weight:800}.topbar__logo-subtitle{font-size:.55rem;color:var(--text-on-dark-secondary);font-weight:500;letter-spacing:.4em;text-transform:uppercase}.topbar__logo-icon{width:28px;height:28px;background:var(--action-primary);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:14px;color:white;font-weight:800}.topbar__project-name{display:flex;align-items:center;gap:6px;padding:5px 12px;background:var(--shell-bg-light);border:1px solid var(--shell-border);border-radius:var(--radius-sm);color:var(--text-on-dark-secondary);font-size:.85rem;cursor:pointer;transition:all var(--transition-fast)}.topbar__project-name:hover{background:var(--shell-bg-hover);color:var(--text-on-dark)}.topbar__dirty-indicator{color:var(--warning);font-size:.7rem}.topbar__project-edit-icon{font-size:9px;opacity:.5}.topbar__project-input{padding:5px 12px;background:var(--shell-bg-light);border:1px solid var(--action-primary);border-radius:var(--radius-sm);color:var(--text-on-dark);font-size:.85rem;font-family:inherit;outline:none;width:180px}.topbar__right{gap:8px}.topbar__btn,.topbar__right{display:flex;align-items:center}.topbar__btn{gap:6px;padding:6px 12px;border-radius:var(--radius-sm);font-size:.8rem;font-weight:500;color:var(--text-on-dark-secondary);transition:all var(--transition-fast)}.topbar__btn:hover{background:var(--shell-bg-light);color:var(--text-on-dark)}.topbar__btn--save{background:var(--shell-bg-light);border:1px solid var(--shell-border)}.topbar__btn--save:hover{background:var(--shell-bg-hover)}.topbar__icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-sm);color:var(--text-on-dark-secondary);border:1px solid transparent;transition:all var(--transition-fast)}.topbar__icon-btn--active,.topbar__icon-btn:hover{color:var(--text-on-dark);background:var(--shell-bg-light);border-color:var(--shell-border)}.topbar__theme-picker{position:relative}.topbar-theme-menu{position:absolute;top:calc(100% + 8px);right:0;width:min(250px,72vw);max-height:min(360px,70vh);padding:8px;border-radius:var(--radius-md);border:1px solid var(--surface-border);background:var(--surface-elevated);box-shadow:var(--shadow-lg);overflow-y:auto;z-index:calc(var(--z-topbar) + 10)}.topbar-theme-menu__hint{margin:2px 4px 8px;font-size:.68rem;color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase}.topbar-theme-menu__item{width:100%;display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:var(--radius-sm);border:1px solid transparent;color:var(--text-primary);text-align:left;transition:border-color var(--transition-fast),background-color var(--transition-fast)}.topbar-theme-menu__item:focus-visible,.topbar-theme-menu__item:hover{background:var(--surface-secondary);border-color:var(--modal-card-hover-border)}.topbar-theme-menu__item--selected{border-color:var(--modal-card-active-border);background:var(--modal-card-active-bg)}.topbar-theme-menu__item--previewed:not(.topbar-theme-menu__item--selected){border-color:var(--modal-card-hover-border)}.topbar-theme-menu__name{font-size:.82rem;font-weight:600}.topbar-theme-menu__style{margin-left:auto;padding:2px 8px;border-radius:999px;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.topbar-theme-menu__style--dark{background:var(--theme-style-dark-bg);color:var(--theme-style-dark-text);border:1px solid var(--theme-style-dark-border)}.topbar-theme-menu__style--light{background:var(--theme-style-light-bg);color:var(--theme-style-light-text);border:1px solid var(--theme-style-light-border)}.topbar-theme-menu__check{color:var(--action-primary);font-size:.68rem}.status-badge{display:flex;align-items:center;gap:6px;padding:5px 12px;border-radius:var(--radius-sm);font-size:.78rem;font-weight:500;border:1px solid var(--shell-border)}.status-badge--disconnected{color:var(--text-on-dark-secondary)}.status-badge--connected{color:var(--success);border-color:var(--status-success-soft-border)}.status-badge__dot{width:7px;height:7px;border-radius:50%;background:var(--text-tertiary)}.status-badge--connected .status-badge__dot{background:var(--success);box-shadow:0 0 6px var(--success);animation:pulse-glow 2s ease-in-out infinite}@keyframes pulse-glow{0%,to{opacity:1;box-shadow:0 0 6px var(--success)}50%{opacity:.6;box-shadow:0 0 12px var(--success)}}.sidebar{grid-area:sidebar;background:var(--sidebar-explorer-bg);border-right:1px solid var(--shell-border);display:flex;flex-direction:row;z-index:var(--z-sidebar);overflow:hidden;min-width:0}.sidebar__activity-bar{width:var(--sidebar-activity-width);flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 6px;background:var(--sidebar-activity-bg);border-right:1px solid var(--interactive-muted-border)}.sidebar__activity-btn{width:100%;height:40px;display:inline-flex;align-items:center;justify-content:center;color:var(--sidebar-header-text);border-left:2px solid transparent;transition:color var(--transition-fast),background-color var(--transition-fast),opacity var(--transition-fast)}.sidebar__activity-btn:focus-visible:not(:disabled),.sidebar__activity-btn:hover:not(:disabled){color:var(--sidebar-item-text-active);background:var(--sidebar-item-hover-bg)}.sidebar__activity-btn--active{color:var(--sidebar-item-text-active);border-left-color:var(--sidebar-item-text-active);background:var(--sidebar-item-active-bg)}.sidebar__activity-btn:disabled{opacity:.45;cursor:not-allowed}.sidebar__activity-spacer{flex:1 1}.sidebar__activity-btn--secondary{height:36px}.sidebar__explorer{flex:1 1;min-width:0;display:flex;flex-direction:column;background:var(--sidebar-explorer-bg)}.sidebar__explorer-header{height:34px;display:flex;align-items:center;padding:0 12px;border-bottom:1px solid var(--interactive-muted-border);color:var(--sidebar-title-text);font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.sidebar__blocks-pane{flex:2 1;min-height:0;overflow-y:auto;padding:4px 0 6px;display:flex;flex-direction:column;transition:background-color var(--transition-fast),box-shadow var(--transition-fast);scrollbar-width:thin;scrollbar-color:var(--sidebar-scrollbar-thumb) transparent}.sidebar__blocks-pane--dragover{background:var(--editor-dragover-bg);box-shadow:inset 0 0 0 1px var(--editor-dragover-border)}.sidebar__drop-hint{margin:4px 10px 8px;padding:5px 7px;border:1px dashed var(--editor-dragover-border);border-radius:4px;color:var(--sidebar-item-text-active);font-size:.7rem;font-weight:500;background:var(--editor-dragover-bg)}.sidebar__tools-pane{flex:1 1;min-height:0;overflow-y:auto;border-top:1px solid var(--interactive-muted-border);padding:2px 0 8px;scrollbar-width:thin;scrollbar-color:var(--sidebar-scrollbar-thumb) transparent}.sidebar__blocks-pane::-webkit-scrollbar,.sidebar__tools-pane::-webkit-scrollbar{width:8px}.sidebar__blocks-pane::-webkit-scrollbar-track,.sidebar__tools-pane::-webkit-scrollbar-track{background:transparent}.sidebar__blocks-pane::-webkit-scrollbar-thumb,.sidebar__tools-pane::-webkit-scrollbar-thumb{background:var(--sidebar-scrollbar-thumb);border-radius:999px;border:2px solid transparent;background-clip:padding-box}.sidebar__blocks-pane::-webkit-scrollbar-thumb:hover,.sidebar__tools-pane::-webkit-scrollbar-thumb:hover{background:var(--sidebar-scrollbar-thumb-hover);border:2px solid transparent;background-clip:padding-box}.sidebar__section-title{min-height:24px;padding:0 10px;display:flex;align-items:center;justify-content:space-between;color:var(--sidebar-header-text);font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.sidebar__section-title-label{display:inline-flex;align-items:center;gap:6px;min-width:0}.sidebar__section-title--files{margin-bottom:2px}.sidebar__file-actions{display:inline-flex;align-items:center;gap:2px}.sidebar__file-action-btn{width:18px;height:18px;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;color:var(--sidebar-header-text);font-size:10px;transition:color var(--transition-fast),background-color var(--transition-fast),opacity var(--transition-fast)}.sidebar__file-action-btn:focus-visible:not(:disabled),.sidebar__file-action-btn:hover:not(:disabled){color:var(--sidebar-item-text-active);background:var(--sidebar-item-hover-bg)}.sidebar__file-action-btn:disabled{opacity:.45;cursor:not-allowed}.sidebar__tree{display:flex;flex-direction:column;gap:1px}.sidebar__item{position:relative;width:100%;height:23px;min-height:23px;display:flex;align-items:center;gap:5px;padding:0 10px;color:var(--sidebar-item-text);font-size:.8125rem;line-height:1;text-align:left;border:none;border-radius:0;margin:0;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast),opacity var(--transition-fast);outline:none}.sidebar__item:hover{background:var(--sidebar-item-hover-bg);color:var(--sidebar-item-text-active)}.sidebar__item--active{background:var(--sidebar-item-active-bg);color:var(--sidebar-item-text-active)}.sidebar__item:focus-visible{background:var(--sidebar-item-hover-bg);box-shadow:inset 0 0 0 1px var(--focus-ring)}.sidebar__item--dragging{opacity:.45}.sidebar__item--tree{--sidebar-item-indent:14px;--sidebar-item-guides:0px;--sidebar-item-guide-offset:7px;padding-right:10px;padding-left:var(--sidebar-item-indent)}.sidebar__item--tree:before{content:"";position:absolute;top:3px;bottom:3px;left:var(--sidebar-item-guide-offset);width:var(--sidebar-item-guides);pointer-events:none;background-image:repeating-linear-gradient(to right,transparent 0,transparent 11px,var(--sidebar-guide-color) 11px,var(--sidebar-guide-color) 12px);opacity:.95}.sidebar__item--tree>*{position:relative;z-index:1}.sidebar__item--tool{gap:8px;padding:0 12px}.sidebar__item-chevron{width:10px;display:inline-flex;align-items:center;justify-content:center;font-size:8px;color:var(--sidebar-header-text);transition:transform var(--transition-fast);flex-shrink:0}.sidebar__item-chevron--expanded{transform:rotate(90deg)}.sidebar__item-chevron--placeholder{visibility:hidden}.sidebar__item-icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--sidebar-file-icon);flex-shrink:0}.sidebar__item-icon--folder{color:var(--sidebar-folder-icon)}.sidebar__item-icon--python{color:var(--sidebar-python-icon)}.sidebar__item--tool .sidebar__item-icon{color:var(--sidebar-item-text)}.sidebar__item-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar__empty-state{color:var(--sidebar-item-text);opacity:.75;font-size:.75rem;padding:2px 12px 8px}.sidebar__section-title--collapsible{cursor:pointer;margin-top:2px;transition:color var(--transition-fast),background-color var(--transition-fast)}.sidebar__section-title--collapsible:hover{color:var(--sidebar-item-text-active);background:var(--sidebar-item-hover-bg)}.sidebar__section-chevron{font-size:8px;transition:transform var(--transition-normal)}.sidebar__section-chevron--expanded{transform:rotate(90deg)}.sidebar__tools-list{overflow:hidden;transition:max-height var(--transition-normal);max-height:300px}.sidebar__tools-list--collapsed{max-height:0}.sidebar__item--disabled{opacity:.45;cursor:not-allowed}.sidebar__item--disabled:hover{background:transparent;color:var(--sidebar-item-text)}.context-menu{position:fixed;z-index:var(--z-context-menu);display:flex;flex-direction:column;gap:2px;min-width:196px;padding:4px;border-radius:var(--radius-md);border:1px solid var(--surface-border);background:var(--surface-primary);box-shadow:var(--shadow-lg)}.context-menu__item{display:flex;align-items:center;gap:10px;width:100%;border:none;border-radius:var(--radius-sm);padding:7px 8px;background:transparent;color:var(--text-primary);font-size:.8rem;font-weight:500;text-align:left;transition:background-color var(--transition-fast),color var(--transition-fast)}.context-menu__item:hover{background:var(--surface-secondary)}.context-menu__item-icon{width:16px;display:inline-flex;justify-content:center;font-size:12px;color:var(--text-secondary);flex-shrink:0}.context-menu__item-label{min-width:0;white-space:nowrap}.context-menu__item--disabled{opacity:.5;cursor:not-allowed}.context-menu__item--disabled:hover{background:transparent}.context-menu__item--danger{color:var(--error)}.context-menu__item--danger .context-menu__item-icon{color:inherit}.main-content{grid-area:main;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-workspace)}.editor-area{position:relative}.editor-area,.main-editor{flex:1 1;display:flex;overflow:hidden}.main-editor{flex-direction:column;min-width:300px;background:var(--code-bg,#1e1e2e)}.main-editor__workspace{flex:1 1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.main-editor__workspace--split-vertical{flex-direction:row}.main-editor__workspace--split-horizontal{flex-direction:column}.main-editor__pane{flex:1 1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.main-editor__workspace--split-vertical .main-editor__pane{min-width:220px}.main-editor__workspace--split-horizontal .main-editor__pane{min-height:150px}.main-editor__pane--focused .main-editor__tabs{border-bottom-color:var(--modal-card-hover-border)}.main-editor__tabs{display:flex;align-items:stretch;justify-content:space-between;background:var(--editor-chrome-bg-alt);border-bottom:1px solid var(--editor-chrome-border);flex-shrink:0;height:36px;min-width:0;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.main-editor__tabs--dragover{background:var(--editor-dragover-bg);border-bottom-color:var(--editor-dragover-border)}.main-editor__tabs-list{display:flex;align-items:stretch;overflow-x:auto;min-width:0;flex:1 1;position:relative}.main-editor__tabs-list--dragover:after{content:"";position:absolute;top:6px;bottom:6px;right:2px;width:2px;border-radius:2px;background:var(--action-primary);box-shadow:0 0 0 1px rgba(0,0,0,.18)}.main-editor__tabs-list::-webkit-scrollbar{height:2px}.main-editor__tab{display:flex;align-items:center;gap:6px;padding:0 14px;font-size:.78rem;font-weight:500;color:var(--editor-tab-text);cursor:pointer;border-right:1px solid var(--editor-chrome-border);white-space:nowrap;transition:all .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative}.main-editor__tab:hover{color:var(--editor-tab-text-hover);background:var(--editor-chrome-bg-hover)}.main-editor__tab--active{color:var(--editor-tab-text-active);background:var(--editor-chrome-bg)}.main-editor__tab--drag-source{opacity:.45}.main-editor__tab--active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--action-primary)}.main-editor__tab-close{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:3px;background:none;border:none;color:inherit;cursor:pointer;opacity:0;transition:all .15s;margin-left:2px}.main-editor__tab--active .main-editor__tab-close,.main-editor__tab:hover .main-editor__tab-close{opacity:.5}.main-editor__tab-close:hover{opacity:1!important;background:var(--editor-layout-btn-bg)}.main-editor__tabs-actions{display:flex;align-items:center;gap:4px;padding:0 8px;border-left:1px solid var(--editor-chrome-border);background:var(--editor-chrome-bg-alt);flex-shrink:0}.main-editor__layout-btn{width:22px;height:22px;border-radius:4px;color:var(--editor-layout-btn-text);display:inline-flex;align-items:center;justify-content:center;font-size:11px;transition:all var(--transition-fast)}.main-editor__layout-btn:hover{background:var(--editor-layout-btn-bg);color:var(--editor-tab-text-active)}.main-editor__layout-btn--active{background:var(--modal-card-active-bg);color:var(--action-primary)}.main-editor__content{flex:1 1;overflow:hidden}.main-editor__content .cm-editor{height:100%}.main-editor__content .cm-gutters{border-right:1px solid var(--editor-chrome-border)!important}.main-editor__pane-host{height:100%;overflow:auto}.main-editor__splitter{background:var(--editor-splitter)}.main-editor__splitter--horizontal{width:100%;height:5px;cursor:row-resize}.main-editor__splitter--horizontal:after{width:28px;height:3px}.resizer{width:5px;cursor:col-resize;background:var(--surface-border);transition:background var(--transition-fast);position:relative;z-index:10;flex-shrink:0}.resizer--active,.resizer:hover{background:var(--action-primary)}.resizer:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:3px;height:30px;border-radius:2px;background:var(--text-tertiary);opacity:0;transition:opacity var(--transition-fast)}.resizer:hover:after{opacity:.6}.code-panel{width:400px;min-width:200px;max-width:50vw;display:flex;flex-direction:column;background:var(--code-bg);border-left:1px solid var(--surface-border);overflow:hidden;flex-shrink:0}.code-panel--collapsed{width:0;min-width:0;border-left:none}.code-panel__header{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:var(--editor-chrome-bg-alt);border-bottom:1px solid var(--editor-chrome-border);flex-shrink:0}.code-panel__title{font-size:.78rem;font-weight:600;color:var(--code-text);opacity:.7;display:flex;align-items:center;gap:6px}.code-panel__actions{display:flex;align-items:center;gap:4px}.code-panel__btn{padding:4px 8px;border-radius:4px;font-size:.72rem;font-weight:500;color:var(--code-text);opacity:.6;transition:all var(--transition-fast)}.code-panel__btn:hover{opacity:1;background:var(--editor-layout-btn-bg)}.code-panel__editor{flex:1 1;overflow:auto;font-size:13px;line-height:1.6}.code-panel__editor .cm-editor{height:100%;background:transparent!important}.code-panel__editor .cm-gutters{background:transparent!important;border-right:1px solid var(--editor-chrome-border)!important}.control-bar{padding:8px 14px;background:var(--surface-primary);border-top:1px solid var(--surface-border);flex-shrink:0}.btn-run,.control-bar{display:flex;align-items:center;gap:8px}.btn-run{padding:8px 24px;background:var(--action-primary);color:white;font-weight:700;font-size:.88rem;border-radius:var(--radius-sm);transition:all var(--transition-fast);box-shadow:var(--shadow-glow);letter-spacing:.01em}.btn-run:hover{background:var(--action-hover);transform:translateY(-1px);box-shadow:0 0 30px var(--action-glow)}.btn-run:active{background:var(--action-active);transform:translateY(0)}.btn-run--disabled{opacity:.5;pointer-events:none}.btn-run__icon{font-size:14px}.btn-stop{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--surface-secondary);color:var(--text-secondary);font-weight:600;font-size:.84rem;border-radius:var(--radius-sm);border:1px solid var(--surface-border);transition:all var(--transition-fast)}.btn-stop:hover{background:var(--error-bg);color:var(--error);border-color:var(--error)}.btn-save-board{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--status-success-soft-bg);color:var(--success);font-weight:700;font-size:.84rem;border-radius:var(--radius-sm);border:1px solid var(--status-success-soft-border);transition:all var(--transition-fast)}.btn-save-board:hover{background:color-mix(in srgb,var(--status-success-soft-bg) 70%,var(--success) 30%);border-color:var(--success)}.btn-save-board--disabled{opacity:.55;pointer-events:none}.btn-save-board__icon{font-size:14px}.btn-soft-reset{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--status-info-soft-bg);color:var(--info);font-weight:700;font-size:.84rem;border-radius:var(--radius-sm);border:1px solid var(--status-info-soft-border);transition:all var(--transition-fast)}.btn-soft-reset:hover{background:color-mix(in srgb,var(--status-info-soft-bg) 70%,var(--info) 30%);border-color:var(--info)}.btn-soft-reset--disabled{opacity:.55;pointer-events:none}.btn-connect{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--surface-secondary);color:var(--text-secondary);font-weight:600;font-size:.84rem;border-radius:var(--radius-sm);border:1px solid var(--surface-border);margin-left:auto;transition:all var(--transition-fast)}.btn-connect:hover{background:var(--shell-bg);color:var(--text-on-dark)}.btn-connect--connected{color:var(--success);border-color:var(--status-success-soft-border)}.terminal-panel{height:var(--terminal-height);min-height:80px;background:var(--terminal-bg);border-top:1px solid var(--surface-border);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.terminal-panel--collapsed{height:32px;min-height:32px}.terminal-panel__header{display:flex;align-items:center;justify-content:space-between;padding:6px 14px;background:var(--terminal-header-bg);border-bottom:1px solid var(--terminal-header-border);flex-shrink:0;cursor:pointer}.terminal-panel__title{font-size:.75rem;font-weight:600;color:var(--terminal-text);opacity:.6;display:flex;align-items:center;gap:6px}.terminal-panel__actions{display:flex;align-items:center;gap:4px}.terminal-panel__flash-size{display:inline-flex;align-items:center;gap:5px;padding:0 4px;color:var(--text-on-dark-secondary);font-size:.72rem;white-space:nowrap}.terminal-panel__flash-size-icon{font-size:10px}.terminal-panel__line-count{opacity:.4;font-size:.65rem}.terminal-panel__btn{padding:3px 8px;border-radius:3px;font-size:.7rem;color:var(--terminal-text);opacity:.5;transition:all var(--transition-fast)}.terminal-panel__btn:hover{opacity:1;background:var(--interactive-muted-bg)}.terminal-panel__body{flex:1 1;overflow:hidden;padding:0}.terminal-panel__stream{padding:8px 14px;overflow:auto;flex:1 1;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;line-height:1.6}.terminal-panel__line{white-space:pre-wrap;word-break:break-all}.terminal-panel__line--stdout{color:var(--terminal-line-stdout)}.terminal-panel__line--info{color:var(--terminal-line-info)}.terminal-panel__line--repl{color:var(--terminal-line-repl)}.terminal-panel__line--error{color:var(--terminal-line-error)}.terminal-panel__body .xterm{padding:8px}.modal.plotter-modal{width:min(1220px,96vw);max-width:96vw;max-height:82vh;display:flex;flex-direction:column}.plotter-modal__header{gap:10px}.plotter-modal__header-actions{display:flex;align-items:center;gap:8px}.plotter-modal__body{display:flex;flex-direction:column;gap:12px;overflow:auto}.plotter-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:.72rem;font-weight:600;border:1px solid var(--surface-border);color:var(--text-secondary);background:var(--surface-secondary)}.plotter-chip--connected{color:var(--success);border-color:var(--status-success-soft-border)}.plotter-chip--warn{color:var(--warning);border-color:var(--status-warning-soft-border)}.plotter-chip--button{cursor:pointer;transition:all var(--transition-fast)}.plotter-chip--button:hover{border-color:var(--action-primary);color:var(--action-primary)}.plotter-chip--paused{border-color:var(--status-warning-soft-border);color:var(--warning)}.plotter-meta{display:flex;flex-wrap:wrap;gap:8px}.plotter-meta__item{background:var(--surface-secondary);color:var(--text-secondary);border:1px solid var(--surface-border);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;padding:4px 8px}.plotter-chart-shell{position:relative;border:1px solid var(--surface-border);background:var(--surface-secondary);border-radius:var(--radius-md);padding:8px;min-height:280px;overflow:hidden}.plotter-chart{width:100%;height:300px;display:block}.plotter-axis-label{fill:var(--text-secondary);font-size:11px;font-weight:500}.plotter-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-secondary);gap:4px;pointer-events:none}.plotter-empty__hint{font-size:.82rem}.plotter-empty code{background:var(--surface-primary);border:1px solid var(--surface-border);border-radius:4px;padding:2px 6px}.plotter-legend{display:flex;flex-wrap:wrap;gap:8px;max-height:84px;overflow-y:auto}.plotter-legend__item{display:inline-flex;align-items:center;gap:8px;border-radius:var(--radius-sm);border:1px solid var(--surface-border);background:var(--surface-secondary);padding:5px 10px;font-size:.76rem}.plotter-legend__swatch{width:10px;height:10px;border-radius:50%}.plotter-legend__name{color:var(--text-primary);font-weight:600}.plotter-legend__value{color:var(--text-secondary);font-family:JetBrains Mono,Fira Code,monospace}.plotter-help{font-size:.76rem;color:var(--text-secondary)}.plotter-help code{background:var(--surface-secondary);border:1px solid var(--surface-border);border-radius:4px;padding:2px 6px}.toast{position:fixed;bottom:20px;right:20px;padding:10px 18px;background:var(--shell-bg);color:var(--text-on-dark);font-size:.82rem;font-weight:500;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-toast);animation:toast-in .3s ease,toast-out .3s ease 2.7s forwards;display:flex;align-items:center;gap:8px}.toast--success{border-left:3px solid var(--success)}.toast--error{border-left:3px solid var(--error)}.toast--info{border-left:3px solid var(--info)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}.modal-overlay{position:fixed;inset:0;background:var(--overlay-bg);-webkit-backdrop-filter:blur(var(--overlay-backdrop-blur));backdrop-filter:blur(var(--overlay-backdrop-blur));z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;animation:fade-in .2s ease}.modal{background:var(--surface-primary);border:1px solid var(--surface-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:420px;max-width:90vw;animation:scale-in .2s ease}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--surface-border)}.modal__title{font-weight:700;font-size:1rem}.modal__close{padding:4px;border-radius:4px;color:var(--text-secondary);transition:all var(--transition-fast)}.modal__close:hover{background:var(--surface-secondary);color:var(--text-primary)}.modal__body{padding:20px}.modal__footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--surface-border)}.modal__btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border-radius:var(--radius-md);font-family:inherit;font-weight:500;font-size:.9rem;cursor:pointer;transition:all .2s ease;border:none}.modal__btn--secondary{background:var(--surface-secondary);color:var(--text-primary);border:1px solid var(--surface-border)}.modal__btn--secondary:hover{background:var(--interactive-muted-bg)}.modal__btn--primary{background:var(--action-primary);color:white}.modal__btn--primary:hover{background:var(--action-hover);transform:translateY(-1px)}.modal__btn--primary:active{transform:translateY(0)}.topbar-modal__title{display:flex;align-items:center;gap:10px}.topbar-modal__title-icon{color:var(--modal-title-icon)}.topbar-gallery__header-actions{display:flex;gap:8px;align-items:center}.topbar-gallery__new-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--action-primary);background:var(--action-primary);color:#fff;font-size:.85rem;font-weight:600;transition:background-color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.topbar-gallery__new-btn:hover{background:var(--action-hover);border-color:var(--action-hover);transform:translateY(-1px)}.topbar-gallery__body{max-height:400px;overflow-y:auto}.topbar-gallery__empty{text-align:center;color:var(--text-secondary);padding:20px 0}.topbar-gallery__list{display:flex;flex-direction:column;gap:8px}.topbar-gallery__item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;background:var(--surface-secondary);border:1px solid var(--surface-border);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:border-color var(--transition-fast),background-color var(--transition-fast);color:var(--text-primary)}.topbar-gallery__item:hover{border-color:var(--modal-card-hover-border)}.topbar-gallery__item--active{border-color:var(--modal-card-active-border);background:var(--modal-card-active-bg)}.topbar-gallery__item-main{display:flex;flex-direction:column;gap:4px;min-width:0}.topbar-gallery__item-name{display:inline-flex;align-items:center;gap:8px;font-size:.95rem;min-width:0}.topbar-gallery__active-badge{font-size:.7rem;background-color:var(--action-primary);color:#fff;padding:2px 6px;border-radius:4px}.topbar-gallery__item-date{font-size:.75rem;color:var(--text-secondary)}.topbar-gallery__item-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.topbar-gallery__delete-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius-sm);color:var(--error);transition:background-color var(--transition-fast),color var(--transition-fast)}.topbar-gallery__delete-btn:hover{background:var(--modal-danger-hover-bg)}.topbar-gallery__item-chevron{color:var(--text-secondary);font-size:12px}.topbar-about__logo-mark{width:32px;height:32px;border-radius:6px;flex-shrink:0}.topbar-about__logo-subtitle{font-size:.6rem;color:var(--text-secondary);font-weight:500;letter-spacing:.4em;text-transform:uppercase}.topbar-about__body{line-height:1.8;font-size:.9rem}.topbar-about__paragraph{margin-top:12px}.topbar-about__link{color:var(--action-primary);font-weight:600;text-decoration:underline}.topbar-about__credits{margin-top:20px;padding:12px 16px;background:var(--surface-secondary);border-radius:var(--radius-md);border:1px solid var(--surface-border);font-size:.82rem}.topbar-about__credits-text{color:var(--text-secondary)}.topbar-about__heart{color:var(--action-primary)}.modal.disclaimer-modal{max-width:480px}.disclaimer-modal__title{display:inline-flex;align-items:center;gap:8px}.disclaimer-modal__title-icon{color:var(--warning);font-size:18px}.disclaimer-modal__body{line-height:1.8;font-size:.88rem}.disclaimer-modal__lead{margin-bottom:12px}.disclaimer-modal__hint{margin-top:12px;color:var(--text-secondary);font-size:.82rem}.disclaimer-modal__notice{margin-top:16px;padding:10px 14px;background:var(--status-warning-soft-bg);border-radius:var(--radius-sm);border:1px solid var(--status-warning-soft-border);font-size:.8rem;color:var(--text-primary);display:flex;align-items:center;gap:8px}.disclaimer-modal__notice-icon{color:var(--warning)}.disclaimer-modal__ack-btn{padding:8px 24px;background:var(--action-primary);color:#fff;font-weight:700;font-size:.88rem;border-radius:var(--radius-sm);border:1px solid var(--action-primary);transition:background-color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.disclaimer-modal__ack-btn:hover{background:var(--action-hover);border-color:var(--action-hover);transform:translateY(-1px)}.modal-overlay--dialog{z-index:9999}.modal.dialog-modal{width:min(400px,92vw);min-width:300px}.dialog-modal__title{display:inline-flex;align-items:center;gap:8px;font-size:1.2rem}.dialog-modal__title-icon{color:var(--modal-title-icon)}.dialog-modal__body{padding-bottom:0}.dialog-modal__message{color:var(--text-primary);margin-bottom:16px;font-size:.95rem}.dialog-modal__message--spacious{margin-bottom:24px}.dialog-modal__input{width:100%;padding:10px 12px;margin-bottom:24px;background:var(--bg-primary);border:1px solid var(--surface-border);color:var(--text-primary);border-radius:var(--radius-sm);font-size:1rem}.dialog-modal__input:focus{border-color:var(--action-primary);box-shadow:0 0 0 2px var(--modal-card-active-bg);outline:none}.dialog-modal__footer{padding:16px 20px;background:var(--surface-secondary);border-bottom-left-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.dialog-modal__btn{padding:8px 16px;border-radius:var(--radius-sm);transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.dialog-modal__btn--cancel{color:var(--text-secondary);border:1px solid transparent}.dialog-modal__btn--cancel:hover{color:var(--text-primary);background:var(--interactive-muted-bg)}.dialog-modal__btn--confirm{background:var(--action-primary);color:#fff;border:1px solid var(--action-primary);font-weight:600}.dialog-modal__btn--confirm:hover{background:var(--action-hover);border-color:var(--action-hover)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.custom-code-editor-overlay{background:var(--overlay-bg);-webkit-backdrop-filter:blur(var(--overlay-backdrop-blur));backdrop-filter:blur(var(--overlay-backdrop-blur))}.custom-code-editor-modal{width:min(860px,92vw);max-height:90vh;display:flex;flex-direction:column}.custom-code-editor-body{display:flex;flex-direction:column;flex:1 1;min-height:0;padding:14px 20px 8px;gap:10px}.custom-code-editor-hint{display:flex;align-items:center;gap:8px;font-size:.78rem;color:var(--text-secondary);opacity:.75;padding:6px 10px;background:var(--surface-secondary);border-radius:var(--radius-sm);border:1px solid var(--surface-border)}.custom-code-editor-hint i{color:var(--action-primary);flex-shrink:0}.custom-code-editor-hint kbd{display:inline-block;padding:1px 5px;border-radius:3px;background:var(--interactive-muted-bg);border:1px solid var(--interactive-muted-border);font-size:.72rem;font-family:inherit}.custom-code-editor-cm-container{flex:1 1;min-height:340px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--surface-border);background:#1a1f2b}.custom-code-editor-cm-container .cm-editor{height:100%}.custom-code-editor-cm-container .cm-scroller{height:100%;min-height:340px}.modal.settings-modal{width:min(760px,95vw);max-width:95vw;max-height:86vh;display:flex;flex-direction:column}.settings-modal__title{display:inline-flex;align-items:center;gap:9px}.settings-modal__title i{color:var(--action-primary)}.settings-modal__body{display:flex;flex-direction:column;gap:14px;overflow-y:auto;max-height:68vh}.settings-modal__section{border:1px solid var(--surface-border);background:var(--surface-secondary);border-radius:var(--radius-md);padding:14px}.settings-modal__section-header{margin-bottom:12px}.settings-modal__section-title{font-size:.84rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.settings-modal__section-hint{margin-top:5px;color:var(--text-secondary);font-size:.8rem;line-height:1.45}.settings-theme-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:10px;gap:10px}.settings-theme-card{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--surface-border);background:var(--surface-primary);color:var(--text-primary);text-align:left;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.settings-theme-card:hover{border-color:var(--modal-card-hover-border);box-shadow:0 2px 10px rgba(0,0,0,.08)}.settings-theme-card:active{transform:translateY(1px)}.settings-theme-card--active{border-color:var(--modal-card-active-border);box-shadow:0 0 0 2px var(--modal-card-active-bg)}.settings-theme-card__name{font-size:.84rem;font-weight:600}.settings-theme-card__style{padding:2px 8px;border-radius:999px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.settings-theme-card__style--dark{background:var(--theme-style-dark-bg);color:var(--theme-style-dark-text);border:1px solid var(--theme-style-dark-border)}.settings-theme-card__style--light{background:var(--theme-style-light-bg);color:var(--theme-style-light-text);border:1px solid var(--theme-style-light-border)}.modal.shortcuts-modal{width:min(760px,95vw);max-width:95vw;max-height:86vh;display:flex;flex-direction:column}.shortcuts-modal__title{display:inline-flex;align-items:center;gap:9px}.shortcuts-modal__title i{color:var(--action-primary)}.shortcuts-modal__body{display:flex;flex-direction:column;gap:12px;overflow-y:auto;max-height:68vh}.shortcuts-modal__hint{color:var(--text-secondary);font-size:.82rem;line-height:1.5}.shortcuts-modal__section{border:1px solid var(--surface-border);border-radius:var(--radius-md);background:var(--surface-secondary);overflow:hidden}.shortcuts-modal__section-title{padding:10px 12px 8px;font-size:.76rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--surface-border)}.shortcuts-table{width:100%;border-collapse:collapse}.shortcuts-table tr+tr td{border-top:1px solid var(--surface-border)}.shortcuts-table td{padding:10px 12px;vertical-align:top}.shortcuts-table__keys{width:42%}.shortcuts-table__combo-list{display:flex;flex-wrap:wrap;gap:6px}.shortcuts-table__combo{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;border:1px solid var(--modal-card-hover-border);background:var(--modal-card-active-bg);color:var(--text-primary);font-size:.74rem;font-weight:600;line-height:1.35}.shortcuts-table__action{color:var(--text-secondary);font-size:.8rem;line-height:1.5}.modal.board-prep-modal{width:min(540px,94vw);max-width:94vw;max-height:85vh;display:flex;flex-direction:column}.board-prep-modal__body{display:flex;flex-direction:column;gap:16px;overflow-y:auto;max-height:60vh}.board-prep-modal__status{display:flex;flex-wrap:wrap;gap:8px}.board-prep-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;font-size:.74rem;font-weight:600;border:1px solid var(--surface-border);color:var(--text-secondary);background:var(--surface-secondary)}.board-prep-chip--connected{color:var(--success);border-color:var(--status-success-soft-border)}.board-prep-chip--connecting,.board-prep-chip--erasing,.board-prep-chip--flashing,.board-prep-chip--verifying{color:var(--info);border-color:var(--status-info-soft-border)}.board-prep-chip--success{color:var(--success);border-color:var(--status-success-soft-border)}.board-prep-chip--error{color:var(--error);border-color:var(--status-error-soft-border)}.board-prep-chip--info{color:var(--text-secondary)}.board-prep-modal__warning{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--radius-sm);background:var(--status-warning-soft-bg);border:1px solid var(--status-warning-soft-border);color:var(--warning);font-size:.8rem;font-weight:500}.board-prep-modal__action-area{display:flex;flex-direction:column;align-items:center;gap:14px;padding:20px 0;text-align:center}.board-prep-modal__hint{color:var(--text-secondary);font-size:.86rem;line-height:1.5;max-width:380px}.board-prep-modal__confirm-text{color:var(--text-primary);font-size:.92rem;font-weight:500;line-height:1.5;max-width:380px}.board-prep-modal__btn-primary{display:inline-flex;align-items:center;gap:8px;padding:10px 28px;background:var(--action-primary);color:white;font-weight:700;font-size:.9rem;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-glow)}.board-prep-modal__btn-primary:hover{background:var(--action-hover);transform:translateY(-1px);box-shadow:0 0 24px var(--action-glow)}.board-prep-modal__btn-secondary{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:var(--surface-secondary);color:var(--text-secondary);font-weight:600;font-size:.82rem;border-radius:var(--radius-sm);border:1px solid var(--surface-border);cursor:pointer;transition:all var(--transition-fast)}.board-prep-modal__btn-secondary:hover{border-color:var(--text-secondary);color:var(--text-primary)}.board-prep-modal__spinner{width:32px;height:32px;border:3px solid var(--surface-border);border-top-color:var(--action-primary);border-radius:50%;animation:board-prep-spin .8s linear infinite}@keyframes board-prep-spin{to{transform:rotate(1turn)}}.board-prep-modal__progress-track{width:100%;max-width:360px;height:8px;background:var(--surface-secondary);border-radius:99px;overflow:hidden;border:1px solid var(--surface-border)}.board-prep-modal__progress-fill{height:100%;background:linear-gradient(90deg,var(--action-primary),var(--success));border-radius:99px;transition:width .3s ease}.board-prep-modal__progress-label{font-size:.82rem;font-weight:700;color:var(--text-secondary);font-family:JetBrains Mono,Fira Code,monospace}.board-prep-modal__result{padding:24px 0}.board-prep-modal__result i{font-size:2.2rem}.board-prep-modal__result p{font-size:.92rem;font-weight:500;max-width:340px}.board-prep-modal__result--success{color:var(--success)}.board-prep-modal__result--error{color:var(--error)}.board-prep-modal__log{border:1px solid var(--surface-border);border-radius:var(--radius-sm);background:var(--terminal-bg);overflow:hidden}.board-prep-modal__log-header{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--terminal-header-bg);border-bottom:1px solid var(--terminal-header-border);font-size:.72rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.board-prep-modal__log-clear{padding:2px 6px;border-radius:3px;color:var(--text-secondary);opacity:.5;font-size:.68rem;cursor:pointer;transition:all var(--transition-fast);background:none;border:none}.board-prep-modal__log-clear:hover{opacity:1;background:var(--interactive-muted-bg)}.board-prep-modal__log-body{max-height:180px;overflow-y:auto;padding:8px 12px;font-family:JetBrains Mono,Fira Code,monospace;font-size:.72rem;line-height:1.6}.board-prep-modal__log-line{color:var(--terminal-text,#d4d4d4);white-space:pre-wrap;word-break:break-all}.board-prep-modal__log-line--error{color:var(--error)}.board-prep-modal__log-line--success{color:var(--success)}.modal.library-manager-modal{width:min(760px,95vw);max-width:95vw;max-height:86vh;display:flex;flex-direction:column}.library-manager-modal__title{display:inline-flex;align-items:center;gap:9px}.library-manager-modal__title i{color:var(--action-primary)}.library-manager-modal__body{display:flex;flex-direction:column;gap:14px;overflow-y:auto;max-height:68vh}.library-manager__status{display:flex;flex-wrap:wrap;gap:8px}.library-manager-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:.74rem;font-weight:600;border:1px solid var(--surface-border);color:var(--text-secondary);background:var(--surface-secondary)}.library-manager-chip--connected{color:var(--success);border-color:var(--status-success-soft-border)}.library-manager-chip--warn{color:var(--warning);border-color:var(--status-warning-soft-border)}.library-manager-chip--button{cursor:pointer;transition:all var(--transition-fast)}.library-manager-chip--button:hover:not(:disabled){border-color:var(--action-primary);color:var(--action-primary)}.library-manager-chip--button:disabled{opacity:.5;cursor:not-allowed}.library-manager__upload-section{border:1px solid var(--surface-border);background:var(--surface-secondary);border-radius:var(--radius-md);padding:14px}.library-manager__section-title{font-size:.8rem;font-weight:700;color:var(--text-secondary);margin-bottom:10px;text-transform:uppercase;letter-spacing:.05em}.library-manager__upload-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.library-manager__upload-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--radius-sm);border:1px solid var(--action-primary);background:var(--action-primary);color:#fff;font-weight:600;font-size:.85rem;transition:all var(--transition-fast)}.library-manager__upload-btn:hover:not(:disabled){background:var(--action-hover);border-color:var(--action-hover)}.library-manager__upload-btn:disabled{opacity:.5;cursor:not-allowed}.library-manager__hint{color:var(--text-secondary);font-size:.8rem}.library-manager__list-section{display:flex;flex-direction:column;gap:8px}.library-manager__empty{border:1px dashed var(--surface-border);background:var(--surface-secondary);border-radius:var(--radius-md);padding:22px 16px;text-align:center;color:var(--text-secondary);display:flex;flex-direction:column;align-items:center;gap:7px}.library-manager__list{display:flex;flex-direction:column;gap:8px;max-height:340px;overflow-y:auto;padding-right:2px}.library-manager__item{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--surface-border);background:var(--surface-secondary);border-radius:var(--radius-sm);padding:10px 12px;transition:border-color var(--transition-fast)}.library-manager__item:hover{border-color:var(--modal-card-hover-border)}.library-manager__meta{display:inline-flex;align-items:center;gap:9px;min-width:0}.library-manager__meta i{color:var(--text-secondary);font-size:1rem}.library-manager__name{font-size:.88rem;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:360px}.library-manager__size{color:var(--text-secondary);font-size:.76rem;font-family:JetBrains Mono,Fira Code,monospace}.library-manager__delete-btn{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:var(--radius-sm);border:1px solid var(--status-error-soft-border);background:var(--status-error-soft-bg);color:var(--error);font-size:.8rem;font-weight:600;transition:all var(--transition-fast)}.library-manager__delete-btn:hover:not(:disabled){background:color-mix(in srgb,var(--status-error-soft-bg) 70%,var(--error) 30%);border-color:var(--error)}.library-manager__delete-btn:disabled{opacity:.5;cursor:not-allowed}.library-manager__catalog-section{border:1px solid var(--surface-border);background:var(--surface-secondary);border-radius:var(--radius-md);padding:14px}.library-manager__catalog-search{display:flex;align-items:center;gap:8px;padding:7px 10px;background:var(--shell-bg-light);border:1px solid var(--shell-border);border-radius:var(--radius-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);margin-bottom:12px}.library-manager__catalog-search:focus-within{border-color:var(--action-primary);box-shadow:0 0 0 2px var(--modal-card-active-bg)}.library-manager__catalog-search-icon{font-size:11px;color:var(--text-secondary);opacity:.5;flex-shrink:0}.library-manager__catalog-search-input{flex:1 1;background:none;border:none;outline:none;color:var(--text-primary);font-size:.82rem;font-weight:500;min-width:0}.library-manager__catalog-search-input::placeholder{color:var(--text-secondary);opacity:.5}.library-manager__catalog-search-clear{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--interactive-muted-bg);color:var(--text-secondary);font-size:9px;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;border:none;padding:0}.library-manager__catalog-search-clear:hover{background:var(--interactive-muted-bg-hover);color:var(--text-primary)}.library-manager__catalog-list{display:flex;flex-direction:column;gap:10px;max-height:300px;overflow-y:auto;padding-right:2px}.library-manager__catalog-card{border:1px solid var(--surface-border);background:var(--surface-primary);border-radius:var(--radius-sm);padding:12px 14px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.library-manager__catalog-card:hover{border-color:var(--modal-card-hover-border);box-shadow:0 2px 8px rgba(0,0,0,.08)}.library-manager__catalog-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:6px}.library-manager__catalog-card-info{min-width:0}.library-manager__catalog-card-name{font-size:.92rem;font-weight:700;color:var(--text-primary);display:flex;align-items:baseline;gap:8px}.library-manager__catalog-card-version{font-size:.72rem;font-weight:500;color:var(--text-tertiary);font-family:JetBrains Mono,Fira Code,monospace}.library-manager__catalog-card-author{font-size:.76rem;color:var(--text-secondary);margin-top:1px}.library-manager__catalog-card-desc{font-size:.8rem;color:var(--text-secondary);line-height:1.45;margin-bottom:8px}.library-manager__catalog-keywords{display:flex;flex-wrap:wrap;gap:5px}.library-manager__catalog-keyword-tag{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.68rem;font-weight:600;background:var(--modal-card-active-bg);color:var(--action-primary);border:1px solid var(--modal-card-hover-border)}.library-manager__install-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--radius-sm);border:1px solid var(--status-success-soft-border);background:var(--status-success-soft-bg);color:var(--success);font-size:.8rem;font-weight:600;white-space:nowrap;transition:all var(--transition-fast);flex-shrink:0}.library-manager__install-btn:hover:not(:disabled){background:color-mix(in srgb,var(--status-success-soft-bg) 70%,var(--success) 30%);border-color:var(--success)}.library-manager__install-btn:disabled{opacity:.5;cursor:not-allowed}.library-manager__installed-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:999px;font-size:.74rem;font-weight:600;background:var(--surface-secondary);color:var(--text-tertiary);border:1px solid var(--surface-border);white-space:nowrap;flex-shrink:0}.browser-banner{position:fixed;top:0;left:0;right:0;padding:12px 20px;background:var(--warning);color:#0D1B3E;font-size:.85rem;font-weight:600;text-align:center;z-index:9999;display:flex;align-items:center;justify-content:center;gap:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@media (max-width:900px){.modal.plotter-modal{width:96vw;max-height:94vh}.plotter-modal__header{align-items:flex-start}.plotter-modal__header-actions{flex-wrap:wrap;justify-content:flex-end}.plotter-chart-shell{min-height:280px}.plotter-chart{height:290px}.modal.library-manager-modal,.modal.settings-modal,.modal.shortcuts-modal{width:96vw;max-height:94vh}.library-manager-modal__body,.settings-modal__body,.shortcuts-modal__body{max-height:74vh}.shortcuts-table td{display:block;width:100%;border-top:none;padding:8px 12px}.shortcuts-table tr{display:block;border-top:1px solid var(--surface-border)}.shortcuts-table tr:first-child{border-top:none}.shortcuts-table__keys{width:100%;padding-bottom:4px}.library-manager__name{max-width:200px}.main-editor__workspace--split-vertical .main-editor__pane{min-width:150px}.main-editor__tabs-actions{padding:0 6px}}@keyframes logoFillTopToBottom{0%{-webkit-clip-path:inset(100% 0 0 0);clip-path:inset(100% 0 0 0)}to{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0)}}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background:var(--bg-workspace);color:var(--text-secondary);font-family:Inter,sans-serif;gap:16px}.loading-logo-container{position:relative;width:96px;height:96px}.loading-logo-bg{filter:grayscale(100%) opacity(.3)}.loading-logo-bg,.loading-logo-fg{position:absolute;top:0;left:0;width:100%;height:100%}.loading-logo-fg{animation:logoFillTopToBottom 2s ease-in-out infinite alternate}.loading-text{font-size:.95rem;font-weight:500;opacity:.8;letter-spacing:.5px}.auth-shell{position:relative;min-height:100vh;width:100%;overflow:hidden}.auth-visual{position:fixed;top:0;left:0;right:0;bottom:0;background:linear-gradient(150deg,rgba(13,27,62,.96),rgba(17,38,83,.93) 58%,rgba(232,72,10,.9) 140%);z-index:1;display:flex;align-items:center;padding:4rem}.auth-visual:before{content:"";position:absolute;bottom:-100px;left:-100px;width:400px;height:400px;background:radial-gradient(circle,rgba(232,72,10,.15) 0,transparent 70%);border-radius:50%}.auth-visual:after{content:"";position:absolute;top:100px;right:200px;width:200px;height:200px;border:2px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);transform:rotate(12deg)}.auth-visual__content{max-width:600px;color:var(--text-on-dark);position:relative;z-index:2}.auth-visual__eyebrow{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.15em;color:var(--text-on-dark-secondary);margin-bottom:.75rem}.auth-visual__title{font-size:3.5rem;font-weight:800;line-height:1.1;margin-bottom:1.5rem;letter-spacing:-.02em}.auth-visual__title--highlight{color:var(--action-primary)}.auth-visual__tagline{font-size:1.125rem;line-height:1.6;color:var(--text-on-dark-secondary);margin-bottom:2rem}.auth-visual__features{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.auth-visual__feature{display:flex;align-items:center;gap:.75rem;font-size:.95rem;color:var(--text-on-dark-secondary)}.auth-visual__feature-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:rgba(232,72,10,.2);color:var(--action-primary);border-radius:50%;font-size:.7rem;font-weight:700;flex-shrink:0}.auth-card{position:relative;z-index:2;background:rgba(13,27,62,.96);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:var(--shadow-lg);padding:2.5rem}.auth-card--split{position:absolute;top:50%;right:4rem;transform:translateY(-50%);width:min(100%,520px);max-width:520px}.auth-mobile-brand{display:none;text-align:center;margin-bottom:2rem}.auth-mobile-brand__title{font-size:2rem;font-weight:800;letter-spacing:-.02em;color:var(--text-on-dark);margin:0}.auth-mobile-brand__title--highlight{color:var(--action-primary)}.auth-error{display:flex;align-items:center;gap:.75rem;padding:1rem;background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-sm);margin-bottom:1.5rem;color:#FCA5A5;font-size:.9rem;line-height:1.4}.auth-error__icon{font-size:1.1rem;flex-shrink:0}.auth-error__message{flex:1 1}.auth-form{display:flex;flex-direction:column;gap:1.5rem}.auth-form__header{text-align:center;margin-bottom:.5rem}.auth-form__title{font-size:1.75rem;font-weight:700;color:var(--text-on-dark);margin:0 0 .5rem;letter-spacing:-.01em}.auth-form__subtitle{font-size:.9rem;color:var(--text-on-dark-secondary);margin:0;line-height:1.5}.auth-form__field{display:flex;flex-direction:column;gap:.5rem}.auth-form__label{font-size:.85rem;font-weight:500;color:var(--text-on-dark-secondary);margin:0}.auth-form__input{padding:.875rem 1rem;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:var(--text-on-dark);font-size:.95rem;font-family:inherit;transition:all var(--transition-fast);outline:none}.auth-form__input::placeholder{color:rgba(255,255,255,.4)}.auth-form__input:focus{background:var(--interactive-muted-bg);border-color:var(--action-primary);box-shadow:0 0 0 3px rgba(232,72,10,.15)}.auth-form__submit{padding:.875rem 1.5rem;background:var(--action-primary);color:white;border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all var(--transition-fast);margin-top:.5rem;width:100%}.auth-form__submit:hover{background:var(--action-hover);transform:translateY(-1px);box-shadow:0 4px 12px rgba(232,72,10,.3)}.auth-form__submit:active{background:var(--action-active);transform:translateY(0)}@media (max-width:900px){.auth-shell-login{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem}.auth-visual{display:none}.auth-card--split{position:relative;top:auto;right:auto;transform:none;width:100%;max-width:28rem;margin:0}.auth-mobile-brand{display:block}.auth-form__title{font-size:1.5rem}.auth-visual__title{font-size:2.5rem}}