:root{--khipu-bg-app:#030507;--khipu-bg-panel:#070a0d;--khipu-bg-elevated:#101418;--khipu-bg-sidebar:#080c10;--khipu-text:#f4f7f5;--khipu-text-muted:#9aa7a0;--khipu-text-soft:#c9d4ce;--khipu-border:#1c2522;--khipu-border-soft:#26332e;--khipu-accent:#7ef7b2;--khipu-accent-2:#34d399;--khipu-accent-3:#10b981;--khipu-success:#7ef7b2;--khipu-warning:#e9c46a;--khipu-error:#ef476f;--khipu-hover:#7ef7b21f;--khipu-focus-ring:0 0 0 2px #7ef7b28c;--khipu-radius-sm:6px;--khipu-radius-md:8px;--khipu-radius-lg:12px;--khipu-radius-pill:999px;--khipu-space-1:4px;--khipu-space-2:8px;--khipu-space-3:12px;--khipu-space-4:16px;--khipu-space-5:24px;--khipu-font-ui:"DM Sans", "Segoe UI", system-ui, sans-serif;--khipu-font-mono:Consolas, "Cascadia Mono", ui-monospace, monospace;--khipu-shadow:0 18px 40px #0000005c;--khipu-header-height:48px;--khipu-btn-height:36px}:root,.theme-midnight{--bg-app:#030507;--bg-panel:#070a0d;--bg-cell:#0b0f12;--bg-elevated:#101418;--bg-sidebar:#080c10;--bg-code:#050708;--border-subtle:#1c2522;--border-soft:#26332e;--text-main:#f4f7f5;--text-muted:#9aa7a0;--text-soft:#c9d4ce;--khipu-mint:#7ef7b2;--khipu-green:#34d399;--khipu-dark-green:#10b981;--khipu-gold:#e9c46a;--khipu-orange:#f4a261;--khipu-red:#ef476f;--status-success:#7ef7b2;--status-error:#ef476f;--status-warning:#e9c46a;--accent-primary:#7ef7b2;--accent-secondary:#34d399;--accent-tertiary:#a7f3d0;--khipu-gradient:linear-gradient(90deg, #10b981 0%, #34d399 45%, #7ef7b2 100%);--code-bg:#050708;--code-gutter-bg:#070a0d;--code-gutter-text:#52615a;--code-text:#e8f0ec;--code-cursor:#7ef7b2;--code-selection:#7ef7b22e;--code-active-line:#7ef7b214;--code-border:#1c2522;--code-scrollbar-thumb:#37604a;--code-scrollbar-track:#0a0d0d;--syntax-keyword:#7ef7b2;--syntax-string:#e9c46a;--syntax-number:#f4a261;--syntax-function:#8be9c6;--syntax-variable:#e8f0ec;--syntax-comment:#6f7f76;--syntax-type:#a7f3d0;--syntax-operator:#9aa7a0;--syntax-punctuation:#7f8c86;--syntax-property:#b8f7d4;--syntax-builtin:#5eead4;--syntax-error:#ef476f;--syntax-constant:var(--syntax-number);--syntax-heading:var(--syntax-keyword);--editor-gutter-bg:var(--code-gutter-bg);--editor-line-number:var(--code-gutter-text);--editor-active-line:var(--code-active-line);--editor-selection:var(--code-selection);--app-header-height:88px}:root{--bg:var(--bg-app);--app-top:var(--bg-panel);--cell:var(--bg-cell);--toolbar:var(--bg-elevated);--output:var(--bg-code);--output-head:var(--bg-panel);--line:var(--border-subtle);--line-hover:color-mix(in srgb, var(--khipu-mint) 32%, transparent);--text:var(--text-main);--muted:var(--text-muted);--faint:color-mix(in srgb, var(--text-muted) 48%, transparent);--accent:var(--khipu-mint);--accent-bright:color-mix(in srgb, var(--khipu-mint) 78%, white);--accent-soft:color-mix(in srgb, var(--khipu-mint) 14%, transparent);--green:var(--status-success);--red:var(--status-error);--shadow-elevated:0 18px 40px #0000005c;color:var(--text-main);background:var(--bg-app);font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}:root[data-theme=light],.theme-light{--bg-app:#f8fafc;--bg-panel:#fff;--bg-cell:#fff;--bg-elevated:#f1f5f9;--bg-sidebar:#f8fafc;--bg-code:#fbfaf5;--border-subtle:#cbd5c0;--border-soft:#cbd5e1;--text-main:#172018;--text-muted:#72806e;--text-soft:#1e293b;--faint:#475569;--khipu-mint:#166534;--khipu-green:#15803d;--khipu-dark-green:#14532d;--khipu-gold:#d97706;--khipu-orange:#ea580c;--khipu-red:#b91c1c;--status-success:#166534;--status-error:#b91c1c;--status-warning:#d97706;--accent-primary:#166534;--accent-secondary:#2563eb;--accent-tertiary:#5b21b6;--khipu-gradient:linear-gradient(90deg, #e11d48 0%, #ea580c 35%, #d97706 60%, #166534 100%);--code-bg:#fbfaf5;--code-gutter-bg:#f1f5ed;--code-gutter-text:#7a8876;--code-text:#172018;--code-cursor:#166534;--code-selection:#16653429;--code-active-line:#16653412;--code-border:#cbd5c0;--code-scrollbar-thumb:#a3bca1;--code-scrollbar-track:#f1f5ed;--syntax-keyword:#166534;--syntax-string:#9a6700;--syntax-number:#b45309;--syntax-function:#0f766e;--syntax-variable:#172018;--syntax-comment:#72806e;--syntax-type:#5b21b6;--syntax-operator:#475569;--syntax-punctuation:#64748b;--syntax-property:#0369a1;--syntax-builtin:#047857;--syntax-error:#b91c1c;--syntax-constant:var(--syntax-number);--syntax-heading:#166534;--editor-gutter-bg:var(--code-gutter-bg);--editor-line-number:var(--code-gutter-text);--editor-active-line:var(--code-active-line);--editor-selection:var(--code-selection)}:root[data-theme=navy-blue],.theme-navy-blue{--bg-app:#08111f;--bg-panel:#0d1b2e;--bg-cell:#10233b;--bg-elevated:#132b46;--bg-sidebar:#0a1829;--bg-code:#06111f;--border-subtle:#17324a;--border-soft:#315677;--text-main:#e6f1ff;--text-muted:#a9bcd0;--text-soft:#cbd9e8;--khipu-mint:#7dd3fc;--khipu-green:#38bdf8;--khipu-dark-green:#0284c7;--khipu-gold:#f6d365;--khipu-orange:#fdba74;--khipu-red:#fb7185;--status-success:#7dd3fc;--status-error:#fb7185;--status-warning:#f6d365;--accent-primary:#7dd3fc;--accent-secondary:#93c5fd;--accent-tertiary:#c4b5fd;--khipu-gradient:linear-gradient(90deg, #60a5fa 0%, #38bdf8 45%, #7dd3fc 100%);--code-bg:#06111f;--code-gutter-bg:#081827;--code-gutter-text:#536a82;--code-text:#e6f1ff;--code-cursor:#7dd3fc;--code-selection:#7dd3fc2e;--code-active-line:#7dd3fc14;--code-border:#17324a;--code-scrollbar-thumb:#345f7c;--code-scrollbar-track:#091828;--syntax-keyword:#7dd3fc;--syntax-string:#f6d365;--syntax-number:#fdba74;--syntax-function:#93c5fd;--syntax-variable:#e6f1ff;--syntax-comment:#6b7f95;--syntax-type:#c4b5fd;--syntax-operator:#a8c7e6;--syntax-punctuation:#7d94aa;--syntax-property:#bae6fd;--syntax-builtin:#67e8f9;--syntax-error:#fb7185;--syntax-constant:var(--syntax-number);--syntax-heading:#93c5fd;--editor-gutter-bg:var(--code-gutter-bg);--editor-line-number:var(--code-gutter-text);--editor-active-line:var(--code-active-line);--editor-selection:var(--code-selection)}:root[data-theme=slate-mint],.theme-slate-mint{--bg-app:#202722;--bg-panel:#26302a;--bg-cell:#222b26;--bg-elevated:#2d3932;--bg-sidebar:#202a25;--bg-code:#17231d;--border-subtle:#2a4034;--border-soft:#4c5a52;--text-main:#e7f0ea;--text-muted:#a5aea7;--text-soft:#d3dad5;--khipu-mint:#a7f3d0;--khipu-green:#7cc7b6;--khipu-dark-green:#5aae9c;--khipu-gold:#e9d985;--khipu-orange:#f4b183;--khipu-red:#f28b82;--status-success:#a7f3d0;--status-error:#f28b82;--status-warning:#e9d985;--accent-primary:#a7f3d0;--accent-secondary:#a9d2e6;--accent-tertiary:#cdeccf;--khipu-gradient:linear-gradient(90deg, #f28b82 0%, #e0a977 38%, #e9d985 64%, #a7f3d0 100%);--code-bg:#17231d;--code-gutter-bg:#1a2a22;--code-gutter-text:#718477;--code-text:#e7f0ea;--code-cursor:#a7f3d0;--code-selection:#a7f3d02e;--code-active-line:#a7f3d014;--code-border:#2a4034;--code-scrollbar-thumb:#4b6f5d;--code-scrollbar-track:#1b2922;--syntax-keyword:#a7f3d0;--syntax-string:#e9d985;--syntax-number:#f4b183;--syntax-function:#b7f7cc;--syntax-variable:#e7f0ea;--syntax-comment:#87998d;--syntax-type:#cdeccf;--syntax-operator:#b7c5ba;--syntax-punctuation:#94a39a;--syntax-property:#d6f7e2;--syntax-builtin:#8ee6c1;--syntax-error:#f28b82;--syntax-constant:var(--syntax-number);--syntax-heading:#e9d985;--editor-gutter-bg:var(--code-gutter-bg);--editor-line-number:var(--code-gutter-text);--editor-active-line:var(--code-active-line);--editor-selection:var(--code-selection)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--bg-app);min-width:320px;margin:0}button,select,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{background:var(--bg-app);flex-direction:column;width:min(1600px,100vw - 48px);max-width:none;min-height:100dvh;margin:0 auto;display:flex}.app-shell.layout-fit{box-sizing:border-box;width:100%;max-width:100%;margin:0;padding-inline:12px}.app-shell.layout-fit .notebook-shell{max-width:100%;padding-inline:0}.app-shell.layout-fit .workspace-layout{gap:12px;width:100%}.app-shell.layout-fit .cell-card,.app-shell.layout-fit .code-editor,.app-shell.layout-fit .output-table-wrap,.app-shell.layout-fit .dataframe-preview{max-width:100%}.app-shell.layout-fit .output-table-wrap,.app-shell.layout-fit .table-scroll{overflow-x:auto}.return-dashboard-link{color:var(--text-muted,#8b9cb3);white-space:nowrap;padding:4px 6px;font-size:12px;text-decoration:none}.return-dashboard-link:hover{color:var(--khipu-mint,#34d399);text-decoration:underline}.layout-toggle{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-panel) 80%, transparent);border-radius:999px;align-items:center;gap:4px;padding:2px 4px 2px 8px;display:inline-flex}.layout-toggle-label{color:var(--text-muted,#8b9cb3);margin-right:2px;font-size:11px}.layout-toggle-btn{color:var(--text-muted,#8b9cb3);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:600}.layout-toggle-btn.on{background:color-mix(in srgb, var(--khipu-mint) 18%, transparent);color:var(--text-main)}.layout-toggle-btn:hover{color:var(--text-main)}.app-header{z-index:50;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg-panel) 96%, transparent);position:sticky;top:0}.header-shell{grid-template-columns:auto minmax(420px,1fr) auto;align-items:center;gap:16px 20px;padding:8px 18px 6px;display:grid}.header-breadcrumb-row{grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:24px;padding:0 18px 6px;display:grid}.header-panel-spacer{pointer-events:none;flex-shrink:0}.header-panel-spacer.nav-spacer{width:176px}.header-panel-spacer.nav-spacer.collapsed{width:54px}.header-panel-spacer.toc-spacer{width:248px}.header-panel-spacer.toc-spacer.collapsed{width:52px}.brand-block{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:3px 8px;min-width:0;display:grid}.logo-wrap{flex-shrink:0;grid-area:1/1/span 2;justify-content:center;align-self:center;align-items:center;width:64px;height:64px;display:flex}.brand-logo{object-fit:contain;filter:drop-shadow(0 0 16px #7ef7b229);width:100%;height:100%;display:block}.brand-title{color:var(--text-main);letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;grid-area:1/2;margin:0;font-size:18px;font-weight:760;line-height:1.1;overflow:hidden}.brand-details{flex-direction:column;grid-area:2/2;gap:1px;min-width:0;display:flex}.brand-tagline,.brand-user-label{color:var(--muted);margin:0;font-size:11.5px;line-height:1.2}.brand-user-name{color:var(--khipu-mint);font-weight:inherit}.account-badge{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.credits-chip{border:1px solid var(--line);background:color-mix(in srgb, var(--khipu-mint) 12%, transparent);color:var(--text-main);cursor:pointer;border-radius:999px;padding:2px 10px;font-size:11.5px;font-weight:600;line-height:1.5;transition:border-color .12s,background .12s}.credits-chip:hover{border-color:var(--khipu-mint);background:color-mix(in srgb, var(--khipu-mint) 20%, transparent)}.credits-chip.low{background:#d983242e;border-color:#d98324}.credits-low-warning{color:#f0a44a;font-size:11px;font-weight:600;text-decoration:none}.credits-low-warning:hover{text-decoration:underline}.credits-unavailable{color:var(--muted);font-size:11px}.auth-gate{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-gate-card{border:1px solid var(--line);background:var(--bg-elevated);text-align:center;border-radius:18px;flex-direction:column;align-items:center;gap:14px;width:min(460px,100%);padding:36px 32px;display:flex;box-shadow:0 30px 80px #00000080}.auth-gate-logo{object-fit:contain;width:56px;height:56px}.auth-gate-card h1{color:var(--text-main);margin:0;font-size:20px;font-weight:650}.auth-gate-card p{color:var(--muted);margin:0;font-size:13.5px;line-height:1.55}.auth-gate-error{color:#f08a8a}.auth-gate-button{background:var(--khipu-mint);color:#06231c;border-radius:10px;margin-top:6px;padding:10px 20px;font-size:13.5px;font-weight:650;text-decoration:none}.auth-gate-button:hover{filter:brightness(1.06)}.credits-modal-backdrop{z-index:200}.credits-modal{border:1px solid var(--line);background:var(--bg-elevated);border-radius:16px;width:min(460px,100%);padding:24px;box-shadow:0 30px 80px #0000008c}.credits-modal h2{color:var(--text-main);margin:0 0 12px;font-size:17px;font-weight:650}.credits-modal p{color:var(--text-main);margin:0 0 10px;font-size:13.5px;line-height:1.55}.credits-modal-note{color:var(--muted);font-size:12.5px}.credits-modal-actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.credits-modal-primary{background:var(--khipu-mint);color:#06231c;border-radius:10px;padding:9px 18px;font-size:13px;font-weight:650;text-decoration:none}.credits-modal-primary:hover{filter:brightness(1.06)}.credits-modal-secondary{border:1px solid var(--line);color:var(--text-main);cursor:pointer;background:0 0;border-radius:10px;padding:9px 18px;font-size:13px;font-weight:600}.credits-modal-secondary:hover{border-color:var(--khipu-mint)}.notebook-command-area{justify-content:flex-start;align-items:center;min-width:0;display:flex}.header-actions{flex-shrink:0;align-self:center;align-items:center;gap:6px;display:flex}.header-actions button{height:32px;color:var(--text-muted);background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:12px;transition:background .15s,color .15s;display:inline-flex}.theme-select-wrap{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-elevated) 78%, transparent);height:32px;color:var(--text-muted);border-radius:8px;align-items:center;gap:6px;padding:0 8px;font-size:11px;display:inline-flex}.theme-select-wrap span{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-weight:700}.theme-select-wrap select{height:28px;color:var(--text-main);background:0 0;border:0;outline:none;font-size:12px}.theme-select-wrap option{background:var(--bg-elevated);color:var(--text-main)}.header-actions button:hover{background:var(--accent-soft);color:var(--khipu-mint)}.notebook-canvas{width:100%;min-width:0}.notebook-toolbar{flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:8px;width:100%;min-width:0;display:flex}.notebook-path{width:100%;min-width:0;color:var(--text-muted);flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:2px;font-size:11px;line-height:1.3;display:flex}.notebook-breadcrumb{border-top:0;padding:0}.notebook-breadcrumb .path-part{align-items:center;gap:2px;min-width:0;display:inline-flex}.notebook-breadcrumb .path-current{max-width:min(420px,46vw);color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.notebook-breadcrumb .path-link{color:var(--text-muted);cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.notebook-breadcrumb .path-link:hover{color:var(--khipu-mint);text-decoration:underline}.draft-recovery-banner,.reset-undo-banner,.draft-storage-warning{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--accent-soft) 70%, var(--bg-panel));color:var(--text-soft);justify-content:space-between;align-items:center;gap:12px;padding:8px 14px;font-size:12px;display:flex}.draft-storage-warning{background:color-mix(in srgb, #c47b3a 18%, var(--bg-panel))}.reset-undo-banner{background:color-mix(in srgb, #3b82f6 16%, var(--bg-panel))}.btn-undo-reset{color:#fff;cursor:pointer;background:#3b82f6;border:1px solid #3b82f6;border-radius:8px;margin-left:auto;padding:5px 10px;font-weight:650}.draft-recovery-banner button,.reset-undo-banner button:not(.btn-undo-reset),.draft-storage-warning button{color:var(--text-muted);cursor:pointer;background:0 0;border:0;font-size:16px;line-height:1}.toc-title-row{align-items:center;gap:6px;min-width:0;display:flex}.toc-back-button{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-elevated) 76%, transparent);width:26px;height:26px;color:var(--text-muted);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;padding:0;font-size:13px;display:inline-flex}.toc-back-button:hover:not(:disabled){border-color:color-mix(in srgb, var(--khipu-mint) 34%, transparent);background:var(--accent-soft);color:var(--khipu-mint)}.toc-back-button.disabled,.toc-back-button:disabled{cursor:default;opacity:.42}.notebook-title-input{border:1px solid var(--line);background:var(--bg-cell);width:min(280px,100%);min-width:140px;height:32px;color:var(--text-main);border-radius:8px;padding:0 10px;font-size:13px;transition:border-color .15s}.notebook-title-input:focus{border-color:var(--line-hover);outline:none}.save-status{color:var(--muted);white-space:nowrap;flex-shrink:0;font-size:11px}.save-status.saved{color:var(--khipu-mint)}.save-status.unsaved{color:var(--khipu-gold)}.save-status.error{color:var(--status-error)}.notebook-toolbar>button,.notebook-toolbar .notebook-open>button,.notebook-controls>button,.notebook-open>button{border:1px solid var(--line);height:32px;color:var(--text-muted);background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:0 11px;font-size:12px;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.notebook-toolbar>button:hover,.notebook-toolbar .notebook-open>button:hover,.notebook-controls>button:hover,.notebook-open>button:hover{border-color:var(--line-hover);color:var(--khipu-mint);background:#7ef7b214}.notebook-toolbar .save-btn{color:var(--khipu-mint);background:#7ef7b21a;border-color:#7ef7b259;font-weight:600}.notebook-toolbar .save-btn:hover:not(:disabled){background:#7ef7b229;border-color:#7ef7b280}.notebook-toolbar .save-btn:disabled{opacity:.55;cursor:not-allowed}.notebook-open{position:relative}.path-part{align-items:center;display:inline-flex}.path-sep{color:var(--text-muted);margin:0 5px}.path-segment{color:var(--text-muted)}.path-current{color:var(--khipu-mint);font-weight:600}.modal-backdrop{z-index:120;background:color-mix(in srgb, var(--bg-app) 72%, transparent);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.save-location-modal,.move-to-modal,.dataframe-drop-modal{border:1px solid var(--line);background:var(--bg-elevated);border-radius:14px;width:min(420px,100%);padding:16px;box-shadow:0 28px 70px #0000008c}.modal-header h3{color:var(--text-main);margin:0 0 12px;font-size:15px;font-weight:650}.modal-copy{color:var(--text-muted);margin:0 0 14px;font-size:12.5px;line-height:1.45}.dataframe-name-inline{color:var(--text-main);font-family:Cascadia Code,Consolas,monospace;font-weight:600}.modal-field{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.modal-field span{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:600}.folder-picker{flex-direction:column;gap:2px;max-height:220px;margin-bottom:14px;display:flex;overflow-y:auto}.folder-pick{width:100%;color:var(--text-muted);text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;padding:7px 8px;font-size:12.5px;transition:background .15s,border-color .15s,color .15s;display:flex}.folder-pick:hover{color:var(--text-main);background:#7ef7b20f}.folder-pick.active{background:var(--accent-soft);color:var(--khipu-mint);border-color:#7ef7b24d}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.modal-actions button{border:1px solid var(--line);height:34px;color:var(--text-muted);background:0 0;border-radius:8px;padding:0 12px;font-size:12px}.modal-actions .modal-primary{background:var(--accent-soft);color:var(--khipu-mint);border-color:#7ef7b259}.modal-actions .modal-danger{border-color:color-mix(in srgb, var(--status-error) 35%, transparent);background:color-mix(in srgb, var(--status-error) 12%, transparent);color:var(--status-error)}.modal-actions .modal-danger:hover:not(:disabled){background:color-mix(in srgb, var(--status-error) 18%, transparent)}.modal-actions button:disabled{cursor:not-allowed;opacity:.6}.workspace-context-menu{z-index:130;border:1px solid var(--line);background:var(--bg-elevated);border-radius:10px;flex-direction:column;gap:2px;min-width:190px;padding:6px;display:flex;position:fixed;box-shadow:0 22px 56px #0000008c}.context-menu-item{width:100%;color:var(--text-muted);text-align:left;background:0 0;border:0;border-radius:7px;justify-content:space-between;align-items:center;gap:10px;padding:7px 9px;font-size:12.5px;transition:background .15s,color .15s;display:flex}.context-menu-item:hover:not(.disabled){color:var(--khipu-mint);background:#7ef7b214}.context-menu-item.disabled{cursor:default;opacity:.45}.context-menu-soon{color:var(--khipu-gold);letter-spacing:.04em;text-transform:uppercase;font-size:9px;font-weight:700}.explorer-item.drop-target{background:#7ef7b21a;border-color:#7ef7b273}.explorer-item.dragging{opacity:.55}.notebook-menu{z-index:60;border:1px solid var(--line);background:var(--bg-elevated);border-radius:10px;width:290px;max-height:320px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto;box-shadow:0 18px 46px #00000073}.notebook-menu-empty{color:var(--muted);margin:0;padding:10px;font-size:12px}.notebook-menu-item{align-items:stretch;gap:4px;display:flex}.notebook-menu-load{text-align:left;background:0 0;border:0;border-radius:8px;flex-direction:column;flex:1;align-items:flex-start;gap:2px;min-width:0;padding:8px 10px;transition:background .15s;display:flex}.notebook-menu-load:hover{background:#7ef7b214}.notebook-menu-title{width:100%;color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.notebook-menu-date{color:var(--muted);font-size:11px}.notebook-menu-delete{width:26px;color:var(--faint);background:0 0;border:0;border-radius:8px;flex-shrink:0;font-size:15px;transition:background .15s,color .15s}.notebook-menu-delete:hover{color:var(--status-error);background:#f43f5e1f}.notebook-shell{flex:1;padding:12px 0 64px}.workspace-layout{grid-template-columns:auto auto minmax(0,1fr) auto;justify-content:stretch;align-items:start;gap:24px;display:grid}.nav-rail-wrap{top:var(--app-header-height);z-index:70;align-self:start;position:sticky}.nav-rail{border:1px solid var(--line);background:var(--bg-sidebar);border-radius:14px;flex-direction:column;gap:2px;width:176px;max-height:calc(100dvh - 112px);padding:8px 7px;display:flex;overflow-y:auto}.nav-rail.collapsed{align-items:center;width:54px}.nav-item{width:100%;height:34px;color:var(--text-muted);background:0 0;border:0;border-radius:8px;flex-shrink:0;align-items:center;gap:9px;padding:0 10px;font-size:12.5px;transition:background .15s,color .15s;display:flex;position:relative}.nav-rail.collapsed .nav-item{justify-content:center;width:36px;padding:0}.nav-item:hover{color:var(--khipu-mint);background:#7ef7b214}.nav-item.active{background:var(--accent-soft);color:var(--khipu-mint)}.nav-item.disabled{cursor:default;opacity:.42}.nav-item.disabled:hover{color:var(--text-muted);background:0 0}.nav-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.nav-pin{background:var(--khipu-mint);border-radius:50%;width:6px;height:6px;position:absolute;top:7px;right:7px}.nav-rail.collapsed .nav-pin{top:4px;right:4px}.nav-divider{background:var(--line);flex-shrink:0;width:100%;height:1px;margin:5px 0}.nav-rail.collapsed .nav-divider{width:24px}.create-menu{z-index:80;border:1px solid var(--line);background:var(--bg-elevated);border-radius:12px;flex-direction:column;gap:2px;width:200px;padding:6px;display:flex;position:absolute;top:44px;left:calc(100% + 10px);box-shadow:0 22px 56px #00000080}.create-menu-item{height:32px;color:var(--text-muted);background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:0 9px;font-size:12.5px;transition:background .15s,color .15s;display:flex;position:relative}.create-menu-item:hover:not(.disabled){color:var(--khipu-mint);background:#7ef7b214}.create-menu-item.disabled{opacity:.45}.create-menu-soon{color:var(--khipu-gold);letter-spacing:.05em;text-transform:uppercase;margin-left:auto;font-size:9.5px;font-weight:700}.workspace-flyouts{z-index:75;align-items:stretch;gap:10px;display:flex;position:absolute;top:0;left:calc(100% + 10px)}.flyout-panel{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-elevated) 98%, transparent);max-height:calc(100dvh - 112px);box-shadow:var(--shadow-elevated);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.flyout-panel.browser{width:280px}.flyout-panel.contents{width:304px}.flyout-panel.recovery-panel{width:min(460px,100vw - 120px)}.recovery-subtitle{color:var(--text-muted);margin:2px 0 0;font-size:11px;line-height:1.35}.recovery-filters{flex-wrap:wrap;gap:6px;padding:0 12px 10px;display:flex}.recovery-filter{border:1px solid var(--line);color:var(--text-muted);background:0 0;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:650}.recovery-filter.active,.recovery-filter:hover{border-color:color-mix(in srgb, var(--khipu-mint) 35%, transparent);background:var(--accent-soft);color:var(--khipu-mint)}.recovery-list{flex-direction:column;flex:1;gap:8px;padding:0 12px 12px;display:flex;overflow:auto}.recovery-event{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-app) 55%, transparent);border-radius:10px;grid-template-columns:28px minmax(0,1fr) auto;align-items:start;gap:8px;padding:8px 9px;display:grid}.recovery-event-icon{background:color-mix(in srgb, var(--accent-soft) 80%, transparent);width:28px;height:28px;color:var(--khipu-mint);border-radius:8px;justify-content:center;align-items:center;font-size:13px;display:inline-flex}.recovery-event-icon[data-action=delete],.recovery-event-icon[data-action=drop]{background:color-mix(in srgb, var(--status-error) 12%, transparent);color:var(--status-error)}.recovery-event-body{min-width:0}.recovery-event-top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.recovery-event-top strong{color:var(--text-main);font-size:12px;font-weight:700}.recovery-event-time,.recovery-event-meta{color:var(--text-muted);font-size:10.5px}.recovery-event-name{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.recovery-event-meta{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.recovery-event-meta span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.recovery-restore-button{border:1px solid color-mix(in srgb, var(--khipu-mint) 35%, transparent);background:var(--accent-soft);color:var(--khipu-mint);border-radius:8px;padding:5px 8px;font-size:11px;font-weight:700}.recovery-restore-button:hover{background:color-mix(in srgb, var(--khipu-mint) 18%, transparent)}.recovery-empty-button{border:1px solid color-mix(in srgb, var(--status-error) 30%, transparent);background:color-mix(in srgb, var(--status-error) 10%, transparent);height:28px;color:var(--status-error);border-radius:8px;padding:0 8px;font-size:11px;font-weight:700}.recovery-empty-button:hover{background:color-mix(in srgb, var(--status-error) 16%, transparent)}.recovery-badge{color:var(--text-muted);white-space:nowrap;font-size:10.5px;font-weight:700}.recovery-badge.restored{color:var(--khipu-mint)}.recovery-badge.purged{color:var(--status-error)}.recovery-status{color:var(--khipu-mint);margin:0 12px 8px;font-size:11.5px}.recovery-error{color:var(--status-error);margin:0 12px 8px;font-size:11.5px}.flyout-header-actions{align-items:center;gap:2px;display:inline-flex}.explorer-rail-button.pinned{background:var(--accent-soft);color:var(--khipu-mint)}.explorer-rail-button.danger:hover{color:var(--status-error);background:#f43f5e1f}.explorer-chevron-button{width:18px;color:var(--text-muted);background:0 0;border:0;flex-shrink:0;justify-content:center;align-self:stretch;align-items:center;padding:0;font-size:12px;display:inline-flex}.explorer-chevron-button:hover{color:var(--khipu-mint)}.explorer-header{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--khipu-mint) 3%, transparent);justify-content:space-between;align-items:center;gap:8px;width:100%;padding:6px 6px 6px 11px;display:flex}.explorer-title,.right-panel-title{color:var(--accent-primary);letter-spacing:.01em;text-transform:none;margin:0;font-family:inherit;font-size:18px;font-weight:700}.explorer-rail-button{width:30px;height:30px;color:var(--text-muted);background:0 0;border:0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.explorer-rail-button:hover{color:var(--khipu-mint);background:#7ef7b214}.explorer-body{flex:1;padding:8px;overflow-y:auto}.explorer-section-label{color:var(--text-muted);letter-spacing:.07em;text-transform:uppercase;margin:10px 4px 4px;font-size:10px;font-weight:700}.explorer-section-label:first-child{margin-top:2px}.explorer-empty,.explorer-placeholder{color:var(--text-muted);margin:0 4px 4px;padding:2px 0 4px;font-size:11px;line-height:1.45}.explorer-file-status{color:var(--khipu-mint);margin:0 4px 6px;font-size:11px;line-height:1.4}.workspace-file-input{display:none}.raw-back-button{border:1px solid color-mix(in srgb, var(--khipu-mint) 24%, transparent);background:color-mix(in srgb, var(--khipu-mint) 7%, transparent);width:calc(100% - 8px);color:var(--text-muted);text-align:left;border-radius:8px;margin:2px 4px 6px;padding:5px 8px;font-size:11px}.raw-back-button:hover{border-color:color-mix(in srgb, var(--khipu-mint) 42%, transparent);color:var(--khipu-mint)}.explorer-item{border:1px solid #0000;border-radius:9px;align-items:stretch;gap:2px;transition:background .15s,border-color .15s;display:flex}.explorer-item:hover{background:#7ef7b20f}.explorer-item.active{background:var(--accent-soft);border-color:#7ef7b24d}.explorer-item-main{min-width:0;color:var(--text-muted);text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:6px;padding:5px 4px 5px 6px;display:flex}.explorer-item-main .tiny-icon{opacity:.8;flex-shrink:0}.explorer-item-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.folder-main,.file-main{font-size:12.5px}.file-type-badge{border:1px solid color-mix(in srgb, var(--khipu-mint) 28%, transparent);background:color-mix(in srgb, var(--khipu-mint) 9%, transparent);width:42px;color:var(--khipu-mint);letter-spacing:.04em;border-radius:6px;flex-shrink:0;justify-content:center;padding:2px 4px;font-size:9px;font-weight:800;display:inline-flex}.folder-main .explorer-item-title{flex:1;width:auto}.explorer-folder-count{color:var(--text-muted);flex-shrink:0;padding-right:2px;font-size:10px}.explorer-item-title{width:100%;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.explorer-item.active .explorer-item-title{color:var(--khipu-mint)}.explorer-item:hover .explorer-item-title{color:var(--text-main)}.explorer-item.active:hover .explorer-item-title{color:var(--khipu-mint)}.explorer-item-date{color:var(--text-muted);opacity:.75;font-size:10.5px}.explorer-item-delete{color:#0000;background:0 0;border:0;border-radius:7px;flex-shrink:0;width:22px;font-size:14px;transition:background .15s,color .15s}.explorer-item:hover .explorer-item-delete{color:var(--text-muted)}.explorer-item-delete:hover{color:var(--status-error);background:#f43f5e1f}.toc-panel{top:var(--app-header-height);width:248px;max-height:calc(100dvh - var(--app-header-height) - 24px);border:1px solid var(--line);background:color-mix(in srgb, var(--bg-sidebar) 94%, transparent);border-radius:14px;align-self:start;position:sticky;overflow:hidden}.toc-panel.collapsed{flex-direction:column;align-items:center;gap:8px;width:52px;padding:8px 0;display:flex}.toc-rail-label{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;writing-mode:vertical-rl;font-size:10px;font-weight:700}.toc-body{max-height:calc(100dvh - 158px);padding:8px;overflow-y:auto}.toc-empty{color:var(--text-muted);margin:0;padding:8px;font-size:11px;line-height:1.45}.toc-node{min-width:0}.toc-item-row{border-radius:8px;align-items:center;gap:4px;width:100%;min-width:0;margin-bottom:2px;display:flex}.toc-item-row.level-2{padding-left:12px}.toc-item-row.level-3{padding-left:24px}.toc-item-row.level-4{padding-left:34px}.toc-item-row:hover,.toc-item-row.active{background:color-mix(in srgb, var(--khipu-mint) 12%, transparent)}.toc-item-row.ancestor-active{background:color-mix(in srgb, var(--khipu-mint) 7%, transparent)}.toc-chevron,.toc-item-label{color:var(--text-muted);background:0 0;border:0}.toc-chevron{border-radius:6px;place-items:center;width:18px;min-width:18px;height:28px;padding:0;font-size:14px;line-height:1;display:inline-grid}.toc-chevron:not(.empty):hover{background:color-mix(in srgb, var(--khipu-mint) 10%, transparent);color:var(--khipu-mint)}.toc-chevron.empty{cursor:default}.toc-item-label{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;padding:7px 7px 7px 0;font-size:12px;line-height:1.35;display:block;overflow:hidden}.toc-item-row:hover .toc-item-label,.toc-item-row:hover .toc-chevron,.toc-item-row.active .toc-item-label,.toc-item-row.active .toc-chevron{color:var(--khipu-mint)}.toc-children{min-width:0}.right-utility-panel{top:var(--app-header-height);width:clamp(320px,23vw,420px);max-height:calc(100dvh - var(--app-header-height) - 24px);border:1px solid var(--line);background:color-mix(in srgb, var(--bg-sidebar) 94%, transparent);border-radius:14px;flex-direction:column;align-self:start;min-height:360px;display:flex;position:sticky;overflow:hidden}.right-utility-panel.collapsed{align-items:center;gap:8px;width:52px;min-height:220px;padding:8px 0}.right-panel-header{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--khipu-mint) 3%, transparent);justify-content:space-between;align-items:center;gap:10px;padding:10px 10px 9px 12px;display:flex}.right-panel-toggle{width:30px;height:30px;color:var(--text-muted);background:0 0;border:0;border-radius:8px;flex-shrink:0;place-items:center;font-size:14px;display:inline-grid}.right-panel-toggle:hover{background:var(--accent-soft);color:var(--khipu-mint)}.right-panel-rail-label{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;writing-mode:vertical-rl;font-size:10px;font-weight:700}.right-panel-tabs{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:7px;display:grid}.right-panel-tab{min-width:0;color:var(--text-muted);background:0 0;border:1px solid #0000;border-radius:8px;padding:7px 6px;font-size:10.5px;font-weight:700;line-height:1.15}.right-panel-tab:hover,.right-panel-tab.active{border-color:color-mix(in srgb, var(--khipu-mint) 28%, transparent);background:var(--accent-soft);color:var(--khipu-mint)}.right-panel-body{flex:1;padding:10px;overflow-y:auto}.utility-section{flex-direction:column;gap:10px;display:flex}.utility-section-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.utility-section h3,.utility-card h3{color:var(--text-main);margin:0;font-size:13px;font-weight:720}.utility-section-header p{color:var(--text-muted);margin:3px 0 0;font-size:11px;line-height:1.4}.utility-card{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-elevated) 72%, transparent);border-radius:12px;padding:10px}.utility-field{color:var(--text-muted);letter-spacing:.07em;text-transform:uppercase;gap:5px;font-size:10px;font-weight:800;display:grid}.utility-field input,.utility-field textarea{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-elevated) 72%, transparent);width:100%;color:var(--text-main);font:inherit;letter-spacing:0;resize:vertical;text-transform:none;border-radius:9px;outline:none;padding:8px 9px;font-size:12px;font-weight:500;line-height:1.4}.utility-field input:focus,.utility-field textarea:focus{border-color:color-mix(in srgb, var(--khipu-mint) 44%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--khipu-mint) 18%, transparent)}.utility-meta-list{gap:8px;margin:10px 0 0;display:grid}.utility-meta-list div{min-width:0}.utility-meta-list dt{color:var(--text-muted);letter-spacing:.07em;text-transform:uppercase;font-size:9.5px;font-weight:800}.utility-meta-list dd{overflow-wrap:anywhere;color:var(--text-soft);margin:2px 0 0;font-size:11.5px;line-height:1.35}.utility-action-stack{gap:6px;display:grid}.utility-action-stack button,.utility-small-button,.utility-link-button{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-elevated) 82%, transparent);color:var(--text-muted);text-align:left;border-radius:8px;padding:7px 9px;font-size:11px;font-weight:700}.utility-action-stack button:hover:not(:disabled),.utility-small-button:hover:not(:disabled),.utility-link-button:hover{border-color:color-mix(in srgb, var(--khipu-mint) 34%, transparent);background:var(--accent-soft);color:var(--khipu-mint)}.utility-action-stack button:disabled{opacity:.5}.utility-small-button{text-align:center;flex-shrink:0}.utility-link-button{background:0 0;border-color:#0000;width:fit-content;padding-left:0}.utility-placeholder,.utility-error,.utility-success{border:1px dashed var(--line);color:var(--text-muted);border-radius:10px;margin:0;padding:10px;font-size:11.5px;line-height:1.45}.utility-error{border-color:color-mix(in srgb, var(--status-error) 35%, transparent);color:var(--status-error)}.utility-success{border-color:color-mix(in srgb, var(--status-success) 35%, transparent);color:var(--status-success)}.version-history{gap:8px;display:grid}.version-history-item{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-elevated) 62%, transparent);border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;padding:9px;display:grid}.version-history-main{gap:2px;min-width:0;display:grid}.version-id{color:var(--khipu-mint);text-overflow:ellipsis;white-space:nowrap;font-family:Cascadia Code,Consolas,monospace;font-size:10.5px;font-weight:700;overflow:hidden}.version-name{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:760;overflow:hidden}.version-title{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:650;overflow:hidden}.version-meta,.version-message{color:var(--text-muted);overflow-wrap:anywhere;font-size:10.5px;line-height:1.35}.version-history-actions{flex-direction:column;gap:5px;display:flex}.version-history-actions button,.version-delete-button{border:1px solid color-mix(in srgb, var(--status-error) 24%, transparent);color:var(--text-muted);background:0 0;border-radius:8px;padding:5px 7px;font-size:10.5px;font-weight:700}.version-history-actions button:first-child{border-color:color-mix(in srgb, var(--khipu-mint) 28%, transparent)}.version-history-actions button:first-child:hover{background:var(--accent-soft);color:var(--khipu-mint)}.version-delete-button:hover{background:color-mix(in srgb, var(--status-error) 12%, transparent);color:var(--status-error)}.dataframe-list{gap:6px;display:grid}.dataframe-list-item{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-elevated) 62%, transparent);text-align:left;border-radius:10px;align-items:flex-start;gap:4px;width:100%;min-width:0;padding:7px 7px 7px 9px;display:flex}.dataframe-list-item:hover{border-color:color-mix(in srgb, var(--khipu-mint) 34%, transparent);background:var(--accent-soft)}.dataframe-list-item-body{text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;gap:2px;min-width:0;padding:0;display:flex}.dataframe-list-item-header{align-items:center;gap:6px;min-width:0;display:flex}.dataframe-drop-button{width:20px;height:20px;color:var(--text-muted);cursor:pointer;opacity:.72;background:0 0;border:0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;line-height:1;transition:color .12s,background .12s,opacity .12s;display:inline-flex}.dataframe-drop-button:hover{background:color-mix(in srgb, var(--status-error) 12%, transparent);color:var(--status-error);opacity:1}.dataframe-name{min-width:0;color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:Cascadia Code,Consolas,monospace;font-size:12px;font-weight:700;overflow:hidden}.dataframe-meta{color:var(--text-muted);font-size:10.5px}.dataframe-detail-table-wrap{border:1px solid var(--line);border-radius:10px;overflow-x:auto}.dataframe-detail-table{border:0;border-radius:0;min-width:100%;font-size:11px}.dataframe-detail-table thead,.dataframe-detail-table tbody{display:grid}.dataframe-detail-table tr{grid-template-columns:minmax(0,1fr) minmax(88px,108px);align-items:center;display:grid}.dataframe-detail-table th,.dataframe-detail-table td{vertical-align:middle;min-width:0;height:36px;padding:6px 10px}.dataframe-column-table-row{cursor:grab}.dataframe-column-table-row.dragging{opacity:.62}.dataframe-detail-table td:first-child{grid-template-columns:15px minmax(0,auto) 20px minmax(0,1fr);align-items:center;gap:5px;min-width:0;display:grid}.dataframe-detail-table td:nth-child(2){justify-content:flex-start;align-items:center;display:flex}.dataframe-drag-handle{width:15px;color:var(--text-muted);letter-spacing:-.12em;place-items:center;font-size:11px;line-height:1;display:inline-grid}.dataframe-column-label{min-width:0;color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;line-height:1;overflow:hidden}.dataframe-column-original{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;line-height:1;overflow:hidden}.dataframe-rename-input{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-code) 45%, var(--bg-elevated));min-width:0;color:var(--text-main);border-radius:7px;width:100%;padding:3px 6px;font-size:11px;line-height:1.1}.dataframe-rename-icon{width:20px;height:20px;color:var(--text-muted);background:0 0;border:1px solid #0000;border-radius:6px;flex-shrink:0;place-items:center;padding:0;font-size:11px;line-height:1;display:inline-grid}.dataframe-rename-icon:hover{border-color:color-mix(in srgb, var(--khipu-mint) 28%, transparent);background:var(--accent-soft);color:var(--khipu-mint)}.dataframe-type-picker{align-items:center;gap:5px;max-width:100%;min-height:22px;padding-right:18px;display:inline-flex;position:relative}.dataframe-type-picker:after{content:"▾";width:16px;height:18px;color:var(--text-muted);pointer-events:none;place-items:center;font-size:12px;line-height:1;display:inline-grid;position:absolute;right:1px}.dataframe-type-picker:hover:after,.dataframe-type-picker:focus-within:after{color:var(--khipu-mint)}.dataframe-current-dtype{max-width:100%;color:var(--text-muted);white-space:nowrap;align-items:center;gap:3px;font-size:10.5px;line-height:1;display:inline-flex}.dataframe-target-dtype{color:var(--khipu-mint);font-weight:800}.dataframe-dtype-select{appearance:none;color:#0000;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;width:100%;height:100%;padding:0;font-size:0;position:absolute;inset:0}.dataframe-dtype-select:hover,.dataframe-dtype-select:focus{border-color:color-mix(in srgb, var(--khipu-mint) 28%, transparent);outline:none}.dataframe-dtype-select option{background:var(--bg-elevated);color:var(--text-main);font-size:12px}.dataframe-dtype-select option:checked{background:var(--accent-soft);color:var(--khipu-mint)}.dataframe-transform-section{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-elevated) 52%, transparent);border-radius:12px;gap:8px;padding:9px;display:grid}.dataframe-column-editor,.dataframe-filter-list{gap:7px;display:grid}.dataframe-column-row{border:1px solid var(--line);border-radius:10px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:7px;padding:7px;display:grid}.dataframe-column-order{gap:4px;display:grid}.dataframe-column-order button,.dataframe-filter-row button{border:1px solid var(--line);color:var(--text-muted);background:0 0;border-radius:7px;padding:4px 6px;font-size:10.5px;font-weight:700}.dataframe-column-order button:hover:not(:disabled),.dataframe-filter-row button:hover{background:var(--accent-soft);color:var(--khipu-mint)}.dataframe-column-order button:disabled{opacity:.42}.dataframe-column-main,.dataframe-filter-row{gap:5px;min-width:0;display:grid}.dataframe-column-original,.dataframe-column-dtype{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.dataframe-column-main input,.dataframe-column-main select,.dataframe-filter-row input,.dataframe-filter-row select{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-code) 45%, var(--bg-elevated));min-width:0;color:var(--text-main);border-radius:8px;padding:6px 7px;font-size:11.5px}.dataframe-column-main input:focus,.dataframe-column-main select:focus,.dataframe-filter-row input:focus,.dataframe-filter-row select:focus{border-color:color-mix(in srgb, var(--khipu-mint) 42%, transparent);outline:none}.terminal-panel{flex-direction:column;gap:8px;min-height:300px;display:flex}.terminal-tabs{gap:4px;display:flex;overflow-x:auto}.terminal-tab-wrap,.terminal-add-tab{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-elevated) 72%, transparent);color:var(--text-muted);border-radius:8px;flex-shrink:0;font-size:11px}.terminal-tab-wrap{align-items:center;display:inline-flex;overflow:hidden}.terminal-tab,.terminal-close-tab{color:inherit;font:inherit;background:0 0;border:0}.terminal-tab{padding:6px 4px 6px 8px}.terminal-rename-input{width:110px;min-width:0;color:var(--text-main);font:inherit;background:0 0;border:0;outline:none;padding:6px 4px 6px 8px}.terminal-close-tab{padding:6px 7px 6px 3px}.terminal-add-tab{padding:6px 8px}.terminal-tab-wrap.active,.terminal-tab-wrap:hover,.terminal-add-tab:hover{border-color:color-mix(in srgb, var(--khipu-mint) 34%, transparent);color:var(--khipu-mint)}.terminal-close-tab:hover{background:color-mix(in srgb, var(--status-error) 12%, transparent);color:var(--status-error)}.terminal-output{border:1px solid var(--line);background:var(--bg-code);min-height:220px;color:var(--text-soft);border-radius:10px;flex:1;padding:10px;font-family:Cascadia Code,Consolas,monospace;font-size:11px;line-height:1.55;overflow:auto}.terminal-input-line{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-code) 82%, transparent);color:var(--khipu-mint);border-radius:10px;align-items:center;gap:7px;padding:7px 9px;font-family:Cascadia Code,Consolas,monospace;font-size:11px;display:flex}.terminal-input-line input{min-width:0;color:var(--text-main);font:inherit;background:0 0;border:0;outline:none;flex:1}.preview-modal-backdrop{z-index:160;background:color-mix(in srgb, var(--bg-app) 74%, transparent);justify-content:center;align-items:center;padding:22px;display:flex;position:fixed;inset:0}.preview-modal{border:1px solid var(--line);background:var(--bg-panel);width:min(1100px,92vw);height:min(760px,82vh);max-height:82vh;box-shadow:var(--shadow-elevated);border-radius:16px;flex-direction:column;gap:10px;padding:12px;display:flex;overflow:hidden}.preview-modal-header{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding-bottom:10px;display:grid}.preview-copy-button,.preview-close-button{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-elevated) 76%, transparent);color:var(--text-muted);border-radius:9px;justify-content:center;align-items:center;gap:5px;padding:7px 9px;font-size:11px;font-weight:700;display:inline-flex}.preview-copy-button:hover:not(:disabled),.preview-close-button:hover{border-color:color-mix(in srgb, var(--khipu-mint) 34%, transparent);background:var(--accent-soft);color:var(--khipu-mint)}.preview-copy-button:disabled{opacity:.52}.preview-close-button{width:32px;height:32px;padding:0;font-size:18px}.preview-modal-title{text-align:center;min-width:0}.preview-modal-title p{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;margin:0 0 2px;font-size:10.5px;font-weight:700}.preview-modal-title h2{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;font-weight:760;overflow:hidden}.preview-table-wrap{border:1px solid var(--line);border-radius:12px;flex:1;min-height:0;overflow:auto}.preview-table{border:0;border-radius:0;min-width:100%;font-size:12px}.preview-table th,.preview-table td{padding:9px 11px}.preview-table th{z-index:1;position:sticky;top:0}.dataframe-tools-toolbar{grid-template-columns:minmax(180px,1fr) repeat(4,auto);align-items:end;gap:8px;display:grid}.dataframe-tools-toolbar.compact{grid-template-columns:repeat(3,auto);justify-content:start}.dataframe-tools-toolbar button,.dataframe-tools-inline-actions button,.dataframe-tools-column-row button{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-elevated) 76%, transparent);color:var(--text-muted);border-radius:8px;padding:7px 9px;font-size:11px;font-weight:700}.dataframe-tools-toolbar button:hover:not(:disabled),.dataframe-tools-inline-actions button:hover,.dataframe-tools-column-row button:hover:not(:disabled){border-color:color-mix(in srgb, var(--khipu-mint) 34%, transparent);background:var(--accent-soft);color:var(--khipu-mint)}.dataframe-tools-grid{grid-template-columns:minmax(0,1.45fr) minmax(260px,.9fr);gap:10px;min-height:0;display:grid}.dataframe-tools-panel{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-elevated) 58%, transparent);border-radius:12px;gap:8px;min-width:0;max-height:220px;padding:9px;display:grid;overflow:auto}.dataframe-tools-columns{gap:6px;min-width:680px;display:grid}.dataframe-tools-columns-head,.dataframe-tools-column-row{grid-template-columns:1.05fr 1fr 1.15fr .9fr auto;align-items:center;gap:7px;display:grid}.dataframe-tools-columns-head{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:800}.dataframe-tools-column-row{border:1px solid var(--line);border-radius:10px;padding:7px}.dataframe-tools-column-name,.dataframe-tools-type,.dataframe-tools-sort{gap:4px;min-width:0;display:grid}.dataframe-tools-column-name span,.dataframe-tools-type span,.dataframe-tools-sort span{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.dataframe-tools-column-name div,.dataframe-tools-sort,.dataframe-tools-inline-actions{align-items:center;gap:4px;display:flex}.dataframe-tools-column-row input,.dataframe-tools-column-row select{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-code) 45%, var(--bg-elevated));min-width:0;color:var(--text-main);border-radius:8px;padding:6px 7px;font-size:11.5px}.dataframe-active-filters{flex-wrap:wrap;gap:6px;display:flex}.dataframe-active-filters button{border:1px solid color-mix(in srgb, var(--khipu-mint) 28%, transparent);background:var(--accent-soft);color:var(--khipu-mint);border-radius:999px;padding:5px 8px;font-size:10.5px;font-weight:700}.preview-column-header{align-items:center;gap:6px;min-width:120px;display:flex;position:relative}.preview-column-header>span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.preview-sort-button,.preview-filter-button{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-elevated) 76%, transparent);color:var(--text-muted);border-radius:7px;flex-shrink:0;place-items:center;margin-left:auto;padding:0;font-weight:800;display:inline-grid}.preview-sort-button{width:24px;height:24px;font-size:12px}.preview-filter-button{width:28px;height:26px;margin-left:0;font-size:13px}.preview-sort-button:hover,.preview-filter-button:hover,.preview-sort-button.active{border-color:color-mix(in srgb, var(--khipu-mint) 34%, transparent);background:var(--accent-soft);color:var(--khipu-mint)}.preview-column-indicator{border:1px solid color-mix(in srgb, var(--khipu-mint) 28%, transparent);color:var(--khipu-mint);border-radius:999px;padding:1px 5px;font-size:9px;font-weight:800}.preview-column-menu{z-index:8;border:1px solid var(--line);background:var(--bg-panel);width:min(320px,90vw);min-width:280px;max-width:360px;box-shadow:var(--shadow-elevated);border-radius:10px;gap:5px;padding:8px;display:grid;position:absolute;top:calc(100% + 6px);right:0}.preview-column-menu-portal{z-index:320;width:min(320px,90vw);min-width:280px;max-width:360px;max-height:min(360px,100vh - 16px);position:fixed;top:0;left:0;right:auto;overflow:auto}.preview-filter-editor input,.preview-filter-editor select,.preview-apply-filter{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-elevated) 76%, transparent);width:100%;color:var(--text-main);text-align:left;border-radius:7px;padding:6px 7px;font-size:11px}.preview-apply-filter{cursor:pointer;text-align:center;font-weight:700}.preview-apply-filter:hover{border-color:color-mix(in srgb, var(--khipu-mint) 34%, transparent);background:var(--accent-soft);color:var(--khipu-mint)}.preview-filter-editor{border-top:0;gap:5px;margin-top:0;padding-top:0;display:grid}.preview-distinct-values{border:1px solid var(--line);border-radius:8px;gap:2px;max-height:180px;padding:4px;display:grid;overflow:auto}.preview-distinct-values label{color:var(--text-soft);border-radius:6px;grid-template-columns:16px minmax(0,1fr);align-items:center;column-gap:8px;padding:4px 6px;font-size:11px;display:grid}.preview-distinct-values label input{width:14px;height:14px;margin:0}.preview-distinct-values label span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.preview-distinct-values label:has(input:checked){background:var(--accent-soft);color:var(--khipu-mint)}.preview-profile-loading{color:var(--text-muted);font-size:10.5px}@media (width<=900px){.dataframe-tools-toolbar,.dataframe-tools-grid{grid-template-columns:1fr}}.notebook{flex-direction:column;gap:14px;width:100%;min-width:0;display:flex}.app-error,.cell{border:1px solid var(--line);background:var(--cell);border-radius:15px;overflow:hidden}.app-error{color:#fecaca;background:#7f1d1d2e;border-color:#f8717159;margin-bottom:12px;padding:12px;font-size:12px}.cell{transition:border-color .15s,box-shadow .15s,opacity .15s,transform .15s;box-shadow:0 18px 46px #0000002e}.cell:hover{border-color:var(--line-hover)}.cell.active,.cell.focused,.cell:focus-within{border-color:var(--line-hover);box-shadow:0 0 0 1px color-mix(in srgb, var(--khipu-mint) 16%, transparent), 0 0 18px color-mix(in srgb, var(--khipu-mint) 8%, transparent)}.cell.error{border-color:#f43f5e6b}.cell.collapsed{background:color-mix(in srgb, var(--bg-cell) 92%, var(--bg-elevated))}.cell.collapsed:hover{border-color:#7ef7b257}.cell.collapsed .cell-toolbar{background:linear-gradient(180deg, color-mix(in srgb, var(--bg-elevated) 82%, transparent), color-mix(in srgb, var(--bg-cell) 92%, transparent));border-bottom:0;min-height:42px;padding-top:6px;padding-bottom:6px}.cell.dragging{opacity:.58;transform:scale(.995)}.cell.drop-before{box-shadow:0 -3px 0 var(--khipu-mint), 0 18px 46px #0000002e}.cell.drop-after{box-shadow:0 3px 0 var(--khipu-mint), 0 18px 46px #0000002e}.cell-toolbar{border-bottom:1px solid var(--line);background:var(--toolbar);justify-content:space-between;align-items:center;gap:10px;min-height:48px;padding:8px 10px 8px 12px;display:flex}.cell-toolbar-left{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.cell-meta{flex-shrink:0;align-items:center;gap:8px;display:flex}.drag-handle{width:22px;min-width:22px;height:28px;color:var(--text-muted);cursor:grab;letter-spacing:-.16em;background:0 0;border:0;border-radius:7px;place-items:center;padding:0 3px 0 0;font-size:13px;line-height:1;display:inline-grid}.drag-handle:hover,.drag-handle:focus{background:var(--accent-soft);color:var(--khipu-mint);outline:none}.drag-handle:active{cursor:grabbing}.collapse-toggle{width:24px;min-width:24px;height:28px;color:var(--text-muted);background:0 0;border:0;border-radius:7px;place-items:center;padding:0;font-size:13px;line-height:1;display:inline-grid}.collapse-toggle:hover,.collapse-toggle:focus{background:var(--accent-soft);color:var(--khipu-mint);outline:none}.execution-count{background:var(--accent-soft);color:var(--khipu-mint);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;border-radius:4px;padding:2px 6px;font-family:Cascadia Code,Consolas,monospace;font-size:10px}.execution-count.empty{color:var(--text-muted);background:0 0}.active-dot{background:var(--khipu-mint);border-radius:999px;width:6px;height:6px}.cell-label{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;user-select:none;flex-shrink:0;font-size:11px;overflow:hidden}.cell-name-input{min-width:92px;max-width:220px;color:var(--text-soft);background:0 0;border:1px solid #0000;border-radius:7px;outline:none;flex:1;padding:5px 7px;font-size:11px}.cell-name-input::placeholder{color:var(--text-muted)}.cell-name-input:hover,.cell-name-input:focus{border-color:var(--line-hover);background:color-mix(in srgb, var(--bg-elevated) 42%, transparent);color:var(--text-main)}.language-select{border:1px solid var(--line-hover);background:var(--bg-elevated);max-width:104px;height:28px;color:var(--text-main);border-radius:8px;outline:none;padding:0 7px;font-size:11px}.language-select:hover{border-color:color-mix(in srgb, var(--khipu-mint) 45%, transparent);background:color-mix(in srgb, var(--bg-elevated) 82%, var(--bg-panel));color:var(--text-main)}.language-select:focus{border-color:color-mix(in srgb, var(--khipu-mint) 62%, transparent);box-shadow:0 0 0 2px color-mix(in srgb, var(--khipu-mint) 14%, transparent);color:var(--text-main)}.language-select option{background:var(--bg-elevated);color:var(--text-main)}.language-select option:hover,.language-select option:checked{background:var(--accent-soft);color:var(--text-main)}.status{color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-weight:700}.status.success{color:var(--status-success)}.status.error{color:var(--status-error)}.status.running{color:var(--status-warning)}.cell-preview{min-width:0;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:Cascadia Code,Consolas,SFMono-Regular,monospace;font-size:11px;line-height:1.3;overflow:hidden}.cell-buttons{flex-shrink:0;align-items:center;gap:4px;display:flex}.cell-buttons button,.assistant-panel button,.add-code-cell{border:0;transition:background .15s,color .15s,box-shadow .15s,border-color .15s}.ai-button{background:color-mix(in srgb, var(--bg-elevated) 88%, transparent);height:30px;color:var(--khipu-mint);border-radius:9px;align-items:center;gap:5px;padding:0 9px;font-size:11px;font-weight:650;display:inline-flex;border:1px solid var(--line-hover)!important}.ai-button:hover,.ai-button.open{background:var(--accent-soft);box-shadow:none;color:var(--khipu-mint)}.assistant-icon{flex-shrink:0;width:14px;height:14px}.tiny-icon{width:15px;height:15px}.trash-icon{width:19px;height:19px}.icon-button{width:34px;min-width:34px;height:34px;color:var(--text-muted);background:0 0;border-radius:9px;place-items:center;padding:0;font-size:11px;display:inline-grid}.icon-button:hover{background:var(--accent-soft);color:var(--khipu-mint)}.icon-button.delete:hover{color:var(--status-error);background:#e11d481a}.run-button{background:linear-gradient(135deg, color-mix(in srgb, var(--khipu-mint) 86%, white) 0%, var(--khipu-green) 100%);height:34px;color:color-mix(in srgb, var(--bg-app) 86%, #000);border-radius:9px;align-items:center;gap:6px;padding:0 16px;font-size:12px;font-weight:700;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff24}.run-button:hover:not(:disabled){background:linear-gradient(135deg, var(--khipu-mint) 0%, var(--khipu-dark-green) 100%);box-shadow:inset 0 0 0 1px #ffffff2e}.assistant-panel{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg-elevated) 72%, transparent);padding:10px 12px 12px}.assistant-form{align-items:center;gap:9px;display:flex}.assistant-title{border:1px solid color-mix(in srgb, var(--khipu-mint) 34%, transparent);background:color-mix(in srgb, var(--khipu-mint) 12%, transparent);width:34px;min-width:34px;height:34px;color:var(--khipu-mint);border-radius:999px;justify-content:center;align-items:center;gap:6px;font-size:10px;font-weight:700;display:flex}.assistant-title .assistant-icon{width:13px;height:13px}.assistant-form textarea{resize:vertical;border:1px solid color-mix(in srgb, var(--khipu-mint) 26%, transparent);background:color-mix(in srgb, var(--bg-code) 72%, transparent);min-height:36px;max-height:112px;box-shadow:0 0 0 1px color-mix(in srgb, var(--border-soft) 18%, transparent) inset;color:var(--text-main);border-radius:12px;outline:none;flex:1;padding:9px 11px;font-size:12px;line-height:1.45;overflow-y:auto}.assistant-form textarea:focus{border-color:color-mix(in srgb, var(--khipu-mint) 58%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--khipu-mint) 18%, transparent), 0 0 24px color-mix(in srgb, var(--khipu-mint) 9%, transparent)}.assistant-form button{width:30px;min-width:30px;height:30px;color:var(--text-muted);background:0 0;border-radius:999px;place-items:center;padding:0;font-size:18px;line-height:1;display:inline-grid}.assistant-form button:hover{background:var(--accent-soft);color:var(--khipu-mint)}.assistant-response{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-code) 42%, transparent);color:var(--text-soft);border-radius:12px;margin:9px 39px 0 43px;padding:10px;font-size:12px}.assistant-response.suggestion{border-color:color-mix(in srgb, var(--khipu-mint) 30%, transparent);background:color-mix(in srgb, var(--code-bg,var(--bg-code)) 72%, transparent)}.assistant-response-header{color:var(--khipu-mint);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:10px;font-weight:700;display:flex}.assistant-response-header code{color:var(--text-muted);letter-spacing:0;text-transform:none;font-family:Cascadia Code,Consolas,monospace;font-size:10px;font-weight:400}.assistant-response p{margin:0 0 8px}.assistant-response p:last-child{margin-bottom:0}.assistant-error{color:var(--syntax-error,var(--status-error))}.assistant-response pre{border:1px solid var(--code-border,var(--line));background:var(--code-bg,var(--bg-code));color:var(--code-text,var(--text-main));white-space:pre;border-radius:8px;margin:0;padding:9px;font-family:Cascadia Code,Consolas,monospace;font-size:12px;line-height:1.6;overflow-x:auto}.code-wrap{background:var(--cell)}.code-editor{background:var(--code-bg,var(--bg-code));width:100%;min-width:0}.code-editor .cm-editor{background:var(--code-bg,var(--bg-code));min-height:160px;color:var(--code-text,var(--text-main));border:0;outline:none}.code-editor .cm-editor.cm-focused{outline:none}.code-editor .cm-placeholder{color:var(--syntax-comment,var(--text-muted));font-style:italic}.code-editor .cm-gutterElement{color:var(--code-gutter-text,var(--editor-line-number));padding:0 8px 0 10px}.code-editor .cm-scroller{scrollbar-width:thin;scrollbar-color:var(--code-scrollbar-thumb,var(--border-soft)) var(--code-scrollbar-track,var(--code-bg,var(--bg-code)))}.code-editor .cm-scroller::-webkit-scrollbar{width:10px;height:10px}.code-editor .cm-scroller::-webkit-scrollbar-track{background:var(--code-scrollbar-track,var(--code-bg,var(--bg-code)))}.code-editor .cm-scroller::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:var(--code-scrollbar-thumb,var(--border-soft));border:2px solid #0000;border-radius:999px}.code-editor .cm-scroller::-webkit-scrollbar-thumb:hover{background-color:color-mix(in srgb, var(--code-cursor,var(--khipu-mint)) 35%, var(--code-border,var(--line)))}.code-editor .tok-keyword,.code-editor .cm-keyword{color:var(--syntax-keyword)}.code-editor .tok-string,.code-editor .cm-string{color:var(--syntax-string)}.code-editor .tok-number,.code-editor .cm-number{color:var(--syntax-number,var(--syntax-constant))}.code-editor .tok-function,.code-editor .cm-function{color:var(--syntax-function)}.code-editor .tok-variableName,.code-editor .cm-variableName{color:var(--syntax-variable)}.code-editor .tok-comment,.code-editor .cm-comment{color:var(--syntax-comment);font-style:italic}.code-editor .tok-typeName,.code-editor .cm-typeName,.code-editor .cm-className{color:var(--syntax-type,var(--syntax-builtin))}.code-editor .tok-operator,.code-editor .cm-operator{color:var(--syntax-operator,var(--syntax-punctuation))}.code-editor .tok-punctuation,.code-editor .cm-punctuation{color:var(--syntax-punctuation)}.code-editor .tok-propertyName,.code-editor .cm-propertyName{color:var(--syntax-property,var(--syntax-function))}.code-editor .tok-builtin,.code-editor .cm-builtin,.code-editor .cm-atom{color:var(--syntax-builtin)}.code-editor .tok-invalid,.code-editor .cm-invalid{color:var(--syntax-error)}.code-editor .cm-tooltip-autocomplete{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.output{border-top:1px solid var(--line);background:var(--output);color:var(--text-main)}.cell-outputs{gap:10px;display:grid}.cell-outputs .output+.output{border-top:1px solid var(--line)}.output-timing{color:var(--text-muted);padding:4px 16px 10px;font-size:11px;font-weight:600}.error-output .output-header{color:var(--red)}.output.muted{color:var(--text-muted);padding:14px 16px;font-family:Cascadia Code,Consolas,monospace;font-size:12px;font-style:italic}.output-header{border:0;border-bottom:1px solid var(--line);background:var(--output-head);width:100%;color:var(--green);letter-spacing:.12em;text-align:left;text-transform:uppercase;align-items:center;gap:8px;padding:8px 16px;font-size:10px;font-weight:700;display:flex}.output-header code{color:var(--text-muted);letter-spacing:0;text-overflow:ellipsis;text-transform:none;white-space:nowrap;margin-left:auto;font-family:Cascadia Code,Consolas,monospace;font-size:10px;font-weight:400;overflow:hidden}.output-text{max-height:520px;color:var(--text-main);white-space:pre-wrap;margin:0;padding:14px 16px;font-family:Cascadia Code,Consolas,monospace;font-size:13px;line-height:1.65;overflow-x:auto}.output-text.error{color:#f87171}.output-actions{border-top:1px solid var(--line);background:color-mix(in srgb, var(--bg-code) 72%, var(--bg-panel));justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;display:flex}.output-meta{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.download-csv-button{border:1px solid color-mix(in srgb, var(--khipu-mint) 34%, transparent);background:color-mix(in srgb, var(--khipu-mint) 10%, transparent);color:var(--khipu-mint);border-radius:8px;flex-shrink:0;padding:5px 9px;font-size:11px;font-weight:700;transition:background .15s,border-color .15s,color .15s}.download-csv-button:hover{border-color:color-mix(in srgb, var(--khipu-mint) 52%, transparent);background:color-mix(in srgb, var(--khipu-mint) 16%, transparent);color:var(--accent-bright)}.markdown{padding:12px 16px}.markdown h1,.markdown h2,.markdown h3,.markdown p,.markdown ul,.markdown pre{margin:0 0 8px}.markdown code{color:var(--khipu-gold);background:#ffffff12;border-radius:4px;padding:1px 4px;font-family:Cascadia Code,Consolas,monospace;font-size:.92em}.markdown pre{background:#00000047;border-radius:8px;padding:10px;overflow-x:auto}.markdown pre code{background:0 0;padding:0}.markdown ul{padding-left:20px}.table-scroll{-webkit-overflow-scrolling:touch;max-height:560px;padding:16px;overflow-x:auto}table{border-collapse:collapse;border:1px solid var(--line);border-radius:8px;width:100%;min-width:620px;font-family:Cascadia Code,Consolas,monospace;font-size:12px;overflow:hidden}th,td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:10px 12px}th{z-index:1;background:color-mix(in srgb, var(--bg-elevated) 72%, var(--accent-soft));color:var(--khipu-mint);font-weight:700;position:sticky;top:0}td{color:var(--text-soft)}.add-code-cell{border:1px dashed var(--line);background:color-mix(in srgb, var(--bg-elevated) 45%, transparent);width:100%;color:var(--text-muted);border-radius:16px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:11px 12px;font-size:12px;display:flex}.add-code-cell:hover{border-color:color-mix(in srgb, var(--khipu-mint) 42%, transparent);color:var(--khipu-mint)}@media (width>=1200px){.app-shell{width:min(1800px,100vw - 48px)}.workspace-layout{grid-template-columns:auto auto minmax(0,1fr) auto}}@media (width<=1199px){.app-shell{width:calc(100vw - 32px)}.header-shell{grid-template-columns:auto minmax(280px,1fr) auto;gap:12px 16px}.header-breadcrumb-row{gap:18px}.header-panel-spacer.nav-spacer{width:158px}.header-panel-spacer.toc-spacer{width:230px}.workspace-layout{grid-template-columns:auto auto minmax(0,1fr) auto;gap:18px}.nav-rail{width:158px}.flyout-panel.browser{width:248px}.flyout-panel.contents{width:264px}.toc-panel{width:230px}.toc-panel.collapsed{width:52px}.right-utility-panel{align-items:center;gap:8px;width:52px;min-height:220px;padding:8px 0}.right-utility-panel:not(.collapsed){align-items:stretch;width:min(360px,30vw);padding:0}.logo-wrap{width:58px;height:58px}.brand-title{font-size:17px}}@media (width<=800px){:root{--app-header-height:152px}.header-shell{grid-template-columns:minmax(0,1fr);align-items:flex-start;gap:8px;padding:8px 12px 4px}.header-actions{justify-content:flex-end;width:100%}.header-breadcrumb-row{grid-template-columns:minmax(0,1fr);gap:0;padding:0 12px 6px}.header-panel-spacer{display:none}.notebook-toolbar{flex-wrap:wrap}.notebook-title-input{flex:1}.notebook-menu{left:0;right:auto}.brand-block{width:100%}.logo-wrap{width:52px;height:52px}.brand-title{font-size:16px}.brand-tagline,.brand-user-label{font-size:11px}.header-actions button{flex:1;justify-content:center;height:32px}.notebook-shell{padding:14px 10px 40px}.workspace-layout{display:block}.toc-panel,.nav-rail-wrap,.right-utility-panel{display:none}.cell-toolbar{flex-wrap:wrap;align-items:flex-start;gap:6px;padding:8px}.cell-toolbar-left{flex-basis:100%}.cell-label{flex:auto}.cell-name-input{flex-basis:100%;order:2;max-width:none}.language-select{flex:1;order:3;max-width:none}.status{order:4;align-self:center}.cell-buttons{justify-content:flex-end;gap:4px;width:100%;display:flex}.run-button{justify-content:center;min-height:38px;padding-left:14px;padding-right:14px}.icon-button{width:38px;min-width:38px;height:38px}.trash-icon{width:21px;height:21px}.assistant-panel{z-index:20;background:linear-gradient(#1f170cfa,#0b1020fa);border-top:1px solid #7ef7b240;border-radius:16px 16px 0 0;max-height:68vh;margin:0 -1px;position:sticky;bottom:0;overflow:auto}.assistant-form{flex-direction:row;align-items:stretch}.assistant-response{margin:9px 0 0}.code-editor .cm-editor{min-height:140px;max-height:560px;font-size:13px}.table-scroll{padding:12px}}.reset-menu{position:relative}.reset-menu-trigger{align-items:center;gap:6px;display:inline-flex}.reset-menu-dropdown{background:var(--bg-panel);border:1px solid var(--line);z-index:40;border-radius:10px;min-width:180px;padding:6px;display:none;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 12px 28px #00000047}.reset-menu:hover .reset-menu-dropdown,.reset-menu:focus-within .reset-menu-dropdown{gap:4px;display:grid}.reset-menu-dropdown button{text-align:left;width:100%;color:var(--text-main);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 10px;font-weight:600}.reset-menu-dropdown button:hover{background:color-mix(in srgb, var(--accent-soft) 50%, transparent)}.reset-modal-backdrop{z-index:80;background:#00000073;place-items:center;display:grid;position:fixed;inset:0}.reset-modal{background:var(--bg-panel);border:1px solid var(--line);border-radius:14px;width:min(440px,100vw - 32px);padding:20px;box-shadow:0 20px 48px #00000059}.reset-modal h2{margin:0 0 8px;font-size:1.15rem}.reset-modal p{color:var(--text-muted);margin:0 0 16px;line-height:1.45}.reset-modal-actions{justify-content:flex-end;gap:8px;display:flex}.reset-modal-actions button{border:1px solid var(--line);color:var(--text-main);cursor:pointer;background:0 0;border-radius:8px;padding:8px 12px;font-weight:650}.reset-modal-confirm{color:#fff!important;background:#3b82f6!important;border-color:#3b82f6!important}.reset-recovery-section{border-bottom:1px solid var(--line);margin-bottom:8px;padding:0 12px 12px}.explorer-section-label-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.auto-fix-banner{border:1px solid var(--line);background:color-mix(in srgb, var(--accent-soft) 45%, var(--bg-panel));color:var(--text-soft);border-radius:8px;align-items:center;gap:8px;margin:6px 0 0;padding:6px 10px;font-size:12px;display:flex}.auto-fix-badge{letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--line);border-radius:999px;padding:2px 6px;font-size:10px;font-weight:700}.quick-fix-row{align-items:center;gap:10px;margin-top:8px;display:flex}.quick-fix-button{border:1px solid var(--line);color:var(--text-main);cursor:pointer;background:0 0;border-radius:8px;padding:6px 10px;font-weight:650}.quick-fix-button:hover{border-color:var(--khipu-mint,#3b82f6)}.quick-fix-note{color:var(--text-muted);font-size:11px}.error-detail{margin-top:8px}.error-detail-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;text-decoration:underline}.error-detail-pre{opacity:.85;margin-top:6px}.output-timing{color:var(--text-muted);letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;margin-top:6px;font-size:11.5px;overflow:hidden}
