.app-frame{width:100dvw;height:100dvh;overflow:clip;background:var(--app-bg)}.topbar{position:relative;z-index:30;height:var(--topbar-height);gap:0;padding:0 12px 0 14px;border-bottom:1px solid var(--border);background:var(--surface);box-shadow:0 1px 2px color-mix(in srgb,var(--text) 4%,transparent)}.brand-lockup,.topbar{display:flex;align-items:center}.brand-lockup{gap:7px;flex:0 0 auto;color:inherit;text-decoration:none}.brand-lockup:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.brand-mark{display:grid;width:30px;height:30px;place-items:center;overflow:hidden;border:0;border-radius:var(--radius-sm);background:transparent;box-shadow:none}.brand-mark img{width:27px;height:27px;object-fit:contain}.brand-mark svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.brand-mark .brand-axis{opacity:.35;stroke-width:1}.brand-name{color:var(--text);font-size:14px;font-weight:700;letter-spacing:-.025em;white-space:nowrap}.brand-name span{color:var(--text-secondary);font-weight:560}.brand-name .brand-product{color:var(--brand);font-weight:720}.brand-name .brand-domain{margin-left:0;color:color-mix(in srgb,var(--brand) 78%,var(--text-secondary));font-weight:680;letter-spacing:-.01em}.project-tabs{display:flex;min-width:0;max-width:min(52vw,680px);align-items:center;gap:14px;margin-left:14px}.project-tabs:before{width:1px;height:24px;flex:0 0 1px;content:"";background:var(--border)}.project-tabs-loading{width:246px;height:36px;flex:0 0 246px;gap:4px}.project-title-loading-slot{display:flex;width:174px;height:36px;flex:0 0 174px;align-items:center;padding:0 10px;box-sizing:border-box}.project-title-skeleton{display:block;width:104px;height:12px;border-radius:999px;background:color-mix(in srgb,var(--border) 68%,var(--surface-raised))}.project-mobile-action-skeleton,.project-tab-action-skeleton{color:var(--text-tertiary)}.project-tab-action-skeleton{display:grid;width:32px;height:32px;flex:0 0 32px;place-items:center}.project-mobile-action-skeleton{display:none}.save-status{display:inline-flex;min-height:28px;align-items:center;gap:7px;margin-left:8px;padding:0 9px 0 6px;color:var(--text-tertiary);font-size:10.5px;font-weight:620;white-space:nowrap;border:1px solid transparent;border-radius:999px;background:var(--surface-raised)}.save-status-label{max-width:190px;overflow:hidden;text-overflow:ellipsis}.save-status-icon{display:grid;width:18px;height:18px;flex:0 0 18px;place-items:center;color:var(--success);border-radius:50%;background:color-mix(in srgb,var(--success) 10%,transparent)}.save-status-saved{padding:0 8px 0 5px;color:var(--text-secondary)}.save-status-saved,.save-status-saved .save-status-icon{background:transparent}.save-status-saving{color:var(--primary)}.save-status-loading .save-status-icon,.save-status-saving .save-status-icon{color:var(--primary);background:var(--primary-soft)}.save-status-startup-timeout{color:#9a4d00;border-color:color-mix(in srgb,#d97706 24%,var(--border));background:color-mix(in srgb,#f59e0b 8%,var(--surface))}.save-status-startup-timeout .save-status-icon{color:#b45f06;background:color-mix(in srgb,#f59e0b 13%,transparent)}.save-status-spinner{animation:save-status-spin .9s linear infinite}@keyframes save-status-spin{to{transform:rotate(1turn)}}.save-status-recovered{color:#a15c00}.save-status-error,.save-status-unavailable{color:#c81e1e;border-color:color-mix(in srgb,#c81e1e 20%,transparent);background:color-mix(in srgb,#c81e1e 6%,var(--surface))}.save-status-error .save-status-icon,.save-status-unavailable .save-status-icon{color:#c81e1e;background:color-mix(in srgb,#c81e1e 10%,transparent)}:root[data-theme=dark] .save-status-recovered{color:#ffb84d}:root[data-theme=dark] .save-status-error,:root[data-theme=dark] .save-status-unavailable{color:#ff7373}.backup-export{display:inline-flex;height:30px;align-items:center;gap:5px;margin-left:8px;padding:0 8px;color:#c81e1e;font-size:10px;font-weight:700;white-space:nowrap;border:1px solid color-mix(in srgb,#c81e1e 25%,var(--border));border-radius:7px;background:color-mix(in srgb,#c81e1e 7%,var(--surface));cursor:pointer}.backup-export:hover{border-color:#c81e1e}.startup-recovery-banner{position:fixed;z-index:115;top:calc(var(--topbar-height) + 12px);left:50%;display:grid;width:min(680px,calc(100vw - 32px));grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:5px 12px;padding:13px 14px;color:var(--text);border:1px solid color-mix(in srgb,#d97706 30%,var(--border));border-radius:12px;background:color-mix(in srgb,var(--surface) 96%,#fff7e6);box-shadow:var(--shadow-overlay);transform:translateX(-50%)}.startup-recovery-icon{display:grid;width:34px;height:34px;grid-row:1/span 2;place-items:center;color:#a55708;border-radius:9px;background:color-mix(in srgb,#f59e0b 13%,var(--surface))}.startup-recovery-copy span,.startup-recovery-copy strong{display:block}.startup-recovery-copy strong{font-size:12.5px;font-weight:760}.startup-recovery-copy span{margin-top:3px;color:var(--text-secondary);font-size:10.5px;line-height:1.4}.startup-recovery-actions{display:flex;grid-row:1/span 2;grid-column:3;gap:7px}.startup-recovery-actions button{display:inline-flex;min-height:34px;align-items:center;justify-content:center;gap:6px;padding:0 10px;color:var(--text-secondary);font-size:10.5px;font-weight:700;white-space:nowrap;border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer}.startup-recovery-actions button:focus-visible,.startup-recovery-actions button:hover{color:var(--text);border-color:color-mix(in srgb,var(--primary) 30%,var(--border));outline:0;background:var(--surface-hover)}.startup-recovery-actions .startup-recovery-fresh{color:var(--on-primary);border-color:var(--primary);background:var(--primary)}.startup-recovery-actions .startup-recovery-fresh:focus-visible,.startup-recovery-actions .startup-recovery-fresh:hover{color:var(--on-primary);border-color:var(--primary);background:color-mix(in srgb,var(--primary) 88%,#000)}.startup-recovery-banner small{grid-column:2;color:var(--text-tertiary);font-size:9.5px}:root[data-theme=contrast] .startup-recovery-banner,:root[data-theme=dark] .startup-recovery-banner{background:color-mix(in srgb,var(--surface) 95%,#332100)}.connectivity-status{display:inline-flex;height:26px;align-items:center;gap:5px;margin-left:8px;padding:0 8px;color:#9a4d00;font-size:10px;font-weight:750;border:1px solid color-mix(in srgb,#d97706 30%,var(--border));border-radius:999px;background:color-mix(in srgb,#f59e0b 9%,var(--surface))}:root[data-theme=contrast] .connectivity-status,:root[data-theme=dark] .connectivity-status{color:#ffd166}.pwa-update{position:fixed;z-index:140;right:18px;bottom:18px;display:grid;grid-template-columns:38px minmax(190px,1fr) auto auto;max-width:min(600px,calc(100vw - 36px));min-height:66px;align-items:center;gap:10px;padding:10px 42px 10px 12px;border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:11px;background:var(--surface);box-shadow:var(--shadow-overlay)}.pwa-update-icon{display:grid;width:36px;height:36px;place-items:center;color:var(--primary);border-radius:9px;background:var(--primary-soft)}.pwa-update-copy{display:flex;min-width:0;flex-direction:column;gap:2px}.pwa-update-copy strong{color:var(--text);font-size:12px}.pwa-update-copy span{color:var(--text-secondary);font-size:10px;line-height:1.35}.pwa-update button{height:34px;padding:0 12px;font-size:11px;font-weight:720;border-radius:8px;cursor:pointer}.pwa-update-later{color:var(--text-secondary);border:1px solid var(--border);background:var(--surface-raised)}.pwa-update-apply{color:var(--on-primary);border:1px solid var(--primary);background:var(--primary)}.pwa-update-dismiss{position:absolute;top:7px;right:7px;display:grid;width:28px;height:28px;place-items:center;padding:0!important;color:var(--text-tertiary);border:0;background:transparent}.topbar-actions{display:flex;align-items:center;gap:4px;margin-left:auto}.topbar-actions,.topbar-tooltip{position:relative}.topbar-tooltip:after,.topbar-tooltip:before{position:absolute;z-index:90;left:50%;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .12s ease,transform .12s ease,visibility 0s linear .12s}.topbar-tooltip:before{top:calc(100% + 4px);width:0;height:0;border-right:5px solid transparent;border-bottom:5px solid color-mix(in srgb,var(--text) 92%,#000);border-left:5px solid transparent;content:"";transform:translate(-50%,-3px)}.topbar-tooltip:after{top:calc(100% + 9px);max-width:min(240px,calc(100vw - 16px));padding:6px 8px;border:1px solid color-mix(in srgb,var(--surface) 18%,transparent);border-radius:6px;color:var(--surface);background:color-mix(in srgb,var(--text) 92%,#000);box-shadow:0 5px 16px color-mix(in srgb,#000 18%,transparent);content:attr(data-tooltip);font-size:11px;font-weight:650;line-height:1.2;white-space:nowrap;transform:translate(-50%,-3px)}.topbar-tooltip[data-tooltip-align=end]:before{right:12px;left:auto;transform:translateY(-3px)}.topbar-tooltip[data-tooltip-align=end]:after{right:0;left:auto;transform:translateY(-3px)}.topbar-tooltip:focus-visible:after,.topbar-tooltip:focus-visible:before{opacity:1;visibility:visible;transform:translate(-50%);transition-delay:.28s;transition-property:opacity,transform,visibility}.topbar-tooltip[data-tooltip-align=end]:focus-visible:after,.topbar-tooltip[data-tooltip-align=end]:focus-visible:before{transform:translateY(0)}@media (hover:hover){.topbar-tooltip:hover:after,.topbar-tooltip:hover:before{opacity:1;visibility:visible;transform:translate(-50%);transition-delay:.28s;transition-property:opacity,transform,visibility}.topbar-tooltip[data-tooltip-align=end]:hover:after,.topbar-tooltip[data-tooltip-align=end]:hover:before{transform:translateY(0)}}.topbar-tooltip[aria-expanded=true]:after,.topbar-tooltip[aria-expanded=true]:before{opacity:0;visibility:hidden}.topbar-actions .icon-button{width:32px;height:32px;border-radius:7px}.workspace-3d-action{display:inline-flex;height:32px;align-items:center;gap:5px;padding:0 9px;color:var(--text-secondary);border:1px solid var(--border);border-radius:7px;background:var(--surface);font-size:11px;font-weight:750;text-decoration:none}.workspace-3d-action:hover{color:var(--brand);background:var(--surface-hover)}.io-toast{position:fixed;z-index:120;right:18px;bottom:18px;display:flex;max-width:min(420px,calc(100vw - 36px));min-height:44px;align-items:center;gap:10px;padding:9px 8px 9px 13px;color:var(--text-secondary);font-size:11px;font-weight:620;border:1px solid var(--border);border-left:3px solid var(--success);border-radius:9px;background:var(--surface);box-shadow:var(--shadow-overlay)}.io-toast-error{border-left-color:#c81e1e}.workspace{position:relative;display:grid;grid-template-columns:var(--panel-width) minmax(0,1fr);height:calc(100dvh - var(--topbar-height));overflow:hidden}.workspace.keyboard-open>.expression-region{margin-bottom:var(--keyboard-dock-height)}.sponsored-rail,.sponsored-rail-reopen,.sponsored-rail-toggle{display:none}.expression-region{position:relative;z-index:10;min-width:0;min-height:0;overflow:hidden;border-right:1px solid var(--border);background:var(--surface)}.expression-panel{display:flex;flex-direction:column;height:100%;min-height:0}.panel-toolbar{position:relative;z-index:12;display:flex;gap:10px;min-height:52px;align-items:center;justify-content:space-between;padding:7px 18px 7px 16px;border-bottom:1px solid var(--border);background:var(--surface)}.eyebrow{margin:0 0 2px;color:var(--text-tertiary);font-size:9px;font-weight:750;letter-spacing:.12em;text-transform:uppercase}.panel-toolbar h1{margin:0;font-size:15px;font-weight:740;letter-spacing:-.02em}.panel-toolbar-actions{display:flex;flex:0 0 auto;align-items:center;gap:2px}.panel-toolbar .icon-button{display:inline-grid;width:32px;height:32px;place-items:center;padding:0;border:0;border-radius:8px;line-height:0;vertical-align:middle}.panel-toolbar .icon-button.subtle{color:var(--text-tertiary)}.panel-toolbar .icon-button.subtle:hover{color:var(--text);border-color:transparent}.panel-add-menu-wrap{position:relative;display:flex;align-items:center;margin-left:3px}.panel-toolbar .panel-add-trigger{color:var(--primary);border:1px solid color-mix(in srgb,var(--primary) 22%,var(--border));background:var(--primary-soft)}.panel-add-trigger-caret,.panel-add-trigger-label{display:none}.panel-toolbar .panel-add-trigger.is-active,.panel-toolbar .panel-add-trigger:hover{color:var(--primary-hover);border-color:color-mix(in srgb,var(--primary) 38%,var(--border));background:color-mix(in srgb,var(--primary-soft) 78%,var(--surface-hover))}.panel-add-menu{position:absolute;z-index:80;top:calc(100% + 7px);right:0;width:216px;padding:7px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);box-shadow:0 14px 34px color-mix(in srgb,var(--text) 14%,transparent);transform-origin:top right;animation:panel-menu-enter .14s cubic-bezier(.22,1,.36,1) both}@keyframes panel-menu-enter{0%{opacity:0;transform:translateY(-5px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.panel-add-menu-label{display:block;padding:7px 10px 6px;color:var(--text-secondary);font-size:10.5px;font-weight:750;letter-spacing:.075em;text-transform:uppercase}.panel-add-menu button{display:grid;width:100%;height:42px;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:10px;padding:0 10px;color:var(--text);text-align:left;border:0;border-radius:6px;background:transparent;cursor:pointer}.panel-add-menu button:focus-visible,.panel-add-menu button:hover{color:var(--primary);outline:0;background:var(--primary-soft)}.panel-add-menu button svg{width:17px;height:17px;color:var(--text-secondary);stroke-width:1.8}.panel-add-menu button:focus-visible svg,.panel-add-menu button:hover svg{color:var(--primary)}.panel-add-menu button span{font-size:12.5px;font-weight:680}.expression-list{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;scroll-padding-block:12px;scrollbar-color:var(--border-strong) transparent;scrollbar-gutter:auto;scrollbar-width:thin}.expression-list>.expression-row,.expression-list>.organization-row,.expression-list>.slider-list{flex:0 0 auto}.expression-list::-webkit-scrollbar{width:5px}.expression-list::-webkit-scrollbar-track{background:transparent}.expression-list::-webkit-scrollbar-thumb{border:1px solid var(--surface);border-radius:999px;background:var(--border-strong)}.expression-list::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.icon-button:not(:disabled):active,.topbar-actions button:not(:disabled):active,.workspace-3d-action:active{transform:scale(.98)}.expression-row{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr);min-height:56px;scroll-margin-block-end:84px;align-items:stretch;padding:0 6px 0 0;border-bottom:1px solid var(--border);background:var(--surface);margin-left:calc(var(--item-depth, 0) * 14px);transition:background-color .12s ease}.expression-row:hover:not(:focus-within):not(.is-selected){background:color-mix(in srgb,var(--surface-raised) 36%,var(--surface))}.organization-row{position:relative;display:grid;grid-template-columns:30px auto auto minmax(0,1fr) 32px 32px;min-height:50px;align-items:center;gap:6px;margin-left:calc(var(--item-depth, 0) * 14px);padding:7px 4px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface-hover) 42%,var(--surface))}.organization-row.is-image,.organization-row.is-note{grid-template-columns:30px minmax(0,1fr) 32px 32px;align-items:start;padding-block:10px}.organization-row.is-dragging{z-index:3;opacity:.62;box-shadow:inset 3px 0 var(--primary)}.organization-row button{color:var(--text-tertiary);border:0;border-radius:5px;background:transparent;cursor:pointer}.organization-drag{display:grid;width:28px;height:32px;place-items:center;padding:0;touch-action:none;cursor:grab!important}.organization-drag:active{cursor:grabbing!important}.plot-item-drag{position:absolute;bottom:0;left:10px;width:20px;height:14px;color:var(--text-tertiary);opacity:0;transition:color .1s ease,opacity .1s ease}.plot-item-drag svg{display:none}.plot-item-drag:before{width:10px;height:2px;border-radius:999px;background:currentcolor;content:""}.expression-gutter:hover .plot-item-drag,.plot-item-drag:active,.plot-item-drag:focus-visible,.plot-item-drag:hover{color:var(--text-secondary);opacity:.68}@media (hover:none),(pointer:coarse){.expression-row{min-height:70px}.plot-item-drag{bottom:0;left:5px;width:34px;height:24px;opacity:.4}}.expression-row:has(.plot-item-drag) .series-toggle{transform:translateY(1px)}.folder-collapse{display:grid;width:26px;height:30px;place-items:center;padding:0}.organization-editor input,.organization-editor textarea,.organization-title{min-width:0;color:var(--text);border:1px solid transparent;border-radius:6px;background:transparent}.organization-title{width:100%;padding:6px 7px;font-size:12px;font-weight:700}.organization-editor input:focus,.organization-editor textarea:focus,.organization-title:focus{border-color:var(--primary);outline:0;background:var(--surface)}.organization-editor{display:grid;min-width:0;gap:7px}.organization-heading{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:11px}.organization-heading small{margin-left:auto;color:var(--text-tertiary);font-size:9px}.organization-editor textarea{width:100%;min-height:66px;resize:vertical;padding:7px;border-color:var(--border);background:var(--surface);font:inherit;line-height:1.45}.organization-editor label{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:6px;color:var(--text-tertiary);font-size:9px;font-weight:700}.organization-editor label input{width:100%;padding:6px;border-color:var(--border);background:var(--surface);font-size:10px;font-weight:500}.image-transform-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.image-transform-grid label{display:grid;grid-template-columns:1fr;gap:3px}.image-lock{display:inline-flex;width:max-content;align-items:center;gap:5px;padding:5px 7px;border:1px solid var(--border)!important;font-size:9px}.organization-remove{opacity:.55}.style-connect-points{display:inline-flex;min-height:28px;align-items:center;gap:4px;padding:0 5px;color:color-mix(in srgb,var(--text) 72%,var(--text-secondary));font-size:10.5px;font-weight:680;border:1px solid transparent;border-radius:6px;background:var(--surface);cursor:pointer;transition:color .1s ease,border-color .1s ease,background-color .1s ease}.style-point-toggles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}.style-point-toggles button{min-height:30px;border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);font-size:9px;font-weight:700;background:var(--surface-raised)}.style-point-toggles button[aria-pressed=true]{border-color:color-mix(in srgb,var(--primary) 52%,var(--border));color:var(--primary);background:color-mix(in srgb,var(--primary) 9%,var(--surface))}.style-select-label,.style-text-label{display:grid;gap:4px;margin-top:8px;color:var(--text-tertiary);font-size:9px;font-weight:680}.style-select-label select,.style-text-label input{width:100%;height:31px;padding:0 7px;border:1px solid var(--border);border-radius:6px;color:var(--text);font:600 10px Inter,ui-sans-serif,system-ui,sans-serif;background:var(--surface-raised)}.style-connect-points{width:100%;justify-content:center;margin-top:8px}.expression-row.is-selected,.expression-row:focus-within{z-index:1;background:var(--surface);box-shadow:inset 3px 0 0 var(--primary),inset 0 1px 0 var(--primary),inset 0 -1px 0 var(--primary)}.expression-row.is-trace-selected{background:color-mix(in srgb,var(--primary) 8%,var(--surface));box-shadow:inset 3px 0 0 var(--primary)}.expression-gutter{position:relative;display:grid;min-width:0;place-items:center;align-self:stretch}.expression-row:not(.is-table)>.expression-gutter{height:56px;align-self:start}.expression-row.is-selected .expression-gutter,.expression-row:focus-within .expression-gutter{background:color-mix(in srgb,var(--primary-soft) 72%,var(--surface))}.expression-number{position:absolute;top:6px;left:7px;color:color-mix(in srgb,var(--text-secondary) 78%,var(--text-tertiary));font-size:9px;font-weight:650;line-height:1}.series-toggle{display:grid;width:28px;height:28px;place-items:center;margin:0;color:var(--series-color);border:1px solid color-mix(in srgb,var(--series-color) 70%,var(--border));border-radius:50%;background:color-mix(in srgb,var(--series-color) 10%,var(--surface));box-shadow:none;cursor:pointer;transition:background-color .1s ease,box-shadow .1s ease,opacity .1s ease}.series-toggle:hover{background:color-mix(in srgb,var(--series-color) 16%,var(--surface));box-shadow:0 0 0 2px color-mix(in srgb,var(--series-color) 10%,transparent)}.series-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2}.series-toggle.is-hidden{color:var(--text-tertiary);border-color:var(--border);background:var(--surface-hover);opacity:.62}.expression-remove{display:grid;width:30px;height:30px;align-self:center;place-items:center;padding:0;color:var(--text-secondary);border:0;border-radius:5px;background:transparent;cursor:pointer;opacity:.52;transition:color .1s ease,background-color .1s ease,opacity .1s ease}.row-delete-button{display:grid;width:30px;height:30px;flex:0 0 auto;place-items:center;padding:0;color:var(--text-secondary);border:1px solid transparent;border-radius:6px;background:transparent;cursor:pointer;transition:color .1s ease,border-color .1s ease,background-color .1s ease,opacity .1s ease}.row-delete-button:focus-visible,.row-delete-button:hover{color:#b42318;border-color:color-mix(in srgb,#dc2626 24%,var(--border));outline:none;background:color-mix(in srgb,#dc2626 8%,var(--surface))}.expression-row-delete{position:absolute;z-index:16;top:15px;right:1px;width:24px;height:26px;border-color:transparent;background:transparent;opacity:.32;transition:opacity .1s ease}.expression-row-delete svg{width:15px;height:15px}.expression-row:hover>.expression-row-delete{opacity:.7}.expression-row-delete:focus-visible,.expression-row-delete:hover{opacity:1}@media (hover:none),(pointer:coarse){.expression-row-delete{top:19px;right:1px;width:32px;height:32px;opacity:.58}}@media (hover:none),(pointer:coarse){.expression-row-delete:active,.expression-row-delete:focus-visible{opacity:1}}.expression-row.is-selected .expression-remove,.expression-row:focus-within .expression-remove,.expression-row:hover .expression-remove{pointer-events:auto;opacity:1}.expression-row.is-selected .expression-remove,.expression-row:focus-within .expression-remove,.expression-row:hover .expression-remove{color:var(--text-secondary)}.expression-row .expression-remove:focus-visible,.expression-row .expression-remove:hover{color:color-mix(in srgb,var(--danger) 84%,var(--text-secondary));background:color-mix(in srgb,var(--danger) 9%,transparent)}.expression-style-popover{position:fixed;z-index:80;width:min(292px,calc(100vw - 16px));max-height:calc(100dvh - 16px);overflow-y:auto;padding:13px;color:var(--text);border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);box-shadow:0 16px 38px color-mix(in srgb,var(--text) 16%,transparent);transform-origin:top left;animation:panel-menu-enter .15s cubic-bezier(.22,1,.36,1) both}.expression-style-popover section[aria-label="Region appearance"]{margin:10px -2px 4px;padding:9px 2px 2px;border-top:1px solid var(--border)}.expression-style-header,.expression-style-header>div{display:flex;align-items:center}.expression-style-header{min-height:30px;justify-content:space-between;margin-bottom:10px}.expression-style-header>div{gap:9px}.expression-style-header strong{font-size:13.5px;font-weight:720}.expression-style-swatch{width:11px;height:11px;border-radius:50%}.style-close{display:grid;width:28px;height:28px;place-items:center;padding:0;color:var(--text-tertiary);border:0;border-radius:5px;background:transparent;cursor:pointer}.style-close:hover{color:var(--text);background:var(--surface-hover)}.style-visibility{position:absolute;top:14px;right:47px;display:flex;width:auto;height:27px;align-items:center;gap:5px;padding:0 7px;color:var(--text-secondary);font-size:11.5px;font-weight:680;border:0;border-radius:5px;background:transparent;cursor:pointer}.style-visibility[aria-pressed=true]{color:var(--text)}.style-visibility:hover{background:var(--surface-hover)}.style-palette{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;margin:10px 0 13px}.style-color{display:grid;aspect-ratio:1;place-items:center;padding:0;color:#fff;border:2px solid transparent;border-radius:6px;background:var(--style-color);cursor:pointer}.style-color[aria-pressed=true]{border-color:var(--surface);outline:1px solid var(--text-secondary);outline-offset:2px}.style-setting-row{display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:10px;margin-top:9px}.style-opacity>span,.style-setting-row>span{color:var(--text-secondary);font-size:10.5px;font-weight:680}.style-segments{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;padding:3px;border:1px solid var(--border-strong);border-radius:7px;background:var(--surface)}.style-segments button{display:grid;height:31px;place-items:center;padding:0;border:0;border-radius:5px;background:transparent;cursor:pointer}.style-segments button[aria-pressed=true]{color:var(--primary);background:var(--primary-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 42%,transparent)}.line-style-option i,.line-width-option i{display:block;width:24px;background:currentColor}.line-style-option i{height:2px}.line-style-option.is-dashed i{background:repeating-linear-gradient(90deg,currentColor 0 7px,transparent 7px 11px)}.line-style-option.is-dotted i{background:repeating-linear-gradient(90deg,currentColor 0 2px,transparent 2px 6px)}.style-opacity{display:block;margin-top:13px}.style-opacity>span{display:flex;justify-content:space-between;margin-bottom:5px}.style-opacity output{color:var(--text-secondary);font-variant-numeric:tabular-nums}.style-opacity input{width:100%;height:24px;margin:0;accent-color:var(--primary);cursor:pointer}.expression-input-wrap{display:flex;min-width:0;flex-direction:column;justify-content:center;padding:5px 34px 5px 8px}.expression-status{margin:4px 0 0;overflow:hidden;color:var(--text-tertiary);font-size:10px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.expression-value-result{display:grid;min-width:0;gap:3px;margin-top:5px;padding:6px 7px;border:1px solid color-mix(in srgb,var(--primary) 16%,var(--border));border-radius:7px;background:color-mix(in srgb,var(--primary-soft) 34%,var(--surface-raised))}.expression-value-body,.expression-value-heading{display:flex;min-width:0;align-items:center}.expression-value-heading{gap:6px;color:var(--text-tertiary);font-size:8px;font-weight:750;letter-spacing:.045em;line-height:1.2;text-transform:uppercase}.expression-value-type{overflow:hidden;color:var(--primary);text-overflow:ellipsis;white-space:nowrap}.expression-value-mode{margin-left:auto;color:var(--text-secondary);font-weight:650;letter-spacing:.02em}.expression-value-body{gap:6px}.expression-value-output{min-width:0;overflow:hidden;color:var(--text);font:650 12px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}.expression-value-color{width:15px;height:15px;flex:0 0 auto;border:1px solid color-mix(in srgb,var(--text) 22%,var(--border));border-radius:4px}.expression-value-copy{display:inline-grid;width:25px;height:25px;flex:0 0 auto;margin-left:auto;place-items:center;padding:0;color:var(--text-tertiary);border:1px solid transparent;border-radius:5px;background:transparent}.expression-value-copy:focus-visible,.expression-value-copy:hover{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 24%,var(--border));background:var(--surface-hover)}.expression-value-copy:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 50%,transparent);outline-offset:1px}.expression-value-matrix-wrap{min-width:0;max-width:calc(100% - 31px);overflow-x:auto;padding:0 4px;border-right:1px solid var(--text-tertiary);border-left:1px solid var(--text-tertiary)}.expression-value-matrix-wrap table{border-spacing:7px 1px;color:var(--text);font:650 11px/1.25 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums}.expression-value-matrix-wrap td{padding:0;text-align:right;white-space:nowrap}.expression-status.is-error,.expression-status.is-warning{overflow:visible;text-overflow:clip;white-space:normal}.expression-status small{display:block;margin-top:2px;color:var(--text-secondary);font-size:9px}.expression-status.is-error{color:#c81e1e}.expression-status.is-warning{color:#a15c00}.expression-regression-result{display:grid;gap:5px;margin-top:4px;color:var(--text-tertiary);font-size:10px;line-height:1.35}.expression-regression-heading{color:var(--text-secondary);font-size:9px;font-weight:750;letter-spacing:.055em;text-transform:uppercase}.expression-regression-parameters{display:flex;flex-wrap:wrap;gap:5px}.expression-regression-parameters output{padding:3px 7px;color:var(--text);font-size:12px;font-variant-numeric:tabular-nums;border:1px solid var(--border);border-radius:6px;background:var(--surface-hover)}.expression-regression-parameters var{font-family:var(--font-serif),serif;font-style:italic}.expression-regression-residuals{overflow:hidden;color:var(--text-secondary);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}.expression-error{margin-top:2px}.expression-error>summary{display:flex;min-height:20px;align-items:center;gap:5px;width:100%;list-style:none;color:#b42318;font-size:10px;font-weight:650;line-height:1;cursor:pointer}.expression-error>summary::-webkit-details-marker{display:none}.expression-error>summary>svg:first-child{flex:0 0 auto}.expression-error-details-label{margin-left:auto;color:var(--text-tertiary);font-size:9px;font-weight:600}.expression-error-chevron{flex:0 0 auto;color:var(--text-tertiary);transition:transform .12s ease}.expression-error[open] .expression-error-chevron{transform:rotate(180deg)}.expression-error-body{margin:3px 0 2px 18px;padding:6px 8px;color:var(--text-secondary);border-left:2px solid color-mix(in srgb,#c81e1e 52%,var(--border));border-radius:0 5px 5px 0;background:color-mix(in srgb,#c81e1e 4%,var(--surface));font-size:9px;font-weight:500;line-height:1.4}.expression-error-body>span{display:block}.expression-error-body small{margin-top:3px;color:var(--text-secondary);font-size:9px}.curve-domain-editor{display:flex;min-width:0;align-items:center;gap:4px;margin:5px 0 0;color:var(--text-tertiary);font-size:9px}.curve-domain-editor>span{color:var(--text-secondary);font:700 12px Georgia,serif}.curve-domain-editor i{font-style:normal}.curve-domain-editor input{width:54px;min-width:0;height:27px;padding:0 5px;border:1px solid var(--border);border-radius:5px;color:var(--text);font:600 9px ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--surface-raised)}.curve-domain-editor input[aria-invalid=true]{border-color:#c81e1e}.curve-domain-editor button{min-height:27px;padding:0 6px;border:1px solid var(--border);border-radius:5px;color:var(--text-secondary);font-size:9px;font-weight:700;background:var(--surface-raised)}:root[data-theme=dark] .expression-status.is-error{color:#ff7373}:root[data-theme=dark] .expression-error>summary{color:#ff8585}:root[data-theme=dark] .expression-status.is-warning{color:#ffb84d}:root[data-theme=contrast] .expression-error>summary{color:#fff200}.parameter-warning{display:flex;min-width:0;min-height:24px;align-items:center;flex-wrap:wrap;gap:4px 6px;margin-top:3px;color:#9a5b00;font-size:9.5px;line-height:1.25}.parameter-warning>svg{flex:0 0 auto}.parameter-warning-message{font-weight:620}.parameter-warning-actions{display:inline-flex;flex-wrap:wrap;gap:3px}.parameter-warning button{display:inline-flex;min-height:23px;align-items:center;padding:0 5px;color:var(--primary);font-size:9.5px;font-weight:700;border:0;border-radius:4px;background:transparent;cursor:pointer}.parameter-warning button:focus-visible,.parameter-warning button:hover{color:var(--primary-hover);outline:0;background:var(--primary-soft)}:root[data-theme=dark] .parameter-warning{color:#ffbd59}.keyboard-toggle.is-active{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 24%,var(--border));background:var(--primary-soft)}.expression-blank-add{display:flex;width:100%;min-height:46px;flex:0 0 46px;align-items:center;justify-content:center;gap:7px;padding:0 14px;color:var(--text-secondary);border:0;border-bottom:0;border-radius:0;background:var(--surface);font-size:11.5px;font-weight:650;line-height:1;text-align:center;cursor:pointer;transition:color .1s ease,background-color .1s ease}.expression-blank-add svg{display:block;flex:0 0 auto;color:var(--text-tertiary);transform:translateY(-1px);transition:color .1s ease,transform .1s ease}.expression-blank-add span{display:block}.expression-blank-add:hover{color:var(--text);background:var(--surface-hover)}.expression-blank-add:hover svg{color:var(--primary);transform:translateY(-1px) scale(1.06)}.expression-blank-add:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 48%,transparent);outline-offset:2px}.keyboard-quick-toggle{display:none}.math-keyboard{position:fixed;z-index:28;right:0;bottom:0;left:0;height:var(--keyboard-dock-height);padding:9px 18px 12px calc(var(--panel-width) + 18px);border-top:1px solid var(--keyboard-key-border);background:var(--keyboard-surface);box-shadow:0 -6px 18px color-mix(in srgb,var(--text) 8%,transparent);user-select:none;-webkit-user-select:none;transform-origin:bottom center}.math-keyboard.is-open{animation:keyboard-dock-enter var(--motion-panel) cubic-bezier(.22,1,.36,1) both}.math-keyboard.is-closing{pointer-events:none;animation:keyboard-dock-exit var(--motion-panel) cubic-bezier(.22,1,.36,1) both}@keyframes keyboard-dock-enter{0%{transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.keyboard-frame{width:min(100%,900px);margin:0 auto}.keyboard-header{display:flex;align-items:center;gap:8px;min-height:32px;margin-bottom:7px}.keyboard-title{display:inline-flex;flex:0 0 auto;align-items:center;gap:5px;color:var(--text-secondary);font-size:10px;font-weight:750;letter-spacing:.065em;text-transform:uppercase}.keyboard-tabs{display:flex;align-self:center;gap:2px;padding:2px;border:1px solid color-mix(in srgb,var(--keyboard-key-border) 72%,transparent);border-radius:6px;background:var(--keyboard-key-muted)}.keyboard-close,.keyboard-tabs button{position:relative;height:30px;padding:0 10px;color:var(--text-secondary);font-size:11.5px;font-weight:700;border:1px solid transparent;border-radius:4px;background:transparent;cursor:pointer}.keyboard-tabs button[aria-pressed=true]{color:var(--primary);border-color:var(--keyboard-key-border);background:var(--keyboard-key);box-shadow:0 1px 2px color-mix(in srgb,var(--text) 8%,transparent)}.keyboard-tabs button[aria-pressed=true]:after{content:none}.keyboard-close{display:flex;width:auto;height:32px;align-items:center;justify-content:center;gap:5px;margin-left:auto;padding:0 8px;border-color:var(--keyboard-key-border);border-radius:6px;background:var(--keyboard-key)}.keyboard-close span,.keyboard-close svg{display:block;flex:0 0 auto}.keyboard-close span{line-height:15px}.keyboard-close:hover{color:var(--text);background:var(--surface-hover)}.keyboard-content{display:grid;grid-template-columns:minmax(0,1fr) 224px;gap:16px}.keyboard-key-panel{min-width:0}.keyboard-basic-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.keyboard-key-group{display:grid;min-width:0;gap:5px}.keyboard-group-label{color:var(--text-secondary);font-size:10px;font-weight:750;letter-spacing:.09em;line-height:12px;text-transform:uppercase}.keyboard-command-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;align-content:start}.keyboard-command-label{grid-column:1/-1}.keyboard-edit-tools,.keyboard-navigation{display:grid;grid-column:1/-1;gap:6px}.keyboard-edit-tools{grid-template-columns:repeat(3,minmax(0,1fr))}.keyboard-navigation{grid-template-columns:repeat(4,minmax(0,1fr))}.keyboard-command-row .keyboard-edit-tools button,.keyboard-command-row .keyboard-navigation button{color:color-mix(in srgb,var(--text) 22%,var(--text-secondary))}.keyboard-command-row .keyboard-edit-tools svg,.keyboard-command-row .keyboard-navigation svg{width:16px;height:16px;stroke-width:2.15}.keyboard-command-row button,.keyboard-grid button{display:grid;min-width:0;height:36px;place-items:center;padding:0 7px;color:var(--text);font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1;border:1px solid color-mix(in srgb,var(--keyboard-key-border) 58%,transparent);border-radius:6px;background:var(--keyboard-key);box-shadow:none;cursor:pointer;touch-action:manipulation;transition:color .1s ease,border-color .1s ease,background-color .1s ease,box-shadow .1s ease,transform 80ms ease}.keyboard-command-row button{color:var(--text-secondary);border-color:transparent;background:color-mix(in srgb,var(--surface-raised) 48%,transparent);box-shadow:none}.keyboard-command-row .keyboard-delete,.keyboard-command-row .keyboard-submit{grid-column:auto}.keyboard-command-row .keyboard-functions-button{display:flex;grid-column:1/-1;align-items:center;justify-content:center;gap:6px;color:color-mix(in srgb,var(--text) 20%,var(--text-secondary));border-color:color-mix(in srgb,var(--primary) 12%,var(--keyboard-key-border));background:color-mix(in srgb,var(--primary-soft) 24%,var(--keyboard-key))}.keyboard-functions-button svg{flex:0 0 auto;color:var(--brand)}.keyboard-command-row .keyboard-functions-button[aria-expanded=true]{color:color-mix(in srgb,var(--primary) 84%,var(--text));border-color:color-mix(in srgb,var(--primary) 36%,var(--keyboard-key-border));background:color-mix(in srgb,var(--primary-soft) 66%,var(--keyboard-key))}.keyboard-functions-button[aria-expanded=true] svg{color:var(--primary)}.keyboard-command-row .keyboard-delete{display:flex;align-items:center;justify-content:center;gap:5px;color:color-mix(in srgb,var(--text) 20%,var(--text-secondary));font-size:12px;font-weight:720;line-height:1;border-color:color-mix(in srgb,var(--keyboard-key-border) 62%,transparent);background:var(--keyboard-key)}.keyboard-command-row .keyboard-delete svg{width:16px;height:16px;flex:0 0 auto;stroke-width:2}.keyboard-subtract-glyph{display:block;width:13px;height:2px;border-radius:999px;background:currentColor}.keyboard-grid button.is-operator{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 16%,var(--keyboard-key-border));background:color-mix(in srgb,var(--primary-soft) 62%,var(--keyboard-key))}.keyboard-number-grid button:not(.is-operator){font-weight:750;background:color-mix(in srgb,var(--keyboard-key) 92%,var(--keyboard-surface))}.keyboard-number-grid button.is-operator{background:color-mix(in srgb,var(--primary-soft) 62%,var(--keyboard-key))}.keyboard-grid button.is-constant,.keyboard-grid button.is-function,.keyboard-grid button.is-operator,.keyboard-grid button.is-variable{font-family:Cambria Math,STIX Two Math,Georgia,serif}.keyboard-grid button.is-operator{font-size:17px}.keyboard-grid button.is-variable{color:var(--text-secondary);font-style:italic}@media (hover:hover){.keyboard-grid button:hover{color:var(--text);border-color:color-mix(in srgb,var(--primary) 24%,var(--keyboard-key-border));background:color-mix(in srgb,var(--primary-soft) 30%,var(--keyboard-key));box-shadow:0 3px 8px color-mix(in srgb,var(--text) 8%,transparent);transform:translateY(-1px)}.keyboard-grid button.is-operator:hover{color:var(--primary-hover);border-color:color-mix(in srgb,var(--primary) 28%,var(--keyboard-key-border));background:color-mix(in srgb,var(--primary-soft) 78%,var(--keyboard-key))}.keyboard-command-row button:hover{color:var(--text);border-color:transparent;background:var(--surface-hover);box-shadow:none}.keyboard-command-row .keyboard-functions-button:hover{color:var(--text);border-color:color-mix(in srgb,var(--primary) 26%,var(--keyboard-key-border));background:color-mix(in srgb,var(--primary-soft) 48%,var(--keyboard-key));box-shadow:0 3px 8px color-mix(in srgb,var(--text) 7%,transparent);transform:translateY(-1px)}.keyboard-command-row .keyboard-functions-button[aria-expanded=true]:hover{color:var(--primary-hover);border-color:color-mix(in srgb,var(--primary) 44%,var(--keyboard-key-border));background:color-mix(in srgb,var(--primary-soft) 78%,var(--keyboard-key))}.keyboard-command-row .keyboard-delete:hover{color:var(--text);border-color:color-mix(in srgb,var(--primary) 18%,var(--keyboard-key-border));background:color-mix(in srgb,var(--surface-hover) 62%,var(--keyboard-key));box-shadow:0 3px 8px color-mix(in srgb,var(--text) 7%,transparent);transform:translateY(-1px)}.keyboard-command-row .keyboard-submit:hover{color:var(--canvas);border-color:var(--brand-hover);background:var(--brand-hover);box-shadow:0 3px 9px color-mix(in srgb,var(--brand) 22%,transparent);transform:translateY(-1px)}}.keyboard-command-row button:active,.keyboard-grid button:active{transform:translateY(1px);box-shadow:none}.keyboard-close:focus-visible,.keyboard-command-row button:focus-visible,.keyboard-grid button:focus-visible,.keyboard-tabs button:focus-visible{position:relative;z-index:1;outline:2px solid var(--primary);outline-offset:2px}.keyboard-command-row .keyboard-submit{color:var(--canvas);font-size:12px;font-weight:750;border-color:var(--brand);background:var(--brand);box-shadow:0 2px 6px color-mix(in srgb,var(--brand) 20%,transparent)}.keyboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;min-height:162px;align-content:start}.keyboard-symbol-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.keyboard-grid-functions,.keyboard-grid-trig{grid-template-columns:repeat(4,minmax(0,1fr))}.keyboard-grid-functions button,.keyboard-grid-trig button{font-family:Cambria Math,STIX Two Math,Georgia,serif;font-size:15px}.math-keyboard.is-functions{height:min(360px,calc(100dvh - var(--topbar-height) - 18px))}.keyboard-key-panel-functions{min-width:0;min-height:0}.functions-picker{display:grid;height:286px;min-height:0;grid-template-rows:34px 30px 18px minmax(0,1fr);gap:5px}.functions-picker.is-searching{grid-template-rows:34px 18px minmax(0,1fr)}.function-search-row{display:grid;grid-template-columns:24px minmax(0,1fr) 30px;align-items:center;overflow:hidden;color:var(--text-tertiary);border:1px solid var(--border);border-radius:6px;background:var(--surface)}.function-search-row>svg{justify-self:end}.function-search-row input{min-width:0;height:32px;padding:0 7px;color:var(--text);font:500 11px Inter,ui-sans-serif,system-ui,sans-serif;border:0;outline:0;background:transparent}.function-search-row:focus-within{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 12%,transparent)}.function-search-row>button{display:grid;width:30px;height:30px;place-items:center;padding:0;color:var(--text-tertiary);border:0;background:transparent;cursor:pointer}.function-search-row>button:hover{color:var(--text);background:var(--surface-hover)}.function-category-tabs{display:flex;min-width:0;gap:4px;overflow-x:auto;scrollbar-width:none}.function-category-tabs::-webkit-scrollbar{display:none}.function-category-tabs button{display:inline-flex;height:28px;flex:0 0 auto;align-items:center;gap:4px;padding:0 8px;color:var(--text-tertiary);font-size:9px;font-weight:680;border:1px solid transparent;border-radius:999px;background:transparent;cursor:pointer}.function-category-tabs button:hover{color:var(--text);background:var(--surface-hover)}.function-category-tabs button[aria-pressed=true]{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 24%,var(--border));background:var(--primary-soft)}.function-results-summary{align-self:center;color:var(--text-tertiary);font-size:8px;font-weight:650;letter-spacing:.02em}.function-picker-scroll{min-height:0;overflow:auto;padding:0 4px 8px 0;scroll-padding-top:24px;scrollbar-color:var(--border-strong) transparent;scrollbar-gutter:stable;scrollbar-width:thin;overscroll-behavior:contain}.function-picker-scroll section+section{margin-top:8px}.function-picker-scroll h3{position:sticky;z-index:1;top:0;margin:0 0 4px;padding:3px 2px;color:var(--text-tertiary);font-size:8px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;background:var(--surface-raised);pointer-events:none}.function-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:4px}.function-picker-item{position:relative;min-width:0;scroll-margin-top:24px}.function-picker-insert{display:grid;width:100%;min-width:0;height:46px;align-content:center;justify-items:start;gap:1px;padding:4px 25px 4px 8px;color:var(--text);border:1px solid var(--border);border-bottom-color:var(--border-strong);border-radius:5px;background:var(--surface);box-shadow:0 1px 1px color-mix(in srgb,var(--text) 6%,transparent);cursor:pointer}.function-picker-insert>span{font:650 14px Cambria Math,STIX Two Math,Georgia,serif}.function-picker-insert>small,.function-picker-insert>span{overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap}.function-picker-insert>small{color:var(--text-tertiary);font-size:7px;font-weight:650}.function-picker-insert:hover:not(:disabled){border-color:var(--primary);background:color-mix(in srgb,var(--primary-soft) 46%,var(--surface))}.function-picker-insert:active:not(:disabled){transform:translateY(1px)}.function-picker-insert:disabled{cursor:not-allowed}.function-picker-item.is-planned .function-picker-insert{color:var(--text-secondary);border-style:dashed;background:color-mix(in srgb,var(--surface-raised) 75%,var(--surface));box-shadow:none;opacity:.68}.function-picker-favorite{position:absolute;top:4px;right:4px;display:grid;width:24px;height:24px;place-items:center;padding:0;color:var(--text-tertiary);border:0;border-radius:4px;background:transparent;cursor:pointer}.function-picker-favorite:hover,.function-picker-favorite[aria-pressed=true]{color:var(--primary);background:var(--primary-soft)}.function-picker-empty{display:grid;min-height:92px;place-content:center;gap:3px;padding:12px;color:var(--text-tertiary);text-align:center}.function-picker-empty strong{color:var(--text-secondary);font-size:11px}.function-picker-empty span{font-size:9px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.graph-region{position:relative;min-width:0;min-height:0;background:var(--canvas)}.graph-canvas,.graph-canvas-wrap{position:absolute;inset:0;width:100%;height:100%}.graph-canvas{display:block;cursor:grab;touch-action:none}.graph-canvas.is-panning{cursor:grabbing}.graph-canvas.is-manipulating-geometry{cursor:move}.graph-canvas.is-tracing:not(.is-panning,.is-manipulating-geometry){cursor:crosshair}.graph-canvas:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 62%,transparent);outline-offset:-3px}.graph-controls{position:absolute;top:14px;right:14px;display:grid;width:40px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:0 2px 8px color-mix(in srgb,var(--text) 7%,transparent)}.graph-controls button{display:grid;width:40px;height:39px;place-items:center;padding:0;border:0;border-bottom:1px solid var(--border);background:transparent;cursor:pointer;transition:color var(--motion-fast) ease,background-color var(--motion-fast) ease}.graph-controls button svg{width:17px;height:17px;stroke-width:1.8}.graph-controls .graph-control-zoom svg{width:18px;height:18px}.graph-controls .graph-control-fit svg{width:16.5px;height:16.5px}.graph-controls .graph-control-fit-menu{display:none}.graph-more-tools button svg{width:17.5px;height:17.5px}.graph-controls .graph-more-toggle{display:none}.graph-more-tools{display:contents}.graph-more-tools button span{display:none}@keyframes keyboard-dock-exit{0%{transform:translateY(0)}to{transform:translateY(100%)}}.graph-controls button:focus-visible{position:relative;z-index:1;outline-offset:-3px}.graph-controls button:last-child{border-bottom:0}.graph-controls button:not(:disabled):hover{color:var(--primary);background:var(--surface-hover)}.graph-controls button.is-active{color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,var(--surface))}.graph-controls button:disabled,.topbar-actions button:disabled{cursor:not-allowed}.graph-controls>span{height:5px;border-bottom:1px solid var(--border);background:var(--surface-raised)}.panel-collapse,.panel-reopen{position:absolute;z-index:20;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);border:1px solid var(--border);background:var(--surface);cursor:pointer;transition:color .12s ease,border-color .12s ease,background-color .12s ease,box-shadow .12s ease,transform .12s ease}.panel-collapse{top:11px;left:calc(var(--panel-width) - 1px);width:30px;height:30px;color:var(--text-tertiary);border-color:color-mix(in srgb,var(--border-strong) 78%,transparent);border-radius:999px;box-shadow:0 4px 12px color-mix(in srgb,var(--text) 9%,transparent)}.panel-collapse:hover{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 28%,var(--border));background:var(--primary-soft);box-shadow:0 5px 14px color-mix(in srgb,var(--text) 12%,transparent);transform:translateX(-1px)}.panel-collapse:active{box-shadow:0 2px 7px color-mix(in srgb,var(--text) 10%,transparent);transform:translateX(-1px) scale(.96)}.panel-reopen{top:14px;left:14px;height:34px;gap:7px;padding:0 10px;font-size:11px;font-weight:650;border-radius:999px;box-shadow:0 4px 12px color-mix(in srgb,var(--text) 8%,transparent)}.panel-reopen:hover{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 25%,var(--border));background:var(--primary-soft)}.panel-collapsed{grid-template-columns:0 minmax(0,1fr)}.panel-collapsed .expression-region{overflow:hidden;border:0}.mobile-sheet-handle{display:none}@media (min-width:761px) and (max-width:1100px){.save-status-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.save-status{width:30px;justify-content:center;padding:0}}@media (max-width:760px){:root{--topbar-height:52px}.brand-mark{width:28px;height:28px}.brand-mark img{width:27px;height:27px}.brand-name{display:block;font-size:clamp(11.25px,3.15vw,12.5px);letter-spacing:-.035em}.project-divider{margin:0 8px}.project-tabs{max-width:none;flex:1 1 auto;align-items:center;gap:0;margin-left:0}.project-tabs:before{display:none}.project-tabs-loading{width:auto;height:34px;flex:1 1 auto;overflow:hidden;border:1px solid transparent;border-radius:9px;background:color-mix(in srgb,var(--surface-raised) 48%,var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--border) 58%,transparent)}.project-title-loading-slot{width:auto;min-width:0;height:34px;flex:1 1 auto;padding-inline:9px 5px;border:0;border-radius:0;background:transparent}.project-title-skeleton{width:min(28vw,104px)}.project-tab-action-skeleton{display:none}.project-mobile-action-skeleton{display:grid;width:29px;height:34px;grid-template-columns:1fr;flex:0 0 29px;place-items:center;border:0;border-left:1px solid color-mix(in srgb,var(--border) 64%,transparent);border-radius:0;background:transparent}.project-title{width:min(42vw,180px);font-size:12px}.project-title.project-tab-title{margin-left:3px}.save-status{display:none}.save-status-error,.save-status-startup-timeout,.save-status-unavailable{display:flex}.backup-export span,.save-status-error .save-status-label,.save-status-startup-timeout .save-status-label,.save-status-unavailable .save-status-label{display:none}.startup-recovery-banner{top:calc(var(--topbar-height) + 8px);width:calc(100vw - 16px);grid-template-columns:34px minmax(0,1fr);gap:8px 10px;padding:12px}.startup-recovery-icon{grid-row:1}.startup-recovery-actions{grid-row:auto;grid-column:1/-1}.startup-recovery-actions button{flex:1}.startup-recovery-banner small{grid-column:1/-1}.connectivity-status{width:28px;padding:0;justify-content:center}.connectivity-status span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.pwa-update{right:10px;bottom:max(10px,env(safe-area-inset-bottom));left:10px;grid-template-columns:34px minmax(0,1fr) auto;max-width:none;padding:10px 38px 10px 10px}.pwa-update-later{display:none}.pwa-update-apply{padding:0 10px!important}.desktop-only{display:none!important}.workspace-3d-action{width:34px;justify-content:center;padding:0}.workspace-3d-action span{display:none}.workspace,.workspace.panel-collapsed{display:block;height:calc(100dvh - var(--topbar-height))}.workspace.keyboard-open>.expression-region,.workspace.keyboard-open>.graph-region,.workspace.keyboard-open>.sponsored-rail{margin-bottom:0}.graph-region{position:absolute;inset:0;transition:bottom .18s cubic-bezier(.2,.8,.2,1)}.workspace:not(.panel-collapsed)[data-sheet=peek] .graph-region{bottom:92px}.workspace:not(.panel-collapsed)[data-sheet=half] .graph-region{bottom:48dvh}.workspace:not(.panel-collapsed)[data-sheet=full] .graph-region{bottom:calc(100% - 8px)}.expression-region{position:absolute;z-index:20;right:0;bottom:0;left:0;height:48dvh;max-height:calc(100% - 8px);overflow:hidden;border:0;border-top:1px solid var(--border);border-radius:14px 14px 0 0;box-shadow:var(--shadow-overlay);transition:height .18s cubic-bezier(.2,.8,.2,1)}.expression-region>.expression-panel{height:calc(100% - 34px)}.expression-region[data-sheet=peek]{height:92px}.expression-region[data-sheet=half]{height:48dvh}.expression-region[data-sheet=full]{height:calc(100% - 8px)}.mobile-sheet-handle{display:flex;height:34px;touch-action:none;user-select:none;align-items:center;justify-content:center;border-bottom:1px solid var(--border);cursor:grab}.mobile-sheet-handle:active{cursor:grabbing}.mobile-sheet-handle>span{width:46px;height:4px;border-radius:4px;background:color-mix(in srgb,var(--text-tertiary) 62%,var(--border))}.mobile-sheet-handle>div{position:absolute;right:8px;display:flex;gap:0;overflow:hidden;border:1px solid color-mix(in srgb,var(--border-strong) 72%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--surface-raised) 72%,var(--surface))}.mobile-sheet-handle button{display:grid;width:35px;height:29px;place-items:center;padding:0;color:var(--text-secondary);border:0;border-radius:0;background:transparent;cursor:pointer}.mobile-sheet-handle button+button{border-left:1px solid color-mix(in srgb,var(--border-strong) 58%,var(--border))}.mobile-sheet-handle button:not(:disabled):active{color:var(--primary);background:var(--primary-soft)}.mobile-sheet-handle button:disabled{color:color-mix(in srgb,var(--text-tertiary) 42%,var(--surface));opacity:1;cursor:default}.workspace.is-sheet-dragging .expression-region{height:var(--mobile-sheet-drag-height);transition:none}.workspace.is-sheet-dragging .graph-region{bottom:var(--mobile-sheet-drag-height);transition:none}.panel-toolbar{min-height:54px;padding:7px 18px 7px 16px}.panel-toolbar h1{font-size:14px}.panel-toolbar .icon-button{width:38px;height:38px}.panel-add-menu{right:-2px}.expression-row{grid-template-columns:36px minmax(0,1fr);min-height:71px;padding-right:0}.expression-row:not(.is-table)>.expression-gutter{height:71px}.series-toggle{position:relative;width:36px;height:40px;border:0;background:transparent}.expression-row:has(.plot-item-drag) .series-toggle{transform:translateY(-10px)}.series-toggle:before{position:absolute;inset:6px 4px;border:1px solid color-mix(in srgb,var(--series-color) 70%,var(--border));border-radius:50%;background:color-mix(in srgb,var(--series-color) 10%,var(--surface));content:""}.series-toggle svg{z-index:1;width:14px;height:14px}.series-toggle:hover{background:transparent;box-shadow:none}.series-toggle:hover:before{background:color-mix(in srgb,var(--series-color) 16%,var(--surface))}.series-toggle.is-hidden{border:0;background:transparent}.series-toggle.is-hidden:before{border-color:var(--border);background:var(--surface-hover)}.expression-remove{width:44px;height:44px}.math-keyboard{position:static;width:auto;height:auto;flex:0 0 auto;padding:0 10px max(10px,env(safe-area-inset-bottom))}.math-keyboard.is-functions{height:auto}.keyboard-frame{width:100%;max-width:none}.keyboard-header{min-height:42px;margin-bottom:8px;border-bottom:1px solid var(--border)}.keyboard-tabs{gap:3px}.keyboard-content{display:flex;flex-direction:column;gap:5px}.keyboard-tabs button{height:36px;padding-inline:8px}.keyboard-close{width:40px;height:40px}.keyboard-command-row{order:-1;grid-template-columns:repeat(3,40px) minmax(72px,1fr)}.keyboard-command-row .keyboard-delete,.keyboard-command-row .keyboard-submit{grid-column:auto}.keyboard-command-row button,.keyboard-grid button{height:44px}.keyboard-grid button{height:42px}.keyboard-command-row .keyboard-delete span{display:none}.keyboard-grid{min-height:0;max-height:min(292px,max(244px,38dvh));overflow:auto;scrollbar-color:var(--border-strong) transparent;scrollbar-width:thin}.keyboard-grid,.keyboard-symbol-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.keyboard-basic-groups{gap:6px}.keyboard-group-label{display:none}.keyboard-key-group{gap:0}.keyboard-grid-functions,.keyboard-grid-trig{grid-template-columns:repeat(3,minmax(0,1fr))}.functions-picker{height:min(330px,42dvh);grid-template-rows:40px 34px 18px minmax(0,1fr)}.functions-picker.is-searching{grid-template-rows:40px 18px minmax(0,1fr)}.function-search-row input{height:38px;font-size:16px}.function-search-row>button{width:38px;height:38px}.function-category-tabs button{min-height:32px;padding-inline:10px}.function-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.function-picker-insert{height:48px}.function-picker-favorite{width:28px;height:28px}.parameter-warning button{min-height:32px}.graph-controls{top:10px;right:10px;width:44px;overflow:visible}.graph-controls button{width:44px;height:44px}.graph-controls>.graph-control-fit-primary,.graph-controls>span{display:none}.graph-controls .graph-more-toggle{position:relative;display:grid;border-bottom:0}.graph-more-toggle.has-active-tool:after{position:absolute;top:7px;right:7px;width:5px;height:5px;border:1px solid var(--surface);border-radius:50%;background:var(--primary);content:""}.graph-more-tools{position:absolute;z-index:24;right:calc(100% + 8px);bottom:0;display:none;width:172px;gap:3px;padding:6px;border:1px solid var(--border-strong);border-radius:11px;background:var(--surface);box-shadow:var(--shadow-overlay)}.graph-more-tools.is-open{display:grid}.graph-more-tools button{width:100%;height:44px;grid-template-columns:25px minmax(0,1fr);justify-items:start;padding:0 9px;color:var(--text-secondary);border:0;border-radius:7px}.graph-more-tools button span{display:block;overflow:hidden;font-size:11.5px;font-weight:680;text-overflow:ellipsis;white-space:nowrap}.graph-more-tools .graph-control-fit-menu{display:grid}}@media (max-width:760px) and (max-height:600px){.graph-controls{width:176px;grid-template-columns:repeat(4,44px)}.graph-controls>button{border-right:1px solid var(--border);border-bottom:0}.graph-controls>button:last-of-type{border-right:0}.graph-more-tools{top:calc(100% + 8px);right:0;bottom:auto}}@media (max-width:360px){.keyboard-basic-groups{grid-template-columns:1fr;max-height:min(300px,40dvh);padding:2px 2px 4px;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:var(--keyboard-key-border) transparent;scrollbar-width:thin}.keyboard-basic-groups .keyboard-grid{max-height:none;overflow:visible}}@media (min-width:1500px) and (min-height:720px){.workspace{grid-template-columns:var(--panel-width) minmax(0,1fr) 186px}.workspace.panel-collapsed{grid-template-columns:0 minmax(0,1fr) 186px}.math-keyboard{padding-right:204px}.sponsored-rail{position:relative;z-index:8;display:flex;min-width:0;align-items:center;flex-direction:column;padding:12px 13px;border-left:1px solid var(--border);background:var(--surface)}.sponsored-rail-heading{display:flex;width:160px;align-items:center;min-height:32px;margin-bottom:8px;color:var(--text-secondary);font-size:10px;font-weight:700;letter-spacing:.09em;line-height:1;text-transform:uppercase}.sponsored-card{position:relative;display:block;width:160px;height:600px;flex:0 0 600px;padding:0;border:0;background:transparent}.sponsored-placeholder{display:flex;width:100%;height:100%;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:var(--text-secondary);font-size:11px;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--surface-raised) 45%,var(--surface))}.sponsored-placeholder-mark{display:grid;width:32px;height:28px;place-items:center;color:var(--text-secondary);font-size:12px;font-weight:600;border:1px solid var(--border-strong);border-radius:5px}}@media (max-width:390px){.project-title{width:38vw}.topbar-actions{gap:0}.icon-button,.topbar-actions button{width:34px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root[data-motion=reduced] *,:root[data-motion=reduced] :after,:root[data-motion=reduced] :before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}@media (forced-colors:active){:root{--app-bg:Canvas;--canvas:Canvas;--surface:Canvas;--surface-raised:Canvas;--surface-hover:Highlight;--border:CanvasText;--border-strong:CanvasText;--text:CanvasText;--text-secondary:CanvasText;--text-tertiary:CanvasText;--primary:LinkText;--primary-hover:LinkText;--on-primary:Canvas;--primary-soft:Canvas;--brand:LinkText;--brand-hover:LinkText;--grid-minor:GrayText;--grid-major:CanvasText;--axis:CanvasText;--success:LinkText;--keyboard-surface:Canvas;--keyboard-key:ButtonFace;--keyboard-key-muted:ButtonFace;--keyboard-key-border:ButtonText;--keyboard-key-edge:ButtonText;--series-1:LinkText;--series-2:CanvasText;--series-3:Highlight;--series-4:LinkText;--series-5:CanvasText}.series-toggle,.setting-toggle i,.setting-toggle i span,.style-color{forced-color-adjust:none}}.topbar-actions .workspace-symbolic-action{display:inline-flex;width:auto;height:32px;align-items:center;gap:5px;padding:0 9px;color:var(--text-secondary);border:1px solid var(--border);border-radius:7px;background:var(--surface);font-size:11px;font-weight:750;cursor:pointer}.topbar-actions .workspace-symbolic-action:hover{color:var(--brand);background:var(--surface-hover)}@media (max-width:900px){.topbar-actions .workspace-symbolic-action{width:34px;justify-content:center;padding:0}.topbar-actions .workspace-symbolic-action span{display:none}}@media (min-width:769px){.panel-toolbar .keyboard-toggle{display:none}.keyboard-quick-toggle{position:fixed;z-index:29;bottom:0;left:calc(var(--panel-width) + 12px);display:inline-flex;min-width:91px;height:38px;align-items:center;justify-content:center;gap:6px;padding:0 10px 0 9px;color:var(--text);border:1px solid color-mix(in srgb,var(--border-strong) 78%,var(--border));border-bottom:0;border-radius:9px 9px 0 0;background:var(--surface-raised);box-shadow:0 -4px 12px color-mix(in srgb,var(--text) 9%,transparent),inset 0 1px color-mix(in srgb,white 55%,transparent);cursor:pointer;transition:bottom var(--motion-panel) cubic-bezier(.22,1,.36,1),transform var(--motion-fast) ease,color var(--motion-fast) ease,border-color var(--motion-fast) ease,background-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease}.keyboard-quick-toggle:hover{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 40%,var(--border-strong));background:color-mix(in srgb,var(--primary-soft) 62%,var(--surface-raised));box-shadow:0 -5px 14px color-mix(in srgb,var(--text) 11%,transparent),inset 0 1px color-mix(in srgb,white 60%,transparent);transform:translateY(-1px)}.keyboard-quick-toggle:focus-visible{color:var(--primary);border-color:var(--primary);outline:3px solid color-mix(in srgb,var(--primary) 38%,transparent);outline-offset:2px}.keyboard-quick-toggle:active{transform:translateY(0)}.keyboard-quick-toggle.is-open{display:none}.keyboard-quick-caret,.keyboard-quick-icon{flex:0 0 auto;stroke-width:1.8}.keyboard-quick-icon{color:var(--primary)}.keyboard-quick-label{font-size:12px;font-weight:700;letter-spacing:.01em;line-height:1}.keyboard-quick-caret{margin-left:1px;color:var(--text-tertiary);stroke-width:2}.keyboard-quick-toggle:focus-visible .keyboard-quick-caret,.keyboard-quick-toggle:hover .keyboard-quick-caret{color:currentColor}.workspace.panel-collapsed .keyboard-quick-toggle{display:none}.workspace.keyboard-open>.expression-region{margin-bottom:0}.math-keyboard{left:var(--panel-width);height:var(--keyboard-dock-height);padding:8px 16px 11px;border-top-color:color-mix(in srgb,var(--border-strong) 50%,var(--border));background:var(--keyboard-surface);box-shadow:0 -6px 18px color-mix(in srgb,var(--text) 8%,transparent)}.workspace.panel-collapsed .math-keyboard{left:0}.keyboard-frame{width:min(100%,940px)}.keyboard-header{min-height:28px;margin-bottom:6px}.keyboard-tabs button{height:28px;padding-inline:11px}.keyboard-title{display:inline-flex;align-items:center;gap:5px;color:var(--text-secondary);font-size:11px;font-weight:700;letter-spacing:-.005em;text-transform:none}.keyboard-title svg{width:13px;height:13px;stroke-width:1.8}.keyboard-close{display:flex;width:auto;height:28px;gap:6px;padding-inline:9px 7px;color:var(--text-secondary);border-radius:5px}.keyboard-content{grid-template-columns:minmax(0,1fr) 220px;gap:18px}.keyboard-basic-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.keyboard-command-row,.keyboard-key-group+.keyboard-key-group{padding-left:18px;border-left:0}.keyboard-group-label{color:color-mix(in srgb,var(--text-secondary) 84%,var(--text-tertiary));font-size:9.5px;font-weight:750;letter-spacing:.085em}.keyboard-grid{min-height:0;gap:6px}.keyboard-grid,.keyboard-symbol-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.keyboard-symbol-grid.is-greek-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.keyboard-command-row{position:relative;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;align-content:start;padding-top:0}.keyboard-edit-tools,.keyboard-navigation{gap:6px}.keyboard-command-row button,.keyboard-grid button{height:36px;color:var(--text);border-color:color-mix(in srgb,var(--keyboard-key-border) 56%,transparent);border-radius:6px;background:var(--keyboard-key);box-shadow:none}.keyboard-command-row button{color:var(--text-secondary);border-color:transparent;background:transparent;box-shadow:none}.keyboard-command-row .keyboard-functions-button{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:6px;color:color-mix(in srgb,var(--text) 20%,var(--text-secondary));border-color:color-mix(in srgb,var(--primary) 12%,var(--keyboard-key-border));background:color-mix(in srgb,var(--primary-soft) 24%,var(--keyboard-key))}.keyboard-command-row .keyboard-submit{height:36px;color:var(--canvas);border-color:var(--brand);background:var(--brand);box-shadow:0 2px 6px color-mix(in srgb,var(--brand) 20%,transparent)}.keyboard-grid button.is-operator{color:color-mix(in srgb,var(--primary) 86%,var(--text));border-color:color-mix(in srgb,var(--primary) 16%,var(--keyboard-key-border));background:color-mix(in srgb,var(--primary-soft) 62%,var(--keyboard-key))}.keyboard-function-popover{position:absolute;z-index:70;right:0;bottom:calc(100% + 36px);display:grid;width:min(480px,calc(100vw - var(--panel-width) - 32px));height:min(460px,calc(100dvh - var(--topbar-height) - var(--keyboard-dock-height) - 22px));min-height:290px;grid-template-rows:38px minmax(0,1fr);overflow:hidden;padding:0 10px 10px;border:1px solid var(--keyboard-key-border);border-radius:7px;background:var(--surface);box-shadow:0 14px 32px color-mix(in srgb,var(--text) 14%,transparent);transform-origin:bottom right;animation:keyboard-popover-enter .16s cubic-bezier(.22,1,.36,1) both}.keyboard-function-popover>header{display:flex;align-items:center;justify-content:space-between;color:var(--text);font-size:11px}.keyboard-function-popover>header strong{font-weight:700;letter-spacing:-.01em}.keyboard-function-popover>header button{display:grid;width:28px;height:28px;place-items:center;padding:0;color:var(--text-tertiary);border:0;border-radius:5px;background:transparent;box-shadow:none}.keyboard-function-popover>header button:focus-visible,.keyboard-function-popover>header button:hover{color:var(--text);outline:0;background:var(--surface-hover)}.keyboard-function-popover:has(.functions-picker.is-category-view){height:auto;min-height:0;max-height:calc(100dvh - var(--topbar-height) - var(--keyboard-dock-height) - 22px)}}@media (min-width:769px) and (max-height:600px){:root{--keyboard-dock-height:220px}.math-keyboard{padding-block:6px 8px}.keyboard-header{min-height:25px;margin-bottom:4px}.keyboard-close,.keyboard-tabs button{height:25px}.keyboard-command-row,.keyboard-edit-tools,.keyboard-grid,.keyboard-navigation{gap:5px}.keyboard-command-row .keyboard-submit,.keyboard-command-row button,.keyboard-grid button{height:34px}}@keyframes keyboard-popover-enter{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media (min-width:1500px) and (min-height:720px){.math-keyboard{right:186px;padding-right:16px}}@media (max-width:768px){.workspace.keyboard-open .first-run-guide{display:none}.math-keyboard{position:relative;padding:0 8px max(8px,env(safe-area-inset-bottom))}.keyboard-header{min-height:34px;margin-bottom:5px}.keyboard-title{display:inline-flex;align-items:center;gap:5px;color:var(--text-tertiary);font-size:9px;font-weight:750;letter-spacing:.07em;text-transform:uppercase}.keyboard-close{width:34px;height:34px;margin-left:auto;padding:0}.keyboard-close span{display:none}.keyboard-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px}.keyboard-content.is-greek-layout{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.keyboard-basic-groups{display:contents}.keyboard-grid,.keyboard-symbol-grid{grid-template-columns:repeat(4,minmax(0,1fr));max-height:none;overflow:visible;gap:5px}.keyboard-content.is-greek-layout .keyboard-symbol-grid.is-greek-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.keyboard-command-row button,.keyboard-grid button{height:40px}.keyboard-command-row{position:relative;order:0;grid-column:1/-1;grid-template-columns:repeat(12,minmax(0,1fr));gap:5px;padding-top:0}.keyboard-edit-tools,.keyboard-navigation{display:contents}.keyboard-command-row .keyboard-functions-button{display:flex;grid-column:span 2;align-items:center;justify-content:center;gap:5px}.keyboard-command-row .keyboard-delete,.keyboard-edit-tools button,.keyboard-navigation button{grid-column:span 1}.keyboard-command-row .keyboard-submit{grid-column:span 2}.keyboard-command-row .keyboard-delete span{display:none}.keyboard-function-popover{position:absolute;z-index:80;top:auto;right:8px;bottom:calc(100% + 8px);left:8px;display:grid;height:min(340px,calc(100dvh - var(--topbar-height) - 300px));min-height:220px;grid-template-rows:38px minmax(0,1fr);overflow:hidden;padding:0 9px 9px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface-raised);box-shadow:0 10px 26px color-mix(in srgb,var(--text) 15%,transparent);transform-origin:bottom center;animation:keyboard-popover-enter .16s cubic-bezier(.22,1,.36,1) both}.keyboard-function-popover>header{display:flex;align-items:center;justify-content:space-between;font-size:11px}.keyboard-function-popover>header button{display:grid;width:32px;height:32px;place-items:center;padding:0;color:var(--text-tertiary);border:0;background:transparent}}@media (max-width:430px){.keyboard-title{display:none}.keyboard-tabs,.keyboard-tabs button{flex:1}.keyboard-command-row{grid-template-columns:repeat(6,minmax(0,1fr))}.keyboard-edit-tools button:first-child{grid-area:1/1}.keyboard-edit-tools button:nth-child(2){grid-area:1/2}.keyboard-edit-tools button:nth-child(3){grid-area:1/3}.keyboard-command-row .keyboard-functions-button{grid-area:1/4/auto/span 2}.keyboard-command-row .keyboard-delete{grid-area:1/6}.keyboard-navigation button:first-child{grid-area:2/1}.keyboard-navigation button:nth-child(2){grid-area:2/2}.keyboard-navigation button:nth-child(3){grid-area:2/3}.keyboard-navigation button:nth-child(4){grid-area:2/4}.keyboard-command-row .keyboard-submit{grid-area:2/5/auto/span 2}}@media (max-width:768px) and (max-height:600px){.keyboard-header{min-height:32px;margin-bottom:3px}.keyboard-close,.keyboard-tabs button{height:30px}.keyboard-command-row,.keyboard-content,.keyboard-grid,.keyboard-symbol-grid{gap:3px}.keyboard-command-row button,.keyboard-grid button{height:32px}.math-keyboard{padding-bottom:max(4px,env(safe-area-inset-bottom))}}@media (max-width:768px) and (max-height:400px){.panel-toolbar{min-height:48px;padding-block:5px}.keyboard-header{min-height:28px;margin-bottom:2px}.keyboard-close,.keyboard-command-row button,.keyboard-grid button,.keyboard-tabs button{height:26px}}@media (prefers-reduced-motion:reduce){.keyboard-function-popover,.math-keyboard{animation:none}}:root[data-theme=contrast] .keyboard-command-row button,:root[data-theme=contrast] .keyboard-grid button{border-color:var(--keyboard-key-border)}:root[data-theme=contrast] .keyboard-command-row button{background:var(--keyboard-key-muted)}:root[data-theme=contrast] .keyboard-command-row .keyboard-submit{border-color:var(--brand);background:var(--brand)}@media (forced-colors:active){.keyboard-command-row button,.keyboard-grid button{border-color:ButtonText}}@media (min-width:769px){.panel-toolbar{min-height:50px;gap:8px;padding:7px 10px 7px 14px}.panel-toolbar h1{font-size:14px;font-weight:750;letter-spacing:-.015em}.panel-toolbar-actions{gap:3px}.panel-toolbar .icon-button{color:var(--text-secondary);border:1px solid transparent;border-radius:6px;background:transparent;opacity:1}.panel-toolbar .icon-button.subtle{color:var(--text-secondary)}.panel-toolbar .icon-button:focus-visible,.panel-toolbar .icon-button:hover{color:var(--text);border-color:var(--border);background:var(--surface-hover)}.panel-toolbar .panel-add-trigger{display:inline-flex;width:auto;min-width:74px;align-items:center;justify-content:center;gap:4px;padding:0 7px;border-color:var(--border-strong);background:var(--surface);box-shadow:none}.panel-add-trigger-label{display:inline;font-size:12px;font-weight:720;line-height:1}.panel-add-trigger-caret{display:block;flex:0 0 auto;transition:transform .14s ease}.panel-add-trigger.is-active .panel-add-trigger-caret{transform:rotate(180deg)}.panel-toolbar .panel-add-trigger.is-active,.panel-toolbar .panel-add-trigger:hover{color:var(--primary-hover);border-color:color-mix(in srgb,var(--primary) 34%,var(--border));background:var(--primary-soft)}.panel-toolbar .panel-collapse-inline{margin-left:3px;color:var(--text-secondary);border-color:var(--border);background:var(--surface)}.expression-list{scrollbar-color:color-mix(in srgb,var(--text-tertiary) 32%,transparent) transparent}.expression-row{grid-template-columns:38px minmax(0,1fr);padding-right:7px}.expression-row:hover:not(:focus-within):not(.is-selected){background:color-mix(in srgb,var(--surface-hover) 48%,var(--surface))}.expression-row.is-selected,.expression-row:focus-within{background:color-mix(in srgb,var(--primary-soft) 18%,var(--surface));box-shadow:inset 3px 0 0 var(--primary)}.expression-row.is-selected .expression-gutter,.expression-row:focus-within .expression-gutter{background:transparent}.expression-number{top:7px;color:var(--text-secondary)}.series-toggle{width:27px;height:27px;border-width:1.5px;background:var(--surface);transform:translateY(1px)}.series-toggle:hover{background:color-mix(in srgb,var(--series-color) 9%,var(--surface));box-shadow:none}.expression-input-wrap{padding:4px 34px 4px 7px}.math-field-host math-field{min-height:36px;padding:2px 1px;font-size:19px;--placeholder-color:color-mix(in srgb,var(--text-secondary) 82%,var(--text-tertiary));--neutral-400:color-mix(in srgb,var(--text-secondary) 82%,var(--text-tertiary))}.math-field-host math-field .ML__placeholder,.math-field-host math-field .ML__placeholder *,.math-field-host math-field::part(placeholder){color:color-mix(in srgb,var(--text-secondary) 82%,var(--text-tertiary))!important}.expression-remove{width:28px}.expression-blank-add{gap:8px}}.project-context{display:flex;min-width:0;align-items:center}@media (min-width:761px){.topbar{border-bottom-color:var(--border-strong);box-shadow:none}.brand-lockup{position:relative;align-self:stretch;padding-right:14px;margin-right:10px}.brand-lockup:after{position:absolute;top:50%;right:0;width:1px;height:24px;content:"";background:linear-gradient(to bottom,transparent,color-mix(in srgb,var(--border) 68%,transparent) 28%,color-mix(in srgb,var(--border) 68%,transparent) 72%,transparent);transform:translateY(-50%)}.project-tabs{gap:4px;margin-left:0}.project-tabs:before{display:none}.project-title.project-tab-title{height:34px;padding-inline:10px 5px;font-size:13px;font-weight:680;border-color:transparent;background:transparent}.project-title.project-tab-title:hover{border-color:var(--border);background:var(--surface-raised)}.save-status{width:auto;min-width:0;max-width:190px;flex:0 0 auto;box-sizing:border-box;min-height:24px;gap:5px;margin-left:8px;padding:0 8px 0 5px;color:var(--text-tertiary);font-size:10px;font-weight:620;border-color:color-mix(in srgb,var(--border) 72%,transparent);border-radius:999px;background:color-mix(in srgb,var(--surface-raised) 76%,transparent)}.save-status .save-status-icon{width:16px;height:16px;flex-basis:16px}.save-status-saved{color:var(--text-tertiary);border-color:color-mix(in srgb,var(--border) 68%,transparent);background:color-mix(in srgb,var(--surface-raised) 72%,transparent)}.save-status-saved .save-status-icon{color:color-mix(in srgb,var(--success) 78%,var(--text-secondary));background:transparent}.topbar-actions{gap:7px}.topbar-action-group{display:flex;align-items:center;gap:1px;padding:0;border:0;border-radius:0;background:transparent}.topbar-history-group{padding-inline:6px;margin-inline:2px;border-right:1px solid var(--border);border-left:1px solid var(--border)}.topbar-actions .topbar-action-group .icon-button,.topbar-actions .topbar-action-group .workspace-3d-action,.topbar-actions .topbar-action-group .workspace-symbolic-action{height:34px;border-color:transparent;border-radius:var(--radius-sm);background:transparent}.topbar-actions .topbar-action-group svg{width:17px;height:17px;stroke-width:1.8}.topbar-actions .topbar-action-group .icon-button{width:34px}.topbar-actions .topbar-action-group .workspace-3d-action,.topbar-actions .topbar-action-group .workspace-symbolic-action{padding-inline:10px;font-size:11.5px}.topbar-actions .topbar-action-group .icon-button:not(:disabled):hover,.topbar-actions .topbar-action-group .workspace-3d-action:hover,.topbar-actions .topbar-action-group .workspace-symbolic-action:hover{color:var(--brand);border-color:transparent;background:var(--surface);box-shadow:none}.expression-region{border-right-color:var(--border-strong);box-shadow:none}.panel-toolbar{border-bottom-color:var(--border-strong)}.graph-controls{border-color:var(--border-strong);box-shadow:0 2px 8px color-mix(in srgb,var(--text) 7%,transparent)}}@media (min-width:1500px) and (min-height:720px){.sponsored-rail{border-left-color:var(--border-strong);background:color-mix(in srgb,var(--surface-raised) 44%,var(--surface));box-shadow:none}.workspace{transition:grid-template-columns .21s cubic-bezier(.22,1,.36,1)}.workspace.sponsor-collapsed{grid-template-columns:var(--panel-width) minmax(0,1fr) 0}.workspace.panel-collapsed.sponsor-collapsed{grid-template-columns:0 minmax(0,1fr) 0}.workspace.sponsor-collapsed .math-keyboard{right:0;padding-right:16px}.sponsored-rail{transition:opacity .14s ease,transform .21s cubic-bezier(.22,1,.36,1),padding-inline .21s cubic-bezier(.22,1,.36,1)}.sponsor-collapsed .sponsored-rail{width:0;max-width:0;padding-inline:0;overflow:hidden;visibility:hidden;opacity:0;border-left-color:transparent;box-shadow:none;transform:translateX(14px);pointer-events:none}.sponsored-rail-toggle{display:grid;width:32px;height:32px;flex:0 0 auto;place-items:center;margin-left:auto;padding:0;color:var(--text-tertiary);border:1px solid transparent;border-radius:6px;background:transparent;cursor:pointer}.sponsored-rail-toggle:focus-visible,.sponsored-rail-toggle:hover{color:var(--text);border-color:var(--border);background:var(--surface)}.sponsor-collapsed .sponsored-rail-reopen{position:absolute;z-index:18;top:50%;right:0;display:grid;width:27px;height:48px;place-items:center;padding:0;color:var(--text-secondary);border:1px solid var(--border-strong);border-right:0;border-radius:8px 0 0 8px;background:var(--surface);box-shadow:-2px 2px 8px color-mix(in srgb,var(--text) 7%,transparent);transform:translateY(-50%);cursor:pointer}.sponsor-collapsed .sponsored-rail-reopen:focus-visible,.sponsor-collapsed .sponsored-rail-reopen:hover{color:var(--primary);background:var(--primary-soft)}}@media (max-width:760px){.topbar{gap:0;padding-right:max(8px,env(safe-area-inset-right));padding-left:max(8px,env(safe-area-inset-left))}.brand-lockup{min-width:0;flex:0 0 auto;gap:5px}.project-context{min-width:72px;flex:1 1 auto;margin-left:9px;overflow:hidden}.topbar .project-tabs{width:100%;max-width:none;margin-left:0}.topbar-action-group{display:contents}.topbar-actions .topbar-settings-action,.topbar-history-group,.topbar-mode-group{display:none}.topbar-actions{flex:0 0 auto;gap:0;margin-left:4px}.topbar-actions .icon-button{width:34px;height:34px;border-radius:8px}}@media (max-width:430px){.project-context{max-width:164px;flex-grow:0;margin-left:auto}}@media (max-width:389px){.brand-name{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.project-context{min-width:64px}}@media (min-width:761px) and (max-width:1100px){.save-status{width:30px;min-width:30px;max-width:30px;flex-basis:30px;padding:0}}