:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}html,body{margin:0;padding:0;height:100%;overflow:hidden;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;overscroll-behavior:none;touch-action:pan-y pinch-zoom}#root{height:100%}.toast-stack{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:1100}.toast-container{padding:10px 14px;border-radius:6px;box-shadow:0 4px 12px #00000026;font-size:13px;border:1px solid transparent}.toast-error{background:#fdecea;color:#b71c1c;border-color:#f5c6cb}.toast-success{background:#edf7ed;color:#1e4620;border-color:#c8e6c9}.toast-info{background:#eef5ff;color:#0f2d5c;border-color:#cfe2ff}.dialog-overlay{position:fixed;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:1200}.dialog{background:#fff;color:#202124;min-width:320px;max-width:min(480px,90vw);border-radius:8px;border:1px solid #e0e0e0;box-shadow:0 8px 24px #0003;padding:16px;box-sizing:border-box}.dialog-title{font-weight:600;margin-bottom:8px;word-wrap:break-word;overflow-wrap:break-word}.dialog-message{font-size:14px;margin-bottom:12px;word-wrap:break-word;overflow-wrap:break-word;line-height:1.4}.dialog-input{width:100%;padding:8px 10px;border:1px solid #dadce0;border-radius:6px;margin-bottom:12px;font-size:14px;box-sizing:border-box}.dialog-actions{display:flex;justify-content:flex-end;gap:8px}.dialog-btn{border:1px solid #dadce0;background:#f8f9fa;color:#202124;border-radius:6px;padding:6px 10px;font-size:13px;cursor:pointer}.dialog-btn.dialog-confirm{border-color:#1a73e8;color:#1a73e8;background:#eef3fd}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--color-primary: #1a73e8;--color-primary-light: #e8f0fe;--color-text-primary: #202124;--color-text-secondary: #5f6368;--color-text-tertiary: #9aa0a6;--color-border: #e8eaed;--color-background: #ffffff;--color-background-light: #f8f9fa;--color-error: #d93025;--color-warning: #f9ab00;--color-success: #1e8e3e}.error-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-background-light);padding:2rem;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif}.error-page__container{max-width:28rem;width:100%;background:var(--color-background);border-radius:8px;border:1px solid var(--color-border);box-shadow:0 8px 24px #0000001a;overflow:hidden}.error-page__content{padding:3rem 2rem;text-align:center}.error-page__icon{width:4rem;height:4rem;margin:0 auto 1.5rem;display:block}.error-page__icon--warning{color:var(--color-warning)}.error-page__icon--error{color:var(--color-error)}.error-page__title{font-size:1.5rem;font-weight:600;color:var(--color-text-primary);margin:0 0 1rem;line-height:1.3}.error-page__message{font-size:.875rem;color:var(--color-text-secondary);line-height:1.6;margin:0 0 2rem}.error-page__actions{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem}.error-page__button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:6px;font-size:.875rem;font-weight:500;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:all .2s ease-in-out;min-height:2.75rem;font-family:inherit}.error-page__button--primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.error-page__button--primary:hover{background:#1557b0;border-color:#1557b0;transform:translateY(-1px);box-shadow:0 4px 12px #1a73e840}.error-page__button--primary:active{transform:translateY(0)}.error-page__button--secondary{background:var(--color-background);color:var(--color-text-primary);border-color:var(--color-border)}.error-page__button--secondary:hover{background:var(--color-background-light);border-color:#dadce0;transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.error-page__button--secondary:active{transform:translateY(0)}.error-page__button-icon{width:1rem;height:1rem;flex-shrink:0}.error-page__help{padding-top:1.5rem;border-top:1px solid var(--color-border)}.error-page__help-text{font-size:.875rem;color:var(--color-text-secondary);line-height:1.5;margin:0}.error-page__help-link{color:var(--color-primary);text-decoration:none;font-weight:500}.error-page__help-link:hover{color:#1557b0;text-decoration:underline}@media (min-width: 640px){.error-page__actions{flex-direction:row;justify-content:center}.error-page__button{flex:0 0 auto;min-width:9rem}}@media (prefers-color-scheme: dark){:root{--color-text-primary: #e8eaed;--color-text-secondary: #9aa0a6;--color-text-tertiary: #5f6368;--color-border: #3c4043;--color-background: #202124;--color-background-light: #303134}.error-page{background:var(--color-background-light)}.error-page__container{background:var(--color-background);border-color:var(--color-border);box-shadow:0 8px 24px #0000004d}.error-page__button--secondary{background:var(--color-background-light);color:var(--color-text-primary);border-color:var(--color-border)}.error-page__button--secondary:hover{background:#3c4043;border-color:#5f6368}.error-page__help{border-top-color:var(--color-border)}}.error-popover-trigger{position:static;display:flex;width:100%;height:100%;flex:1 1 auto;align-items:stretch;align-self:stretch}.error-popover{max-width:300px;background:#fff;border:1px solid #e1e4e8;border-radius:8px;box-shadow:0 8px 24px #0000001f;font-size:13px;line-height:1.4;color:#24292e;animation:errorPopoverFadeIn .15s ease-out;pointer-events:auto}.error-popover-arrow{position:absolute;top:-6px;left:16px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid white}.error-popover-arrow:before{content:"";position:absolute;top:-7px;left:-6px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #e1e4e8}.error-popover-content{padding:12px 16px}.error-popover-title{font-weight:600;color:#d73a49;margin-bottom:6px;font-size:12px}.error-popover-message{color:#586069;white-space:pre-wrap;word-break:break-word}@keyframes errorPopoverFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.cell-error-indicator{position:absolute;top:2px;right:2px;width:8px;height:8px;background-color:#d73a49;border-radius:50%;cursor:pointer;transition:background-color .2s ease;z-index:1}.cell-error-indicator:hover{background-color:#cb2431}.cell-formula-indicator{position:absolute;top:2px;right:2px;width:8px;height:8px;background-color:#4285f4;border-radius:50%;color:#fff;font-size:6px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:help;transition:background-color .2s ease;z-index:1}.cell-formula-indicator:hover{background-color:#3367d6}.cell-with-error{background-color:#ffeef0!important;border-color:#fdaeb7!important;overflow:visible!important;position:static}.cell-with-error .cell-main-value{color:#d73a49!important}.spreadsheet-cell-container{padding:0;margin:0;border:.5px solid #dadce0;position:relative;box-sizing:border-box;background:#fff}.spreadsheet-cell{position:relative;box-sizing:border-box;width:100%;height:100%;min-height:27.5px;display:flex;align-items:center;padding:0;cursor:cell;-webkit-user-select:none;user-select:none;outline:none;background:transparent;transition:background-color .1s ease;will-change:background-color}.spreadsheet-cell:hover{background-color:#f8f9fa}.spreadsheet-cell.selected{background-color:transparent!important;will-change:background-color,border-color}.spreadsheet-cell.editing{padding:0;background-color:#fff;align-items:stretch}.cell-content{width:100%;height:100%;display:flex;align-items:center;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2;position:static;align-self:stretch;padding:2px 6px}.cell-content.with-ai-both{gap:6px}.cell-content.with-ai-both .cell-main-value{font-size:11px;max-width:40%;overflow:hidden;text-overflow:ellipsis}.cell-content.with-ai-both .cell-suggestion-values{font-size:11px;max-width:60%;overflow:hidden;text-overflow:ellipsis}.cell-input{width:100%;height:100%;border:none;outline:none;background:transparent;font-family:inherit;font-size:inherit;color:inherit;padding:0;margin:0;resize:none;overflow:hidden;line-height:inherit;text-align:inherit;font-weight:inherit;font-style:inherit}.cell-edit-container{position:relative;width:100%;height:100%;display:flex;align-self:stretch;padding:2px 6px}.cell-input:focus{outline:none}.function-suggest-menu{position:absolute;background:#fff;border:1px solid #dadce0;border-radius:4px;box-shadow:0 2px 8px #00000026;z-index:1000;max-height:200px;overflow-y:auto;min-width:200px}.function-suggest-menu.positioned{top:26px;left:0}.function-suggest-item{padding:8px 12px;cursor:pointer;border-bottom:1px solid #f1f3f4;transition:background-color .1s ease}.function-suggest-item:last-child{border-bottom:none}.function-suggest-item:hover,.function-suggest-item.active{background-color:#f8f9fa}.function-name{font-weight:500;color:#202124;font-size:13px}.function-syntax{color:#5f6368;font-size:12px;margin-top:2px}.cell-suggestion-values{display:flex;flex-direction:column;gap:2px;font-size:11px;color:#5f6368;max-width:60%;overflow:hidden}.cell-suggestion-old,.cell-suggestion-new{padding:1px 3px;border-radius:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell-suggestion-old{background-color:#fce8e6;color:#d93025;text-decoration:line-through}.cell-suggestion-new{background-color:#e6f4ea;color:#137333}.spreadsheet-cell.type-number .cell-content{text-align:right}.spreadsheet-cell.type-date .cell-content{text-align:center}.spreadsheet-cell.type-currency .cell-content{text-align:right;color:#137333}.spreadsheet-cell.type-percentage .cell-content{text-align:right}.spreadsheet-cell.temp-highlight{background-color:#8e24aa1f!important}.spreadsheet-cell.copied-top{border-top:2px dashed #4285f4;animation:dash .5s linear infinite}.spreadsheet-cell.copied-bottom{border-bottom:2px dashed #4285f4;animation:dash .5s linear infinite}.spreadsheet-cell.copied-left{border-left:2px dashed #4285f4;animation:dash .5s linear infinite}.spreadsheet-cell.copied-right{z-index:30;border-right:2px dashed #4285f4;animation:dash .5s linear infinite}.spreadsheet-cell.cut-top{border-top:2px dashed #ea4335;animation:dash .5s linear infinite}.spreadsheet-cell.cut-bottom{border-bottom:2px dashed #ea4335;animation:dash .5s linear infinite}.spreadsheet-cell.cut-left{border-left:2px dashed #ea4335;animation:dash .5s linear infinite}.spreadsheet-cell.cut-right{border-right:2px dashed #ea4335;animation:dash .5s linear infinite}.spreadsheet-cell.cut{background-color:#ea43351a}@keyframes dash{to{stroke-dashoffset:-10}}@media (max-width: 768px){.spreadsheet-cell{min-height:24px;padding:1px 4px}.cell-content.with-ai-both{gap:4px}.cell-content.with-ai-both .cell-main-value,.cell-content.with-ai-both .cell-suggestion-values{font-size:10px}}.import-dialog-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease-out}.import-dialog{background:#fff;border-radius:10px;box-shadow:0 15px 40px #0003;width:480px;max-width:90vw;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;animation:slideIn .3s ease-out;border:1px solid rgba(255,255,255,.2)}.import-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px 12px;border-bottom:1px solid #e8eaed;background:linear-gradient(135deg,#f8f9fa,#f1f3f4)}.import-dialog-header h2{margin:0;font-size:20px;font-weight:600;color:#202124;display:flex;align-items:center;gap:8px}.import-dialog-header h2:before{content:"";width:20px;height:20px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23202124'%3E%3Cpath d='M10 4H4c-1.11 0-2 .89-2 2v12c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2h-8l-2-2z'/%3E%3C/svg%3E") no-repeat center;background-size:contain}.import-dialog-close{background:none;border:none;font-size:20px;cursor:pointer;padding:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;color:#5f6368;transition:all .2s ease}.import-dialog-close:hover:not(:disabled){background-color:#5f63681a;color:#202124;transform:scale(1.05)}.import-dialog-close:disabled{opacity:.5;cursor:not-allowed}.import-dialog-content{padding:18px;flex:1;overflow-y:auto;background-color:#fafbfc}.file-selection{margin-bottom:16px;background:#fff;border-radius:8px;padding:16px;border:2px dashed #dadce0;text-align:center;transition:all .3s ease}.file-selection:hover{border-color:#1a73e8;background-color:#f8f9ff}.file-drop-zone{display:flex;flex-direction:column;align-items:center;gap:8px}.drop-zone-text{margin:0;color:#5f6368;font-size:13px;font-weight:400}.file-input-label{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,#1a73e8,#1557b0);color:#fff;padding:10px 16px;border-radius:6px;cursor:pointer;font-weight:500;font-size:13px;transition:all .2s ease;box-shadow:0 2px 6px #1a73e84d}.file-input-label:before{content:"";width:16px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M18,20H6V4H13V9H18V20Z'/%3E%3C/svg%3E") no-repeat center;background-size:contain}.file-input-label:hover{background:linear-gradient(135deg,#1557b0,#1a73e8);transform:translateY(-1px);box-shadow:0 4px 12px #1a73e866}#file-input{display:none}.selected-file{margin-top:12px;padding:12px;background:linear-gradient(135deg,#e8f5e8,#f0f8f0);border-radius:6px;border:1px solid #34a853;display:flex;align-items:center;gap:10px;animation:slideInUp .3s ease-out}.selected-file:before{content:"";width:18px;height:18px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2334a853'%3E%3Cpath d='M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z'/%3E%3C/svg%3E") no-repeat center;background-size:contain}.file-name{font-weight:600;color:#137333;flex:1}.file-size{color:#5f6368;font-size:13px;background-color:#fffc;padding:4px 8px;border-radius:12px}.import-options{background:#fff;border-radius:8px;padding:16px;border:1px solid #e8eaed;animation:slideInUp .4s ease-out}.import-options h3{margin:0 0 14px;font-size:15px;font-weight:600;color:#202124;display:flex;align-items:center;gap:6px}.import-options h3:before{content:"";width:16px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23202124'%3E%3Cpath d='M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.22,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.22,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z'/%3E%3C/svg%3E") no-repeat center;background-size:contain}.option-group label{display:flex;align-items:center;font-size:14px;color:#202124;cursor:pointer;font-weight:500}.option-group input[type=checkbox]{margin-right:12px;cursor:pointer;width:16px;height:16px;accent-color:#1a73e8}.option-group select{margin-left:12px;padding:8px 12px;border:1px solid #dadce0;border-radius:6px;font-size:14px;min-width:140px;background-color:#fff;transition:all .2s ease}.import-error{margin-top:16px;padding:16px;background:linear-gradient(135deg,#fce8e6,#fdf2f1);border:1px solid #ea4335;border-radius:8px;color:#d93025;font-size:14px;display:flex;align-items:center;gap:8px;animation:shake .5s ease-in-out}.import-error:before{content:"";width:16px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23d93025'%3E%3Cpath d='M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z'/%3E%3C/svg%3E") no-repeat center;background-size:contain}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-2px)}20%,40%,60%,80%{transform:translate(2px)}}.import-dialog-footer{display:flex;justify-content:flex-end;gap:12px;padding:14px 20px;border-top:1px solid #e8eaed;background:linear-gradient(135deg,#f8f9fa,#f1f3f4)}.cancel-button,.import-button{padding:10px 20px;border-radius:6px;font-weight:600;font-size:13px;cursor:pointer;transition:all .2s ease;border:none;position:relative;overflow:hidden}.import-button{background:linear-gradient(135deg,#1a73e8,#1557b0);color:#fff;box-shadow:0 2px 8px #1a73e84d}.import-button:hover:not(:disabled){background:linear-gradient(135deg,#1557b0,#1a73e8);transform:translateY(-1px);box-shadow:0 4px 12px #1a73e866}.cancel-button:disabled,.import-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.import-button:disabled{background:#dadce0;box-shadow:none}.workbook-list{display:flex;flex-direction:column;gap:8px;max-height:340px;overflow:auto}.workbook-list-item{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid #e4e7eb;border-radius:8px;cursor:pointer;transition:background .1s ease,border-color .1s ease,box-shadow .1s ease}.workbook-list-item:hover{background:#f8fafc;border-color:#d6dae0;box-shadow:0 1px #10182808}.workbook-list-item:focus,.workbook-list-item:focus-visible{outline:none;border-color:#1a73e8;box-shadow:0 0 0 3px #1a73e826}.workbook-title{font-weight:600}.workbook-meta{color:#6b7280;font-size:12px;display:flex;align-items:center;justify-content:space-between;gap:8px}.workbook-meta-right{display:inline-flex;align-items:center;gap:8px}.workbook-meta .file-name{max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workbook-meta-right .file-size,.workbook-meta-right .updated-at{color:#475569;background-color:#f1f5f9;padding:4px 8px;border-radius:999px}.workbook-meta-right .updated-at{background-color:#eef2ff}.export-description--spaced{margin-bottom:8px}._aiDiffToolbar_esusx_1{position:absolute;left:calc(50% - var(--chat-panel-width, 0px) / 2);bottom:56px}._aiDiffToggle_esusx_7{display:flex;gap:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;overflow:hidden}._aiDiffToggle_esusx_7 button{padding:8px 16px;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:500}._aiDiffToggle_esusx_7 button:hover{background:var(--color-surface-hover);color:var(--color-text)}._aiDiffToggle_esusx_7 button._active_esusx_32{background:var(--color-primary);color:var(--color-white)}._aiDiffActions_esusx_37{display:flex;gap:8px;margin-top:12px}._aiDiffActions_esusx_37 button{display:flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:500}._aiDiffActions_esusx_37 button:hover{background:var(--color-surface-hover)}._aiDiffActions_esusx_37 button._accept_esusx_62{border-color:var(--color-success);color:var(--color-success)}._aiDiffActions_esusx_37 button._accept_esusx_62:hover{background:var(--color-success);color:var(--color-white)}._aiDiffActions_esusx_37 button._reject_esusx_72{border-color:var(--color-error);color:var(--color-error)}._aiDiffActions_esusx_37 button._reject_esusx_72:hover{background:var(--color-error);color:var(--color-white)}.formatting-toolbar{display:flex;align-items:center;background:transparent;padding:0;gap:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.formatting-toolbar.disabled{opacity:.6;pointer-events:none}.toolbar-message{color:#5f6368;font-style:italic}.toolbar-group{display:flex;align-items:center;gap:2px;background:#fff;border:1px solid #dadce0;border-radius:6px;padding:2px;box-shadow:0 1px 2px #0000000d}.toolbar-btn{width:28px;height:28px;border:none;border-radius:4px;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;transition:all .15s ease;color:#3c4043}.toolbar-btn svg{width:16px!important;height:16px!important;display:block!important;color:currentColor!important;fill:currentColor!important;stroke:currentColor!important;opacity:1!important;visibility:visible!important}.toolbar-icon{display:inline-flex;align-items:center;justify-content:center;color:inherit}.toolbar-icon svg{width:16px;height:16px}.toolbar-btn:hover{background:#e8f0fe;color:#1a73e8;transform:translateY(-1px)}.toolbar-btn:active{background:#d2e3fc;transform:translateY(0)}.toolbar-btn.active{background:#4285f4;color:#fff;box-shadow:0 1px 3px #4285f44d}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed;color:#9aa0a6}.toolbar-btn:disabled:hover{background:transparent;color:#9aa0a6;transform:none}.font-family-select,.font-size-select,.number-format-select,.decimals-select{height:28px;border:none;border-radius:4px;background:transparent;padding:0 8px;font-size:13px;font-weight:600;color:#3c4043;cursor:pointer;outline:none;transition:all .15s ease;width:100%;box-sizing:border-box}.number-format-dropdown,.custom-dropdown{position:relative;min-width:110px}.font-family-dropdown{min-width:120px}.font-size-dropdown{min-width:60px}.format-dropdown-trigger,.dropdown-trigger{display:flex;align-items:center;gap:6px;height:28px;border:none;border-radius:4px;background:transparent;padding:0 8px;font-size:13px;font-weight:600;color:#3c4043;cursor:pointer;outline:none;transition:all .15s ease;width:100%;box-sizing:border-box}.dropdown-trigger:hover:not(:disabled){background:#f8f9fa;color:#1a73e8}.dropdown-trigger:focus:not(:disabled){background:#e8f0fe;color:#1a73e8}.dropdown-trigger:disabled{opacity:.4;cursor:not-allowed;color:#9aa0a6}.dropdown-trigger:disabled:hover{background:transparent;color:#9aa0a6}.dropdown-trigger.open{background:#e8f0fe;color:#1a73e8}.format-dropdown-trigger:hover{background:#f8f9fa;color:#1a73e8}.format-dropdown-trigger:focus{background:#e8f0fe;color:#1a73e8}.format-dropdown-trigger:disabled{opacity:.4;cursor:not-allowed;color:#9aa0a6}.format-dropdown-trigger:disabled:hover{background:transparent;color:#9aa0a6}.format-dropdown-trigger.open{background:#e8f0fe;color:#1a73e8}.format-icon,.dropdown-icon{font-size:14px;min-width:16px;display:flex;align-items:center;justify-content:center}.format-icon svg,.dropdown-icon svg{width:14px;height:14px;display:block;fill:currentColor}.format-label,.dropdown-label{flex:1;text-align:left;white-space:nowrap}.dropdown-arrow{font-size:10px;color:#5f6368;transition:transform .15s ease;min-width:10px}.format-dropdown-trigger.open .dropdown-arrow{transform:rotate(180deg)}.format-dropdown-menu,.dropdown-menu{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #dadce0;border-radius:6px;box-shadow:0 2px 8px #00000026;z-index:1000;margin-top:2px;overflow:visible;display:block}.format-dropdown-item,.dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:transparent;font-size:13px;font-weight:500;color:#3c4043;cursor:pointer;transition:all .15s ease;text-align:left;white-space:nowrap}.dropdown-item:hover:not(.selected){background:#f8f9fa;color:#1a73e8}.format-dropdown-item:hover{background:#f8f9fa;color:#1a73e8}.format-dropdown-item.selected,.dropdown-item.selected{background:#e8f0fe;color:#1a73e8;font-weight:600}.dropdown-item.selected:hover{background:#d2e3fc;color:#1557b0}.format-dropdown-item.selected:after,.dropdown-item.selected:after{content:"✓";margin-left:auto;color:#1a73e8;font-weight:700}.font-family-select:hover,.font-size-select:hover,.number-format-select:hover,.decimals-select:hover{background:#f8f9fa;color:#1a73e8}.font-family-select:focus,.font-size-select:focus,.number-format-select:focus,.decimals-select:focus{background:#e8f0fe;color:#1a73e8}.font-family-select:disabled,.font-size-select:disabled,.number-format-select:disabled,.decimals-select:disabled{opacity:.4;cursor:not-allowed;color:#9aa0a6}.font-family-select:disabled:hover,.font-size-select:disabled:hover,.number-format-select:disabled:hover,.decimals-select:disabled:hover{background:transparent;color:#9aa0a6}.toolbar-group .font-family-select{min-width:100px}.toolbar-group .font-size-select{width:55px;min-width:55px}.toolbar-group .number-format-select{min-width:70px}.toolbar-group .decimals-select{width:120px;min-width:120px}.decimals-dropdown{min-width:120px}.color-control{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:28px;height:28px}.color-label{font-size:10px;font-weight:700;color:#3c4043;cursor:pointer;-webkit-user-select:none;user-select:none;text-align:center;min-width:16px}.color-control input[type=color]{width:16px;height:12px;border:1px solid #dadce0;border-radius:2px;cursor:pointer;background:none;padding:0}.color-control input[type=color]:disabled{opacity:.4;cursor:not-allowed}.color-control input[type=color]::-webkit-color-swatch-wrapper{padding:0;border-radius:2px}.color-control input[type=color]::-webkit-color-swatch{border:none;border-radius:2px}.toolbar-btn strong{font-weight:700}.toolbar-btn em{font-style:italic;font-family:serif}.toolbar-btn:nth-child(1){font-family:monospace}@media (max-width: 768px){.formatting-toolbar{flex-wrap:wrap;padding:6px 8px;gap:8px}.toolbar-group{padding:0 4px;gap:2px}.font-family-select{min-width:100px}.toolbar-btn{width:24px;height:24px;font-size:11px}.toolbar-btn svg{width:14px;height:14px;display:block;fill:currentColor}.number-format-dropdown{min-width:90px}.format-dropdown-trigger{font-size:12px;gap:4px;padding:0 6px}.format-icon{font-size:12px;min-width:14px}.format-icon svg{width:12px;height:12px;display:block;fill:currentColor}}.toolbar-btn:focus,.font-family-select:focus,.font-size-select:focus,.number-format-select:focus,.decimals-select:focus,.format-dropdown-trigger:focus{outline:2px solid #4285f4;outline-offset:1px}.formatting-toolbar.loading{opacity:.7;pointer-events:none}.formatting-toolbar.loading:after{content:"";position:absolute;top:50%;right:12px;width:16px;height:16px;border:2px solid #dadce0;border-top-color:#4285f4;border-radius:50%;animation:spin 1s linear infinite}._container_1kym3_2{width:100%;display:flex;flex-direction:column;gap:8px;padding:12px;background:#fafafa;border-top:1px solid #e8eaed}._fileInput_1kym3_13{display:none}._attachments_1kym3_18{display:flex;flex-wrap:wrap;gap:8px;padding:0}._attachment_1kym3_18{display:flex;align-items:center;gap:6px;padding:6px 8px;background:#fff;border:1px solid #e8eaed;border-radius:8px;max-width:200px}._attachmentImage_1kym3_36{width:24px;height:24px;border-radius:4px;object-fit:cover}._attachmentIcon_1kym3_43{color:#5f6368;flex-shrink:0}._attachmentName_1kym3_48{font-size:12px;color:#3c4043;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}._attachmentRemove_1kym3_57{padding:2px;background:transparent;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#5f6368;flex-shrink:0;transition:color .2s ease}._attachmentRemove_1kym3_57:hover{color:#d93025}._wrapper_1kym3_75{position:relative;width:100%;padding:12px;background:#fff;border:1px solid #e8eaed;border-radius:12px;box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease;display:flex;flex-direction:column;gap:8px}._wrapperFocused_1kym3_89{border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e81a}._wrapperDragging_1kym3_94{background:#eef3fe;border:2px dashed #1a73e8}._textareaWrapper_1kym3_100{position:relative;width:100%}._textarea_1kym3_100{width:100%;min-height:24px;max-height:200px;padding:0;border:none;background:transparent;font-size:14px;font-family:inherit;line-height:1.5;color:#202124;resize:none;outline:none;overflow-y:auto;box-sizing:border-box}._textarea_1kym3_100::placeholder{color:#9aa0a6}._placeholder_1kym3_127{position:absolute;inset:0;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;color:#9aa0a6}._placeholderText_1kym3_140{font-size:14px;line-height:1.5}._placeholderHints_1kym3_145{display:flex;gap:12px;align-items:center;padding-bottom:2px;font-size:11px;color:#9aa0a6;opacity:.8}._hint_1kym3_155{display:flex;align-items:center;gap:4px;white-space:nowrap}._actions_1kym3_163{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-shrink:0;padding-top:8px}._actionButton_1kym3_173{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:#f8f9fa;border:1px solid #e8eaed;border-radius:8px;color:#5f6368;cursor:pointer;transition:all .2s ease;flex-shrink:0}._actionButton_1kym3_173:hover:not(:disabled){background:#f1f3f4;border-color:#dadce0}._actionButton_1kym3_173:active:not(:disabled){background:#e8eaed}._actionButton_1kym3_173:disabled{opacity:.5;cursor:not-allowed}._sendButton_1kym3_204{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:#e8eaed;border:none;border-radius:8px;color:#9aa0a6;cursor:not-allowed;transition:all .2s ease;flex-shrink:0}._sendButtonActive_1kym3_220{background:#1a73e8;color:#fff;cursor:pointer}._sendButtonActive_1kym3_220:hover{background:#1557b0;transform:scale(1.05)}._sendButtonActive_1kym3_220:active{transform:scale(.95)}._sendButtonStop_1kym3_235{background:#d93025;color:#fff;cursor:pointer}._sendButtonStop_1kym3_235:hover{background:#b1271d}@media (max-width: 400px){._container_1kym3_2{padding:8px}._wrapper_1kym3_75{padding:8px;gap:6px}._placeholderHints_1kym3_145{flex-direction:column;align-items:flex-start;gap:4px}._actions_1kym3_163{gap:6px}._actionButton_1kym3_173,._sendButton_1kym3_204{width:28px;height:28px}}.reasoning-block{border:1px solid var(--border-color, #e0e0e0);border-radius:6px;background:var(--reasoning-bg, #f8f9fa);overflow:hidden}.reasoning-header{width:100%;display:flex;align-items:center;gap:8px;padding:8px 12px;background:none;border:none;cursor:pointer;font-size:13px;color:var(--text-secondary, #666);transition:background-color .2s ease}.reasoning-header:hover{background:var(--hover-bg, rgba(0, 0, 0, .05))}.reasoning-header.expanded{border-bottom:1px solid var(--border-color, #e0e0e0)}.reasoning-icon{font-size:14px;flex-shrink:0}.reasoning-title{flex:1;text-align:left;font-weight:500}.reasoning-toggle{font-size:10px;color:var(--text-tertiary, #999);transition:transform .2s ease;flex-shrink:0}.reasoning-content{padding:12px;background:var(--reasoning-content-bg, #ffffff);border-top:1px solid var(--border-color, #e0e0e0)}.reasoning-text{font-size:13px;line-height:1.5;color:var(--text-secondary, #666);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.reasoning-text p{margin:0 0 8px}.reasoning-text p:last-child{margin-bottom:0}.reasoning-text h1,.reasoning-text h2,.reasoning-text h3,.reasoning-text h4,.reasoning-text h5,.reasoning-text h6{margin:12px 0 6px;font-size:14px;font-weight:600;color:var(--text-primary, #333)}.reasoning-text h1:first-child,.reasoning-text h2:first-child,.reasoning-text h3:first-child,.reasoning-text h4:first-child,.reasoning-text h5:first-child,.reasoning-text h6:first-child{margin-top:0}.reasoning-text ul,.reasoning-text ol{margin:8px 0;padding-left:20px}.reasoning-text li{margin:2px 0}.reasoning-text code{background:var(--code-bg, rgba(0, 0, 0, .05));padding:2px 4px;border-radius:3px;font-size:12px;font-family:var( --font-mono, "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace )}.reasoning-text pre{background:var(--code-bg, rgba(0, 0, 0, .05));padding:8px;border-radius:4px;overflow-x:auto;margin:8px 0;font-family:var( --font-mono, "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace )}.reasoning-text pre code{background:none;padding:0;font-family:inherit}.reasoning-text blockquote{border-left:3px solid var(--border-color, #e0e0e0);padding-left:12px;margin:8px 0;color:var(--text-tertiary, #999)}.reasoning-text strong{font-weight:600;color:var(--text-primary, #333)}.reasoning-text em{font-style:italic}.reasoning-streaming{display:flex;align-items:center;justify-content:center;padding:16px}.thinking-dots{display:flex;gap:4px}.thinking-dots span{width:6px;height:6px;border-radius:50%;background:var(--text-tertiary, #999);animation:thinking-pulse 1.4s infinite ease-in-out}.thinking-dots span:nth-child(1){animation-delay:-.32s}.thinking-dots span:nth-child(2){animation-delay:-.16s}@keyframes thinking-pulse{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1);opacity:1}}@media (prefers-color-scheme: dark){.reasoning-block{--reasoning-bg: #2a2a2a;--reasoning-content-bg: #1e1e1e;--border-color: #404040;--text-primary: #e0e0e0;--text-secondary: #b0b0b0;--text-tertiary: #808080;--hover-bg: rgba(255, 255, 255, .05);--code-bg: rgba(255, 255, 255, .1)}}:root{--color-primary: #1a73e8;--color-primary-light: #e8f0fe;--color-primary-border: #cfe3ff;--color-text-primary: #202124;--color-text-secondary: #5f6368;--color-text-tertiary: #9aa0a6;--color-border: #e8eaed;--color-border-light: #eceff1;--color-background: #ffffff;--color-background-light: #f8f9fa;--color-background-lighter: #f1f3f4;--color-error: #d93025;--color-success: #4caf50;--spacing-xs: 2px;--spacing-sm: 4px;--spacing-md: 6px;--spacing-lg: 8px;--spacing-xl: 12px;--radius-sm: 3px;--radius-md: 4px;--radius-lg: 6px;--radius-xl: 8px;--radius-pill: 999px}.chat-panel{position:relative;height:100%;background:var(--color-background);border-left:1px solid #dadce0;display:flex;flex-direction:column;z-index:3100;transition:width .3s ease;box-shadow:-2px 0 8px #0000001a;overflow:hidden;flex-shrink:0;touch-action:pan-y pinch-zoom}.chat-panel.collapsed{width:0px!important;min-width:0;border-left:none;box-shadow:none}.chat-panel.collapsed .chat-panel-content,.chat-panel.collapsed .chat-usage,.chat-panel.collapsed .chat-resize-handle,.chat-panel.collapsed .chat-tabs{display:none}.chat-expand-floating{position:fixed;top:50%;right:12px;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-background);box-shadow:0 4px 12px #00000026;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;z-index:1000;transition:all .2s ease}.chat-expand-floating:hover{transform:translateY(-50%) scale(1.05);box-shadow:0 6px 16px #0003;background:var(--color-background-light)}.chat-expand-floating:active{transform:translateY(-50%) scale(.95)}.chat-panel.resizing{transition:none}.chat-panel.resizing .chat-panel-content{overflow:hidden}.chat-tabs{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-background);border-bottom:1px solid var(--color-border-light);position:sticky;top:0;z-index:6;overflow-x:auto}.chat-tab{appearance:none;border:1px solid transparent;background:transparent;color:var(--color-text-secondary);font-size:11px;font-weight:500;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-pill);cursor:pointer;display:inline-flex;align-items:center;gap:var(--spacing-md);white-space:nowrap;transition:all .15s ease}.chat-tab:hover{background:#f6f8fa;border-color:var(--color-border)}.chat-tab.active{background:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary-border)}.chat-tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:0}.chat-tab-label{display:inline-block;max-width:120px;text-overflow:ellipsis;overflow:hidden}.chat-tab-close{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:12px;color:var(--color-text-tertiary);border-radius:50%;transition:all .15s ease}.chat-tab-close:hover{background:#0000000f;color:var(--color-text-secondary)}.chat-tab-add{appearance:none;border:1px dashed #e0e3e7;background:transparent;color:#6b7280;font-size:12px;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-pill);cursor:pointer;margin-left:var(--spacing-xs);transition:all .15s ease}.chat-tab-add:hover{background:var(--color-background-light);border-color:#cfd3d7}.chat-context-row{margin-top:var(--spacing-sm);cursor:help;border-radius:var(--radius-sm);padding:var(--spacing-xs) var(--spacing-sm);margin:var(--spacing-sm) calc(-1 * var(--spacing-sm)) 0;transition:background-color .15s ease}.chat-context-row:hover{background-color:var(--color-background-lighter)}.chat-collapse-button{appearance:none;border:1px solid transparent;background:transparent;color:var(--color-text-secondary);font-size:12px;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-pill);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease;margin-left:auto;width:24px;height:24px}.chat-collapse-button:hover{background:#f6f8fa;border-color:var(--color-border);color:var(--color-text-primary)}.chat-collapse-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:0}.chat-panel.collapsed .chat-tab,.chat-panel.collapsed .chat-tab-add{display:none}.chat-usage{padding:var(--spacing-md) 10px;border-bottom:1px solid var(--color-border-light);background:var(--color-background)}.chat-usage-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-lg);margin-bottom:var(--spacing-sm)}.chat-usage-label,.chat-usage-count{font-size:11px}.chat-usage-label{color:var(--color-text-secondary);display:flex;align-items:center;gap:6px}.chat-usage-label .info-icon{color:var(--color-text-tertiary, #9ca3af);cursor:help;transition:color .15s ease;padding:4px;border-radius:3px;margin-left:2px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.chat-usage-label .info-icon:hover{color:var(--color-primary, #4f46e5);background-color:var(--color-background-light, #f8fafc)}.chat-usage-count{color:#1f2937;font-weight:500}.chat-usage-bar{width:100%;height:6px;background:#edf2f7;border-radius:var(--radius-pill);overflow:hidden}.chat-usage-bar>span{display:block;height:100%;background:linear-gradient(90deg,#4f46e5,#2563eb)}.chat-usage-cta{margin-top:var(--spacing-sm);font-size:11px;color:var(--color-text-secondary)}.chat-usage-cta a{color:var(--color-primary);text-decoration:none;font-weight:500;transition:text-decoration .15s ease}.chat-usage-cta a:hover{text-decoration:underline}.chat-toggle{display:none}.chat-panel-content{flex:1;display:flex;flex-direction:column;overflow:hidden;height:100%;max-height:100%}.chat-messages{flex:1;overflow-y:auto;padding:var(--spacing-xs) var(--spacing-xl);display:flex;flex-direction:column;gap:1px;min-height:0;position:relative}.chat-message{display:flex;flex-direction:column;gap:var(--spacing-sm);align-items:stretch}.message-bubble{max-width:85%;padding:var(--spacing-sm) var(--spacing-xl);border-radius:var(--radius-lg);font-size:12px;line-height:1.2;word-wrap:break-word;position:relative}.message-bubble.user{background:var(--color-background-lighter);color:var(--color-text-primary);border-bottom-right-radius:var(--radius-md);max-width:100%}.message-bubble.assistant{background:transparent;color:var(--color-text-primary);border:none;padding:var(--spacing-xs) 0;max-width:100%}.user-edit-button{position:absolute;top:2px;right:6px;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:#5f6368;text-shadow:0 1px 0 rgba(255,255,255,.85);cursor:pointer;opacity:0;transition:opacity .15s ease,color .15s ease,transform .1s ease;z-index:2}.user-edit-button:hover{color:#202124}.user-edit-button:active{transform:scale(.95)}.user-edit-button:focus-visible{outline:2px solid #1a73e8;outline-offset:1px;border-radius:3px}.message-bubble.user:hover .user-edit-button,.chat-message.user:hover .user-edit-button{opacity:1}.user-edit-textarea{width:100%;min-height:76px;max-height:160px;padding:12px 12px 44px 14px;border:1px solid #e8eaed;border-radius:8px;font-size:14px;font-family:inherit;resize:vertical;outline:none;transition:border-color .15s ease,box-shadow .15s ease;background:#fff;color:#202124;line-height:1.4;box-sizing:border-box}.user-edit-textarea:focus{border-color:#1a73e8;box-shadow:0 2px 8px #1a73e826}.user-edit-actions-floating{position:absolute;right:8px;bottom:6px;display:flex;align-items:center;gap:6px}.user-edit-confirm-floating{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:none;background:#1a73e8;color:#fff;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.user-edit-confirm-floating:hover{background:#1557b0;box-shadow:0 4px 8px #1a73e840}.user-edit-confirm-floating:active{transform:scale(.96)}.user-edit-cancel-floating{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid #dadce0;background:#f8f9fa;color:#5f6368;cursor:pointer}.user-edit-wrapper{position:relative}.chat-message.dim-after-edit{opacity:.45;filter:grayscale(.1);pointer-events:none}.message-bubble.error{background:#fff8f6;border:1px solid #ffd6cc;border-left:4px solid var(--color-error);border-radius:var(--radius-xl);padding:10px 14px;max-width:90%;margin:var(--spacing-md) 0;box-shadow:0 1px 2px #0000000f}.error-message{display:flex;flex-direction:column;gap:var(--spacing-xl);font-size:13px}.error-content{display:flex;align-items:flex-start;gap:10px}.error-icon{font-size:18px;flex-shrink:0;display:flex;align-items:center;color:var(--color-error);margin-top:1px}.error-text{line-height:1.4;color:var(--color-error);flex:1}.error-retry-button{appearance:none;background:transparent;color:#b31412;border:1px solid #ffb3a6;border-radius:var(--radius-pill);padding:5px 10px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;align-self:flex-start;margin-left:28px;display:inline-flex;align-items:center;gap:var(--spacing-md)}.error-retry-button:hover{background:#fff0ed;border-color:#ff9c8b}.error-retry-button:active{background:#ffe5e0}.retry-icon{display:inline-flex;align-items:center}.message-bubble.assistant{font-size:12px;line-height:1.4;color:var(--color-text-primary)}.message-bubble.assistant p{margin:0 0 var(--spacing-xs) 0}.message-bubble.assistant p:last-child{margin-bottom:0}.message-bubble.assistant h1,.message-bubble.assistant h2,.message-bubble.assistant h3,.message-bubble.assistant h4,.message-bubble.assistant h5,.message-bubble.assistant h6{margin:var(--spacing-lg) 0 var(--spacing-sm) 0;font-weight:600;color:var(--color-text-primary)}.message-bubble.assistant h1:first-child,.message-bubble.assistant h2:first-child,.message-bubble.assistant h3:first-child,.message-bubble.assistant h4:first-child,.message-bubble.assistant h5:first-child,.message-bubble.assistant h6:first-child{margin-top:0}.message-bubble.assistant h1{font-size:16px;margin:var(--spacing-md) 0 var(--spacing-sm) 0}.message-bubble.assistant h2{font-size:14px;margin:5px 0 var(--spacing-xs) 0}.message-bubble.assistant h3{font-size:13px;margin:var(--spacing-sm) 0 var(--spacing-xs) 0}.message-bubble.assistant h4{font-size:12.5px;margin:var(--spacing-sm) 0 var(--spacing-xs) 0}.message-bubble.assistant h5{font-size:12px;margin:var(--spacing-sm) 0 var(--spacing-xs) 0}.message-bubble.assistant h6{font-size:11.5px;margin:var(--spacing-sm) 0 var(--spacing-xs) 0}.message-bubble.assistant ul,.message-bubble.assistant ol,.message-bubble.assistant .inline-segment-container ul,.message-bubble.assistant .inline-segment-container ol{margin:var(--spacing-sm) 0 var(--spacing-xs) 0;padding-left:18px}.message-bubble.assistant li,.message-bubble.assistant .inline-segment-container li{margin:1px 0}.message-bubble.assistant code{background:var(--color-background-lighter);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px}.code-block-container{position:relative;margin:var(--spacing-xl) 0;display:flex;flex-direction:column;width:100%}.code-block{background:#1e1e1e!important;border:1px solid #3c3c3c;border-radius:var(--radius-xl);padding:var(--spacing-xl) 16px;overflow:auto;color:#d4d4d4;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.4;margin:0;max-width:100%;position:relative}.code-block code{background:none!important;padding:0;border-radius:0;color:inherit;font-family:inherit;font-size:inherit}.code-block pre{background:transparent!important;margin:0!important;padding:0!important}.code-block .hljs{background:transparent!important;color:#d4d4d4!important}.code-block .hljs-keyword,.code-block .hljs-selector-tag,.code-block .hljs-built_in{color:#569cd6!important}.code-block .hljs-string,.code-block .hljs-attr{color:#ce9178!important}.code-block .hljs-number,.code-block .hljs-literal{color:#b5cea8!important}.code-block .hljs-comment{color:#6a9955!important;font-style:italic}.code-block .hljs-function,.code-block .hljs-title{color:#dcdcaa!important}.code-block .hljs-variable,.code-block .hljs-name{color:#9cdcfe!important}.code-block .hljs-operator,.code-block .hljs-punctuation{color:#d4d4d4!important}.code-block .hljs-property{color:#92c5f8!important}.code-block .hljs-tag{color:#569cd6!important}.code-block .hljs-attribute{color:#92c5f8!important}.code-block .language-excel .hljs-built_in{color:#4fc3f7!important;font-weight:700}.code-block .language-excel .hljs-variable{color:#81c784!important;font-weight:700}.code-block .language-excel .hljs-operator{color:#ffb74d!important}.code-block .language-excel .hljs-string{color:#f48fb1!important}.code-block .language-excel .hljs-number{color:#ce93d8!important}.code-copy-button{align-self:flex-end;margin-bottom:var(--spacing-md);background:var(--color-background-light);border:1px solid #e5e7eb;border-radius:var(--radius-md);padding:var(--spacing-xs) var(--spacing-md);color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;font-size:11px}.code-block-container:hover .code-copy-button{border-color:#d1d5db}.code-copy-button:hover{background:var(--color-background);border-color:#cfd3d7;color:#374151}.code-copy-button.copied{background:var(--color-success);border-color:var(--color-success);color:#fff}.code-block pre{background:transparent!important;border:none!important;border-radius:0!important;padding:0!important;margin:0!important;overflow:auto!important;color:inherit!important;font-family:inherit!important;font-size:inherit!important;line-height:inherit!important}.code-block pre code{background:none!important;padding:0!important;border-radius:0!important;color:inherit!important;font-family:inherit!important;font-size:inherit!important}.message-bubble.assistant blockquote{border-left:3px solid #dadce0;margin:var(--spacing-lg) 0;padding-left:var(--spacing-xl);color:var(--color-text-secondary)}.message-bubble.assistant a{color:var(--color-primary);text-decoration:none;transition:text-decoration .15s ease}.message-bubble.assistant a:hover{text-decoration:underline}.message-bubble.assistant strong{font-weight:700}.message-bubble.assistant em{font-style:italic}.message-bubble.assistant table{display:table;width:100%;border-collapse:collapse;margin:var(--spacing-lg) 0;font-size:12px;border-radius:var(--radius-xl);overflow:hidden;box-shadow:0 2px 8px #0000001a;border:1px solid var(--color-border);background:var(--color-background);min-width:200px}.message-bubble.assistant th,.message-bubble.assistant td{padding:var(--spacing-sm) var(--spacing-lg);border-bottom:1px solid var(--color-background-lighter);text-align:left;vertical-align:middle;line-height:1.4}.message-bubble.assistant th{background:var(--color-background-light);color:#1f2937;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #e5e7eb}.message-bubble.assistant td{background:var(--color-background);color:#374151;font-size:12px}.message-bubble.assistant tr:nth-child(2n) td{background:#fafbfc}.message-bubble.assistant tr:hover td{background:#f0f4ff}.message-bubble.assistant tr:last-child td{border-bottom:none}.message-bubble.assistant td strong,.message-bubble.assistant th strong{font-weight:500;color:#111827}.message-bubble.assistant td em,.message-bubble.assistant th em{font-style:italic;color:#6b7280}.message-actions{display:flex;gap:6px;margin-top:8px}.message-action-button{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-background-light);font-size:11px;font-weight:400;cursor:pointer;transition:all .2s ease;color:var(--color-text-secondary);display:flex;align-items:center;gap:var(--spacing-sm)}.message-action-button:hover{border-color:#dadce0;background:var(--color-background-lighter)}.message-action-button.primary{background:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary)}.message-action-button.primary:hover{background:#d2e3fc}.message-action-button.secondary{background:#fce8e6;color:var(--color-error);border-color:var(--color-error)}.message-action-button.secondary:hover{background:#fad2cf}.tool-events-list{display:flex;flex-direction:column;gap:2px;margin:1px 0 var(--spacing-xs) 0}.inline-segment-container{display:flex;flex-direction:column;gap:2px}.tool-event{border:1px solid var(--border-color, #e0e0e0);border-radius:6px;background:var(--tool-bg, #f8f9fa);overflow:hidden}.tool-event.tool-event-running{--tool-bg: #f3f8ff;border-color:#cfe0fc}.tool-event.tool-event-succeeded,.tool-event.tool-event-completed{--tool-bg: #f8f9fa;border-color:var(--border-color, #e0e0e0)}.tool-event.tool-event-failed{--tool-bg: #fff6f6;border-color:#f5c6c6}.tool-event-header{width:100%;display:flex;align-items:center;gap:8px;padding:8px 12px;background:none;border:none;cursor:pointer;font-size:13px;color:var(--text-secondary, #666);transition:background-color .2s ease}.tool-event-header:hover{background:var(--hover-bg, rgba(0, 0, 0, .05))}.tool-event-header.expanded{border-bottom:1px solid var(--border-color, #e0e0e0)}.tool-event-header:disabled{cursor:default}.tool-event-header:disabled:hover{background:none}.tool-event-icon{font-size:14px;flex-shrink:0}.tool-event-title{flex:1;text-align:left;font-weight:500;font-size:13px;color:var(--text-secondary, #666)}.tool-event-toggle{font-size:10px;color:var(--text-tertiary, #999);transition:transform .2s ease;flex-shrink:0}.tool-event-status{font-size:11px;color:#5f6368;font-weight:400}.tool-event-status.success{color:#1e8e3e}.tool-event-status.error{color:#d93025}.tool-status-spinner{width:10px;height:10px;border:1.5px solid #e8eaed;border-top:1.5px solid #1a73e8;border-radius:50%;animation:spin 1s linear infinite}.tool-event-body{padding:12px;background:var(--tool-content-bg, #ffffff);border-top:1px solid var(--border-color, #e0e0e0)}.tool-event-result{font-size:12px;color:#374151}.format-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:#374151;background:#f8f9fa;border:1px solid #e8eaed;border-radius:999px;padding:2px 8px}.format-chip.compact{padding:1px 6px}.format-chip-icon{display:inline-flex;align-items:center;justify-content:center;font-size:14px;color:#5f6368}.format-swatch{width:12px;height:12px;border-radius:3px;border:1px solid rgba(0,0,0,.08);box-shadow:inset 0 0 0 1px #fff6}.format-swatch.compact{width:10px;height:10px}.tool-event-error{font-size:12px;color:#d93025}.tool-preview-table table{border-collapse:collapse;border:1px solid #e8eaed}.tool-preview-table td{border:1px solid #e8eaed;padding:4px 6px;font-size:11px}.tool-event-kv{list-style:none;padding:0;margin:6px 0 0}.tool-event-kv li{display:flex;gap:6px;font-size:12px}.tool-event-kv .kv-key{color:#5f6368}.tool-event-kv .kv-sep{color:#c4c7c5}.tool-event-kv .kv-val{color:#374151}.suggestion-title{font-weight:500;font-size:11px;color:#5f6368;margin-bottom:6px}.suggestion-description{font-size:11px;color:#5f6368;margin-bottom:8px}.suggestion-description{font-size:11px;line-height:1.3;color:#5f6368}.suggestion-description p{margin:0 0 4px}.suggestion-description p:last-child{margin-bottom:0}.suggestion-description strong{font-weight:600;color:#202124}.suggestion-description em{font-style:italic}.suggestion-description code{background:#0000000d;padding:1px 3px;border-radius:2px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:10px}.suggestion-actions{display:flex;gap:8px}.chat-resize-handle{position:absolute;left:-2px;top:0;bottom:0;width:4px;cursor:col-resize;background:transparent;z-index:1;transition:background .15s ease}.chat-resize-handle:hover{background:#1a73e81a}.chat-resize-handle.resizing{background:#1a73e833}@media (prefers-color-scheme: dark){.tool-event{--tool-bg: #2a2a2a;--tool-content-bg: #1e1e1e;--border-color: #404040;--text-primary: #e0e0e0;--text-secondary: #b0b0b0;--text-tertiary: #808080;--hover-bg: rgba(255, 255, 255, .05)}.tool-event.tool-event-running{--tool-bg: #1a2332;border-color:#2d4a6b}.tool-event.tool-event-failed{--tool-bg: #2d1b1b;border-color:#5c3030}}.generation-spinner-container{position:relative;display:flex;align-items:center;gap:4px;background:#fffc;border-radius:4px;padding:4px 8px;border:1px solid #f1f3f4;box-shadow:0 1px 3px #0000000d;z-index:10;margin:4px 0;align-self:flex-end;width:fit-content}.generation-spinner{width:12px;height:12px;border:1.5px solid #e8eaed;border-top:1.5px solid #1a73e8;border-radius:50%;animation:spin 1s linear infinite}.generation-text{font-size:11px;color:#9aa0a6;font-weight:400}.table-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end;margin:0 0 var(--spacing-md) 0}.table-copy-button,.table-insert-button{background:#ffffffe6;border:1px solid rgba(0,0,0,.1);border-radius:var(--radius-md);padding:var(--spacing-sm);color:#6b7280;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.table-copy-button:hover,.table-insert-button:hover{background:var(--color-background);border-color:#0003;color:#374151}.table-copy-button.copied,.table-insert-button.inserted{background:var(--color-success);border-color:var(--color-success);color:#fff}@media (max-width: 768px){.chat-panel{position:relative;width:100%!important;height:auto;max-height:50vh;border-left:none;border-top:1px solid #dadce0;box-shadow:0 -2px 8px #0000000f}.chat-panel.collapsed,.chat-collapse-button{display:none}.chat-expand-floating{display:flex;position:fixed;bottom:20px;right:20px;top:auto;transform:none;z-index:1001}.chat-panel.collapsed .chat-tabs{display:none}.chat-toggle{display:block;position:sticky;top:0;z-index:5;background:#fff;border-bottom:1px solid #eceff1}.chat-toggle-button{width:100%;background:transparent;border:none;padding:8px 12px;font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:space-between;color:#202124}.chat-panel.collapsed .chat-panel-content,.chat-resize-handle{display:none}.chat-messages{padding:2px 8px;gap:2px}.message-bubble{max-width:100%;font-size:12px}}.context-menu{background:#fff;border:1px solid #d0d7de;border-radius:6px;box-shadow:0 8px 24px #8c959f33;padding:4px 0;min-width:180px;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif;-webkit-user-select:none;user-select:none}.context-menu-item{display:flex;align-items:center;width:100%;padding:8px 12px;border:none;background:none;color:#24292f;cursor:pointer;font-size:14px;text-align:left;transition:background-color .1s ease}.context-menu-item:hover:not(.disabled){background-color:#f6f8fa}.context-menu-item:active:not(.disabled){background-color:#e1e4e8}.context-menu-item.disabled{color:#8c959f;cursor:not-allowed}.context-menu-icon{display:flex;align-items:center;margin-right:8px;width:16px;height:16px;flex-shrink:0}.context-menu-label{flex:1;white-space:nowrap}.context-menu-shortcut{margin-left:16px;color:#57606a;font-size:12px;letter-spacing:.02em}.context-menu-separator{height:1px;background-color:#e1e4e8;margin:4px 0}@media (prefers-color-scheme: dark){.context-menu{background:#21262d;border-color:#30363d;box-shadow:0 8px 24px #010409cc}.context-menu-item{color:#f0f6fc}.context-menu-item:hover:not(.disabled){background-color:#30363d}.context-menu-item:active:not(.disabled){background-color:#21262d}.context-menu-item.disabled{color:#7d8590}.context-menu-shortcut{color:#8b949e}.context-menu-separator{background-color:#30363d}}.menu-bar{background:#f8f9fa;border-bottom:1px solid #dadce0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;position:relative;z-index:1000;display:flex;align-items:center;padding:0 12px;min-height:40px;overflow:hidden}.left-wrap{display:flex;align-items:center;gap:12px;flex:1;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;position:relative}.left-wrap::-webkit-scrollbar{display:none}.left-wrap:after{content:"";position:absolute;right:0;top:0;bottom:0;width:20px;background:linear-gradient(to left,#f8f9fa,transparent);pointer-events:none;opacity:0;transition:opacity .2s ease}@media (max-width: 768px){.menu-bar{position:sticky;top:0;z-index:1001;min-height:44px;padding:0 8px}.left-wrap:after{opacity:1}.workbook-title-input{max-width:150px;font-size:12px}}.menu-logo{display:flex;align-items:center;gap:8px;padding:8px 0;cursor:pointer;transition:opacity .15s ease}.auth-cta-and-logo{display:flex;align-items:center;gap:10px;justify-content:flex-end;flex-shrink:0}.title-wrap{display:flex;align-items:center;justify-content:flex-start;flex-shrink:0}.workbook-title-input{border:1px solid transparent;border-radius:6px;padding:4px 8px;font-size:13px;min-width:80px;max-width:300px;width:auto;background:transparent;font-weight:600;color:#202124;outline:none;white-space:nowrap;overflow:hidden}.workbook-title-input:empty:before{content:attr(data-placeholder);color:#9aa0a6;font-weight:400}.workbook-title-input:hover,.workbook-title-input:focus{border-color:#e6e8eb;background:#fff}.saving-indicator{display:flex;align-items:center;margin-left:8px;opacity:.7}.login-button{background:linear-gradient(135deg,#1a73e8,#1557b0);color:#fff;border:none;padding:6px 10px;border-radius:6px;font-weight:600;font-size:12px;cursor:pointer;box-shadow:0 2px 6px #1a73e84d}.login-button:hover{background:linear-gradient(135deg,#1557b0,#1a73e8)}.profile-menu-trigger{position:relative;display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:4px;cursor:pointer;border-radius:50%;transition:background-color .1s ease;-webkit-user-select:none;user-select:none}.profile-menu-trigger:hover{background-color:#f1f3f4}.profile-menu-trigger.active{background-color:#e8f0fe}.profile-menu-trigger .menu-dropdown{left:auto;right:0;top:100%}.profile-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover}.menu-logo:hover{opacity:.8}.logo-image{width:24px;height:24px;flex-shrink:0}.logo-text{font-size:16px;font-weight:600;color:#1a1a1a;white-space:nowrap}.menu-items{display:flex;align-items:center;flex-shrink:0}.menu-item-top{position:relative;padding:8px 12px;cursor:pointer;color:#3c4043;border-radius:4px;transition:background-color .1s ease;-webkit-user-select:none;user-select:none}.menu-item-top:hover{background-color:#f1f3f4}.menu-item-top.active{background-color:#e8f0fe;color:#1a73e8}.menu-dropdown{min-width:200px;background:#fff;border:1px solid #dadce0;border-radius:8px;box-shadow:0 4px 12px #00000026;padding:4px 0;z-index:1001;animation:menuFadeIn .15s ease-out;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px}.menu-item{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;cursor:pointer;transition:background-color .1s ease;position:relative}.menu-item:hover:not(.disabled){background-color:#f8f9fa}.menu-item.disabled{opacity:.5;cursor:not-allowed}.menu-item.has-submenu:after{content:"";position:absolute;right:8px;top:50%;transform:translateY(-50%);width:0;height:0;border-left:4px solid #5f6368;border-top:4px solid transparent;border-bottom:4px solid transparent}.menu-item-content{display:flex;align-items:center;gap:8px;flex:1}.menu-item-icon{display:flex;align-items:center;color:#5f6368}.menu-item-label{color:#3c4043;font-weight:400}.menu-item-shortcut{color:#5f6368;font-size:12px;margin-left:16px}.menu-separator{height:1px;background-color:#e0e0e0;margin:4px 0}.submenu-arrow{color:#5f6368;margin-left:auto}.submenu-dropdown{position:absolute;top:0;left:100%;min-width:180px;background:#fff;border:1px solid #dadce0;border-radius:8px;box-shadow:0 4px 12px #00000026;padding:4px 0;z-index:1002;animation:menuFadeIn .15s ease-out}.submenu-item{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;cursor:pointer;transition:background-color .1s ease;white-space:nowrap}.submenu-item:hover:not(.disabled){background-color:#f8f9fa}.submenu-item.disabled{opacity:.5;cursor:not-allowed}.submenu-item-icon{display:flex;align-items:center;color:#5f6368;margin-right:8px}.submenu-item-label{color:#3c4043;font-weight:400;flex:1}.submenu-item-shortcut{color:#5f6368;font-size:12px;margin-left:16px}.app-title{text-align:right;flex-shrink:0}.app-title h1{font-size:16px;font-weight:600;color:#202124;margin:0;line-height:1.2}.app-title p{font-size:11px;color:#5f6368;margin:0;line-height:1.2}@media (max-width: 768px){.menu-bar{padding:0 8px}.left-wrap{gap:8px}.menu-item-top{padding:6px 8px;font-size:12px}.menu-dropdown{min-width:180px;left:-20px}.menu-item{padding:6px 12px}.menu-item-shortcut{display:none}.workbook-title-input{min-width:60px;max-width:200px;font-size:12px}.app-title,.logo-text,.profile-name{display:none}.profile-menu-trigger{width:28px;height:28px;padding:2px}.logo-image{width:20px;height:20px}.auth-cta-and-logo{gap:6px}.login-button{padding:4px 8px;font-size:11px}}.menu-item-top:focus,.menu-item:focus{outline:2px solid #4285f4;outline-offset:1px}.menu-dropdown{animation:menuFadeIn .15s ease-out;transform-origin:top left}@keyframes menuFadeIn{0%{opacity:0;transform:scale(.95) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}@media (prefers-color-scheme: dark){.menu-bar{background:#2d2d2d;border-bottom-color:#404040}.menu-item-top{color:#e8eaed}.menu-item-top:hover{background-color:#3c4043}.menu-item-top.active{background-color:#1a73e8;color:#fff}.menu-dropdown{background:#2d2d2d;border-color:#404040}.menu-item:hover:not(.disabled){background-color:#3c4043}.menu-item-label{color:#e8eaed}.menu-item-icon,.menu-item-shortcut,.submenu-arrow{color:#9aa0a6}.menu-separator{background-color:#404040}.submenu-dropdown{background:#2d2d2d;border-color:#404040}.submenu-item:hover:not(.disabled){background-color:#3c4043}.submenu-item-label{color:#e8eaed}.submenu-item-icon,.submenu-item-shortcut{color:#9aa0a6}.profile-menu-trigger:hover{background-color:#3c4043}.profile-menu-trigger.active{background-color:#1a73e8}.app-title h1{color:#e8eaed}.app-title p{color:#9aa0a6}}.charts-sidebar{position:fixed;top:0;right:0;width:420px;height:100vh;background:#fff;border-left:1px solid #e8eaed;box-shadow:-6px 0 24px #0000001a;z-index:1500;display:flex;flex-direction:column;will-change:transform,opacity;transform:translate(440px);opacity:0;animation:chartsSlideIn .26s cubic-bezier(.2,.8,.2,1) forwards}@keyframes chartsSlideIn{0%{transform:translate(440px);opacity:0}60%{transform:translate(-8px);opacity:1}to{transform:translate(0);opacity:1}}.charts-sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid #e8eaed}.charts-sidebar-header h3{margin:0;font-size:16px;font-weight:700}.charts-close{border:none;background:transparent;font-size:18px;cursor:pointer}.charts-section{padding:12px 14px}.charts-type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.type-btn{display:flex;flex-direction:column;align-items:center;gap:6px;border:1px solid #e8eaed;border-radius:10px;padding:10px 8px;background:#fff;cursor:pointer}.type-btn.active{border-color:#1a73e8;box-shadow:0 0 0 3px #1a73e826}.type-icon{color:#3c4043}.type-btn.active .type-icon{color:#1a73e8}.type-label{font-size:12px;color:#3c4043}.charts-label{font-size:12px;font-weight:600;color:#374151;display:block;margin-bottom:6px}.charts-input{width:100%;height:40px;border:1px solid #d1d5db;border-radius:10px;padding:0 10px}.charts-input:disabled{background:#f8f9fa}.charts-preview{height:340px;border:1px solid #e8eaed;border-radius:10px;padding:8px;background:#fff}.charts-content{overflow:auto;padding-bottom:16px}.charts-footer{position:sticky;bottom:0;background:#fff;padding:12px 14px;border-top:1px solid #e8eaed;display:flex;gap:8px;justify-content:flex-end}.charts-primary{background:#1a73e8;color:#fff;border:none;padding:8px 12px;border-radius:8px;cursor:pointer}.charts-secondary{background:#f1f3f4;color:#3c4043;border:1px solid #dadce0;padding:8px 12px;border-radius:8px;cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.custom-functions-dialog-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:3200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease-out}.custom-functions-dialog{background:#fff;border-radius:10px;box-shadow:0 15px 40px #0003;width:90vw;max-width:1200px;height:80vh;max-height:800px;overflow:hidden;display:flex;flex-direction:column;position:relative;z-index:1;animation:slideIn .3s ease-out;border:1px solid rgba(255,255,255,.2)}.custom-functions-dialog .dialog-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px 12px;border-bottom:1px solid #e8eaed;background:linear-gradient(135deg,#f8f9fa,#f1f3f4);flex-shrink:0}.custom-functions-dialog .dialog-header h2{margin:0;font-size:20px;font-weight:600;color:#202124;display:flex;align-items:center;gap:8px}.custom-functions-dialog .dialog-header h2:before{content:"";width:20px;height:20px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23202124'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z'/%3E%3C/svg%3E") no-repeat center;background-size:contain}.custom-functions-dialog .dialog-close{background:none;border:none;font-size:20px;cursor:pointer;padding:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;color:#5f6368;transition:all .2s ease}.custom-functions-dialog .dialog-close:hover:not(:disabled){background-color:#5f63681a;color:#202124}.custom-functions-dialog .dialog-body{flex:1;overflow:hidden;display:flex;flex-direction:column}.custom-functions-dialog .dialog-footer{padding:16px 20px;border-top:1px solid #e8eaed;background:#fff;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.custom-functions-list{display:flex;flex-direction:column;height:100%}.list-header{padding:1rem;border-bottom:1px solid var(--border-color, #e1e5e9);background:var(--background-secondary, #f8f9fa)}.header-controls{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.search-box{flex:1;min-width:200px}.search-input{width:100%;padding:.5rem;border:1px solid var(--border-color, #e1e5e9);border-radius:4px;font-size:14px}.sort-controls{display:flex;align-items:center;gap:.5rem;font-size:14px}.sort-select{padding:.25rem .5rem;border:1px solid var(--border-color, #e1e5e9);border-radius:4px;font-size:14px}.btn-create-function{padding:.5rem 1rem;background:var(--primary-color, #007bff);color:#fff;border:none;border-radius:4px;font-size:14px;cursor:pointer;white-space:nowrap}.btn-create-function:hover{background:var(--primary-hover, #0056b3)}.functions-grid{flex:1;overflow-y:auto;padding:1rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:1rem;align-content:start}.empty-state{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem;color:var(--text-secondary, #6c757d)}.no-functions h3,.no-results h3{margin:0 0 .5rem;color:var(--text-primary, #212529)}.btn-create-first{margin-top:1rem;padding:.75rem 1.5rem;background:var(--primary-color, #007bff);color:#fff;border:none;border-radius:4px;font-size:16px;cursor:pointer}.btn-create-first:hover{background:var(--primary-hover, #0056b3)}.function-card{border:1px solid var(--border-color, #e1e5e9);border-radius:8px;padding:1rem;background:#fff;box-shadow:0 2px 4px #0000001a;display:flex;flex-direction:column;gap:.75rem}.function-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.function-name{margin:0;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:16px;color:var(--primary-color, #007bff);word-break:break-all}.function-actions{display:flex;gap:.5rem;flex-shrink:0}.btn-edit,.btn-delete{padding:.25rem;border:none;background:none;cursor:pointer;border-radius:4px;font-size:16px;line-height:1}.btn-edit:hover{background:var(--background-secondary, #f8f9fa)}.btn-delete:hover{background:var(--danger-light, #f8d7da)}.function-description p{margin:0;color:var(--text-secondary, #6c757d);line-height:1.4}.function-parameters h4{margin:0 0 .5rem;font-size:14px;font-weight:600;color:var(--text-primary, #212529)}.function-parameters ul{margin:0;padding:0;list-style:none}.parameter-item{display:flex;gap:.5rem;margin-bottom:.25rem;align-items:baseline}.parameter-name{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;background:var(--background-secondary, #f8f9fa);padding:.125rem .25rem;border-radius:3px;flex-shrink:0}.optional-indicator{color:var(--text-secondary, #6c757d);font-weight:400}.parameter-description{font-size:13px;color:var(--text-secondary, #6c757d);line-height:1.3}.function-meta{display:flex;flex-direction:column;gap:.25rem;font-size:12px;color:var(--text-secondary, #6c757d)}.meta-item{display:flex;gap:.5rem}.meta-label{font-weight:500;min-width:60px}.function-usage h4{margin:0 0 .25rem;font-size:14px;font-weight:600;color:var(--text-primary, #212529)}.usage-example{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;background:var(--background-secondary, #f8f9fa);padding:.5rem;border-radius:4px;display:block;border:1px solid var(--border-color, #e1e5e9)}.custom-function-editor{display:flex;flex-direction:column;height:100%;background:#fff}.editor-header{padding:20px 24px;border-bottom:1px solid #e8eaed;background:linear-gradient(135deg,#f8f9fa,#f1f3f4);flex-shrink:0}.editor-header h3{margin:0 0 8px;font-size:20px;font-weight:600;color:#202124}.editor-description{margin:0;font-size:14px;color:#5f6368;line-height:1.5}.editor-main{display:grid;grid-template-columns:1fr 380px;gap:0;flex:1;min-height:0}.editor-section{display:flex;flex-direction:column;border-right:1px solid #e8eaed;background:#fff}.section-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e8eaed;background:#fafbfc}.section-header h4{margin:0;font-size:16px;font-weight:600;color:#202124}.section-actions{display:flex;gap:8px}.btn-test{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#1a73e8;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-test:hover:not(:disabled){background:#1557b0;transform:translateY(-1px)}.btn-test:disabled{background:#dadce0;color:#5f6368;cursor:not-allowed;transform:none}.btn-icon{font-size:12px}.code-editor-container{display:flex;flex-direction:column;flex:1;min-height:0}.code-editor{flex:1;border:none;outline:none;padding:20px;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,Consolas,monospace;font-size:14px;line-height:1.6;background:#fafbfc;color:#202124;resize:none;tab-size:2}.code-editor::placeholder{color:#9aa0a6}.code-editor:focus{background:#fff}.editor-status{padding:12px 20px;border-top:1px solid #e8eaed;background:#fff;font-size:13px;font-weight:500}.status-validating{color:#1a73e8}.status-valid{color:#137333}.status-error{color:#d93025}.status-empty{color:#5f6368}.status-link{color:#1a73e8;text-decoration:none;font-weight:500;margin-left:8px}.status-link:hover{text-decoration:underline}.editor-sidebar{display:flex;flex-direction:column;gap:0;background:#f8f9fa;overflow-y:auto}.sidebar-section{border-bottom:1px solid #e8eaed;background:#fff}.sidebar-section:last-child{border-bottom:none}.sidebar-section h4{margin:0;padding:16px 20px 12px;font-size:14px;font-weight:600;color:#202124;background:#f8f9fa;border-bottom:1px solid #e8eaed}.error-section{background:#fef7f0;border-left:4px solid #f9ab00}.error-section h4{background:#fef7f0;color:#b06000}.error-list{margin:0;padding:0;list-style:none}.error-item{display:flex;align-items:flex-start;gap:8px;padding:12px 20px;border-bottom:1px solid #fce8e6;font-size:13px;line-height:1.4;color:#d93025}.error-item:last-child{border-bottom:none}.error-icon{flex-shrink:0;margin-top:1px}.preview-section .preview-content{padding:12px 16px}.preview-field{margin-bottom:8px}.preview-field:last-child{margin-bottom:0}.preview-field.compact{display:flex;align-items:baseline;gap:6px;margin-bottom:6px}.preview-field label{font-size:11px;font-weight:600;color:#5f6368;flex-shrink:0;min-width:fit-content}.preview-field.compact label{display:inline;text-transform:none;letter-spacing:normal;margin-bottom:0}.preview-field:not(.compact) label{display:block;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.function-name{display:inline-block;padding:2px 6px;background:#e8f0fe;color:#1a73e8;border-radius:3px;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,Consolas,monospace;font-size:12px;font-weight:600}.function-description,.return-description{margin:0;font-size:12px;line-height:1.3;color:#202124}.parameters-list{display:flex;flex-direction:column;gap:4px}.parameters-list.compact{gap:3px}.parameter-item{padding:8px;background:#f8f9fa;border-radius:4px;border:1px solid #e8eaed}.parameter-item.compact{display:flex;align-items:center;gap:6px;padding:4px 8px;flex-wrap:wrap}.parameter-name{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,Consolas,monospace;font-size:11px;font-weight:600;color:#202124;background:#fff;padding:1px 4px;border-radius:2px;border:1px solid #dadce0;flex-shrink:0}.parameter-badge{font-size:9px;font-weight:600;padding:1px 4px;border-radius:8px;text-transform:uppercase;letter-spacing:.2px;flex-shrink:0}.parameter-badge.optional{background:#fef7f0;color:#b06000;border:1px solid #f9ab00}.parameter-badge.type{background:#f3e8ff;color:#7c3aed;border:1px solid #a855f7}.parameter-description{margin:0;font-size:11px;line-height:1.2;color:#5f6368;flex:1;min-width:0}.help-section{background:#f8f9fa}.help-section details{background:transparent;border:none;padding:0}.help-section summary{padding:16px 20px;cursor:pointer;font-size:14px;font-weight:600;color:#1a73e8;background:#fff;border-bottom:1px solid #e8eaed;transition:background-color .2s ease}.help-section summary:hover{background:#f8f9fa}.help-content{padding:16px 20px;background:#fff}.help-example{margin-bottom:20px}.help-example:last-child{margin-bottom:0}.help-example h5{margin:0 0 8px;font-size:13px;font-weight:600;color:#202124}.help-code{background:#f8f9fa;border:1px solid #e8eaed;border-radius:6px;padding:12px;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,Consolas,monospace;font-size:12px;line-height:1.4;color:#202124;overflow-x:auto;margin:0;white-space:pre}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-primary, #212529)}.form-input,.form-textarea{width:100%;padding:.5rem;border:1px solid var(--border-color, #e1e5e9);border-radius:4px;font-size:14px;font-family:inherit}.form-textarea{resize:vertical;min-height:80px}.code-editor{font-family:Monaco,Menlo,Ubuntu Mono,monospace!important;background:var(--background-secondary, #f8f9fa);border:2px solid var(--border-color, #e1e5e9)}.form-help{display:block;margin-top:.25rem;font-size:12px;color:var(--text-secondary, #6c757d);line-height:1.3}.parameters-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.parameter-row{display:grid;grid-template-columns:150px 1fr auto auto;gap:.75rem;align-items:center}.parameter-name{font-family:Monaco,Menlo,Ubuntu Mono,monospace}.parameter-optional{display:flex;align-items:center;gap:.5rem;font-size:14px;white-space:nowrap;margin:0;cursor:pointer;padding-left:.75rem;justify-self:start;align-self:center}.parameter-optional input[type=checkbox]{margin:0;vertical-align:middle}.btn-remove-parameter{width:32px;height:32px;border:1px solid var(--border-color, #e1e5e9);background:#fff;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;line-height:1;color:var(--danger-color, #dc3545)}.btn-remove-parameter:hover:not(:disabled){background:var(--danger-light, #f8d7da)}.btn-remove-parameter:disabled{opacity:.5;cursor:not-allowed}.btn-add-parameter{padding:.5rem 1rem;border:1px solid var(--primary-color, #007bff);background:#fff;color:var(--primary-color, #007bff);border-radius:4px;cursor:pointer;font-size:14px}.btn-add-parameter:hover{background:var(--primary-color, #007bff);color:#fff}.validation-errors{padding:1rem;background:var(--danger-light, #f8d7da);border:1px solid var(--danger-color, #dc3545);border-radius:4px;margin-bottom:1rem}.validation-errors h4{margin:0 0 .5rem;color:var(--danger-color, #dc3545);font-size:14px}.validation-errors ul{margin:0;padding-left:1.5rem}.error-message{color:var(--danger-color, #dc3545);font-size:14px;margin-bottom:.25rem}.test-section{background:#f0f8ff;border-left:4px solid #1a73e8}.test-section h4{background:#f0f8ff;color:#1557b0}.test-parameters{padding:16px 20px}.test-parameter{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.test-parameter:last-child{margin-bottom:0}.parameter-label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#202124;margin-bottom:4px}.parameter-type{font-size:10px;color:#5f6368;font-weight:400}.parameter-optional{font-size:9px;background:#fef7f0;color:#b06000;padding:1px 4px;border-radius:8px;text-transform:uppercase;letter-spacing:.2px;font-weight:600}.parameter-input{width:100%;padding:8px 10px;border:1px solid #dadce0;border-radius:4px;font-size:13px;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,Consolas,monospace;background:#fff;transition:border-color .2s ease}.parameter-input:focus{outline:none;border-color:#1a73e8;box-shadow:0 0 0 1px #1a73e8}.parameter-input::placeholder{color:#9aa0a6;font-style:italic}.parameter-help{font-size:11px;color:#5f6368;line-height:1.3;margin-top:2px}.test-results{border-left:4px solid #137333}.test-results.success{background:#f0f8f0;border-left-color:#137333}.test-results.error{background:#fef7f0;border-left-color:#d93025}.test-results h4{background:inherit}.test-results.success h4{color:#0d652d}.test-results.error h4{color:#b52d20}.test-result-content{padding:16px 20px}.result-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.result-icon{font-size:14px;font-weight:700}.test-success .result-icon{color:#137333}.test-error .result-icon{color:#d93025}.result-status{font-size:13px;font-weight:600}.test-success .result-status{color:#137333}.test-error .result-status{color:#d93025}.execution-time{font-size:11px;color:#5f6368;font-weight:400;margin-left:auto}.result-value,.error-message{display:flex;flex-direction:column;gap:6px}.result-value label,.error-message label{font-size:11px;font-weight:600;color:#5f6368;text-transform:uppercase;letter-spacing:.5px}.result-output,.error-output{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,Consolas,monospace;font-size:12px;padding:8px 10px;border-radius:4px;border:1px solid #dadce0;background:#fff;white-space:pre-wrap;word-break:break-word;max-height:120px;overflow-y:auto}.result-output{color:#137333;border-color:#ceead6;background:#f8fff8}.error-output{color:#d93025;border-color:#fce8e6;background:#fef7f0}.editor-footer{padding:16px 24px;border-top:1px solid #e8eaed;background:#fff;display:flex;justify-content:flex-end;gap:12px;flex-shrink:0}.btn-secondary{padding:8px 16px;border:1px solid #dadce0;background:#fff;color:#202124;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease}.btn-secondary:hover{background:#f8f9fa;border-color:#bdc1c6}.btn-primary{padding:8px 16px;background:#1a73e8;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease}.btn-primary:hover:not(:disabled){background:#1557b0;transform:translateY(-1px)}.btn-primary:disabled{background:#dadce0;color:#5f6368;cursor:not-allowed;transform:none}.function-preview{background:var(--background-secondary, #f8f9fa);border:1px solid var(--border-color, #e1e5e9);border-radius:6px;padding:1rem;margin-bottom:1.5rem}.function-preview h4{margin:0 0 1rem;font-size:16px;font-weight:600;color:var(--text-primary, #212529)}.preview-content{display:flex;flex-direction:column;gap:.75rem}.preview-item{display:flex;flex-direction:column;gap:.25rem}.preview-item strong{font-weight:600;color:var(--text-primary, #212529)}.preview-item code{font-family:Monaco,Menlo,Ubuntu Mono,monospace;background:var(--background-primary, #ffffff);padding:.25rem .5rem;border-radius:4px;border:1px solid var(--border-color, #e1e5e9);font-size:13px}.parameters-preview{margin:.5rem 0 0;padding-left:1.5rem;list-style:none}.parameters-preview li{margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.optional-badge{background:#ffc107;color:#212529;font-size:11px;padding:.125rem .375rem;border-radius:12px;font-weight:500;text-transform:uppercase}.type-badge{background:#6f42c1;color:#fff;font-size:11px;padding:.125rem .375rem;border-radius:12px;font-weight:500;font-family:Monaco,Menlo,Ubuntu Mono,monospace}.help-section{background:#e8f4fd;border:1px solid #b8daff;border-radius:6px;padding:1rem;margin-bottom:1.5rem}.help-section h4{margin:0 0 1rem;font-size:16px;font-weight:600;color:#004085}.help-content{display:flex;flex-direction:column;gap:1rem}.help-item strong{display:block;margin-bottom:.5rem;font-weight:600;color:#004085}.help-code{background:#fff;border:1px solid #b8daff;border-radius:4px;padding:.75rem;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.4;overflow-x:auto;margin:0;white-space:pre}.custom-functions-dialog .dialog-footer .footer-info p{margin:0;font-size:14px;color:#5f6368;max-width:600px;line-height:1.4}.custom-functions-dialog .dialog-footer .btn-close{padding:8px 16px;border:1px solid #dadce0;background:#fff;color:#202124;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease}.custom-functions-dialog .dialog-footer .btn-close:hover{background:#f8f9fa;border-color:#bdc1c6}@media (max-width: 768px){.custom-functions-dialog{width:95vw;height:90vh}.header-controls{flex-direction:column;align-items:stretch}.functions-grid{grid-template-columns:1fr}.parameter-row{grid-template-columns:1fr;gap:.5rem}.parameter-row .btn-remove-parameter{justify-self:flex-end}.custom-functions-dialog .dialog-footer{flex-direction:column;gap:1rem;align-items:stretch}.custom-functions-dialog .dialog-footer .footer-info{order:2}.custom-functions-dialog .dialog-footer .footer-actions{order:1}.editor-main{grid-template-columns:1fr;grid-template-rows:1fr auto}.editor-section{border-right:none;border-bottom:1px solid #e8eaed}.editor-sidebar{max-height:300px}.section-header{flex-direction:column;gap:12px;align-items:stretch}.section-actions{justify-content:flex-start}.editor-footer{flex-direction:column;gap:8px}.btn-secondary,.btn-primary{width:100%;justify-content:center}}.feedback-dialog-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease-out}.feedback-dialog{background:#fff;border-radius:12px;box-shadow:0 20px 50px #00000040;width:600px;max-width:94vw;max-height:88vh;overflow:hidden;display:flex;flex-direction:column;animation:slideIn .25s ease-out;border:1px solid #e8eaed}.feedback-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px 12px;border-bottom:1px solid #e8eaed;background:#fff}.feedback-dialog-header h2{margin:0;font-size:18px;font-weight:700;color:#1f2937;letter-spacing:.2px}.feedback-dialog-close{background:none;border:none;font-size:20px;cursor:pointer;padding:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;color:#5f6368;transition:all .2s ease}.feedback-dialog-close:hover:not(:disabled){background-color:#5f63681a;color:#202124;transform:scale(1.05)}.feedback-dialog-close:disabled{opacity:.5;cursor:not-allowed}.feedback-dialog-content{padding:20px;flex:1;overflow-y:auto;background-color:#fff}.option-group{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.feedback-dialog .option-group{background:transparent;padding:0;border-radius:0;box-shadow:none}.feedback-dialog .option-group:hover{background:transparent}.option-group label{font-size:12px;font-weight:600;color:#374151;text-transform:uppercase}.option-group select,.option-group input[type=email],.option-group input[type=text],.option-group textarea{padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;background-color:#fff;transition:all .2s ease;width:100%;box-sizing:border-box}.option-group textarea{resize:vertical;font-family:inherit;line-height:1.4}.option-group input[type=email],.option-group input[type=text],.option-group select{height:44px;line-height:1.5}.feedback-dialog .option-group select{margin-left:0;min-width:0}.option-group input[type=email],.option-group input[type=text],.option-group textarea{cursor:text}.option-group select{cursor:default}.option-group select:focus,.option-group input:focus,.option-group textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.feedback-error{margin-top:8px;padding:12px;background:linear-gradient(135deg,#fce8e6,#fdf2f1);border:1px solid #ea4335;border-radius:8px;color:#d93025;font-size:14px}.feedback-dialog-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;border-top:1px solid #e8eaed;background:linear-gradient(135deg,#f8f9fa,#f1f3f4)}.cancel-button,.submit-button{padding:10px 20px;border-radius:6px;font-weight:600;font-size:13px;cursor:pointer;transition:all .2s ease;border:none;position:relative;overflow:hidden}.submit-button{background:linear-gradient(135deg,#1a73e8,#1557b0);color:#fff;box-shadow:0 2px 8px #1a73e84d}.submit-button:hover:not(:disabled){background:linear-gradient(135deg,#1557b0,#1a73e8);transform:translateY(-1px);box-shadow:0 4px 12px #1a73e866}.cancel-button:disabled,.submit-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.shortcuts-dialog-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}.shortcuts-dialog{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0003;max-width:800px;max-height:90vh;width:100%;overflow:hidden;display:flex;flex-direction:column}.shortcuts-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #e0e0e0;background:#f8f9fa}.shortcuts-header h2{margin:0;font-size:20px;font-weight:500;color:#202124}.close-button{width:32px;height:32px;border:none;border-radius:50%;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#5f6368;transition:all .1s ease}.close-button:hover{background:#f1f3f4}.shortcuts-content{flex:1;overflow-y:auto;padding:24px}.shortcuts-section{margin-bottom:32px}.shortcuts-section:last-child{margin-bottom:0}.shortcuts-section h3{margin:0 0 16px;font-size:16px;font-weight:500;color:#1a73e8;border-bottom:1px solid #e8f0fe;padding-bottom:8px}.shortcuts-list{display:grid;grid-template-columns:1fr;gap:8px}.shortcut-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:6px;transition:background-color .1s ease}.shortcut-item:hover{background:#f8f9fa}.shortcut-keys{display:flex;align-items:center;gap:4px;min-width:140px}.key{display:inline-block;padding:2px 8px;background:#f1f3f4;border:1px solid #dadce0;border-radius:4px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,sans-serif;font-size:11px;font-weight:500;color:#3c4043;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 1px 2px #0000001a}.key-separator{color:#5f6368;font-size:12px;font-weight:500}.shortcut-description{color:#3c4043;font-size:14px;flex:1;text-align:right}.shortcuts-footer{padding:16px 24px;border-top:1px solid #e0e0e0;background:#f8f9fa}.shortcuts-footer p{margin:0;font-size:13px;color:#5f6368;text-align:center}.shortcuts-content::-webkit-scrollbar{width:6px}.shortcuts-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.shortcuts-content::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.shortcuts-content::-webkit-scrollbar-thumb:hover{background:#a8a8a8}@media (max-width: 768px){.shortcuts-dialog-overlay{padding:10px}.shortcuts-dialog{max-height:95vh}.shortcuts-header{padding:16px 20px}.shortcuts-header h2{font-size:18px}.shortcuts-content{padding:20px}.shortcuts-section{margin-bottom:24px}.shortcut-item{flex-direction:column;align-items:flex-start;gap:8px;padding:12px}.shortcut-keys{min-width:auto}.shortcut-description{text-align:left;font-size:13px}.shortcuts-footer{padding:12px 20px}}@media (prefers-color-scheme: dark){.shortcuts-dialog{background:#2d2d2d;color:#e8eaed}.shortcuts-header{background:#1f1f1f;border-bottom-color:#404040}.shortcuts-header h2{color:#e8eaed}.close-button{color:#9aa0a6}.close-button:hover{background:#3c4043}.shortcuts-section h3{color:#8ab4f8;border-bottom-color:#1a73e8}.shortcut-item:hover{background:#3c4043}.key{background:#3c4043;border-color:#5f6368;color:#e8eaed}.key-separator{color:#9aa0a6}.shortcut-description{color:#e8eaed}.shortcuts-footer{background:#1f1f1f;border-top-color:#404040}.shortcuts-footer p{color:#9aa0a6}}.export-dialog-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.export-dialog{background:#fff;border-radius:10px;box-shadow:0 15px 40px #0003;width:520px;max-width:90vw;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;animation:slideIn .3s ease-out;border:1px solid rgba(255,255,255,.2)}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.export-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px 12px;border-bottom:1px solid #eceff1;background:#fff}.export-dialog-header h2{margin:0;font-size:20px;font-weight:600;color:#202124;display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:normal}.export-dialog-header h2:before{content:"";width:20px;height:20px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23202124'%3E%3Cpath d='M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M18,20H6V4H13V9H18V20Z'/%3E%3C/svg%3E") no-repeat center;background-size:contain}.export-dialog-close{background:none;border:none;font-size:20px;cursor:pointer;padding:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;color:#5f6368;transition:all .2s ease}.export-dialog-close:hover:not(:disabled){background-color:#5f63681a;color:#202124;transform:scale(1.05)}.export-dialog-close:disabled{opacity:.5;cursor:not-allowed}.export-dialog-content{padding:18px;flex:1;overflow-y:auto;background-color:#fafbfc}.export-intro{margin-bottom:16px;text-align:center}.export-description{margin:0;color:#5f6368;font-size:13px;line-height:1.4}.format-section{margin-bottom:16px;background:#fff;border-radius:8px;padding:16px;border:1px solid #e8eaed;animation:slideInUp .3s ease-out}.format-section h3{margin:0 0 12px;font-size:15px;font-weight:600;color:#202124;display:flex;align-items:center;gap:6px;text-transform:none;letter-spacing:normal}.format-section h3:before{content:"";width:16px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23202124'%3E%3Cpath d='M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M18,20H6V4H13V9H18V20Z'/%3E%3C/svg%3E") no-repeat center;background-size:contain}.format-explanation{margin-top:12px}.format-description{margin:0;padding:12px;background-color:#f8f9ff;border-left:3px solid #1a73e8;border-radius:4px;color:#5f6368;font-size:13px;line-height:1.4}.section-description{margin:0 0 16px;color:#5f6368;font-size:13px;line-height:1.4}.option-group{margin-bottom:14px;padding:10px;background-color:#f8f9fa;border-radius:6px;transition:all .2s ease}.option-group:hover{background-color:#f1f3f4}.option-group label,.checkbox-label{display:flex;align-items:flex-start;font-size:14px;color:#202124;cursor:pointer;font-weight:500;gap:12px;text-transform:none}.option-group input[type=checkbox]{margin-top:2px;cursor:pointer;width:16px;height:16px;accent-color:#1a73e8;flex-shrink:0}.option-content{display:flex;flex-direction:column;gap:4px}.option-title{font-weight:600;color:#202124;font-size:14px;text-transform:none}.option-description{font-weight:400;color:#5f6368;font-size:12px;line-height:1.3}.option-group select{margin-left:12px;padding:8px 12px;border:1px solid #dadce0;border-radius:6px;font-size:14px;min-width:220px;background-color:#fff;transition:all .2s ease}.option-group select:focus{outline:none;border-color:#1a73e8;box-shadow:0 0 0 3px #1a73e81a}.option-group select:hover{border-color:#5f6368}.range-selection{margin-bottom:16px;background:#fff;border-radius:8px;padding:16px;border:1px solid #e8eaed;animation:slideInUp .3s ease-out}@keyframes slideInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.range-selection h3{margin:0 0 12px;font-size:15px;font-weight:600;color:#202124;display:flex;align-items:center;gap:6px;text-transform:none;letter-spacing:normal}.range-selection h3:before{content:"";width:16px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23202124'%3E%3Cpath d='M3,3H21V5H3V3M3,7H15V9H3V7M3,11H21V13H3V11M3,15H15V17H3V15M3,19H21V21H3V19Z'/%3E%3C/svg%3E") no-repeat center;background-size:contain}.range-options{display:flex;flex-direction:column;gap:12px}.range-option{display:flex;align-items:flex-start;font-size:13px;color:#202124;cursor:pointer;font-weight:500;padding:8px;border-radius:6px;transition:background-color .2s ease;gap:10px}.range-option:hover{background-color:#f8f9fa}.range-option input[type=radio]{margin-top:2px;cursor:pointer;width:16px;height:16px;accent-color:#1a73e8;flex-shrink:0}.range-option-content{display:flex;flex-direction:column;gap:4px}.range-option-title{font-weight:600;color:#202124;font-size:14px;text-transform:none}.range-option-description{font-weight:400;color:#5f6368;font-size:12px;line-height:1.3}.custom-range{margin-top:12px;padding:14px;background:#f8f9fa;border-radius:6px;border:1px solid #e8eaed;animation:slideInUp .3s ease-out}.range-inputs{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center}.range-input-group{display:flex;align-items:center;gap:8px;background-color:#fff;padding:8px 12px;border-radius:8px;border:1px solid #dadce0}.range-input-group label{font-size:13px;color:#5f6368;min-width:40px;font-weight:500}.range-input-group input[type=text]{width:50px;padding:6px 8px;border:1px solid #dadce0;border-radius:4px;font-size:14px;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-weight:500;transition:all .2s ease}.range-input-group input[type=number]{width:70px;padding:6px 8px;border:1px solid #dadce0;border-radius:4px;font-size:14px;font-weight:600;transition:all .2s ease}.range-input-group input:focus{outline:none;border-color:#1a73e8;box-shadow:0 0 0 3px #1a73e81a}.range-input-group input:hover{border-color:#5f6368}.range-separator{font-size:16px;color:#64748b;margin:0 8px;font-weight:600}.export-options{background:#fff;border-radius:8px;padding:16px;border:1px solid #e8eaed;animation:slideInUp .4s ease-out}.export-options h3{margin:0 0 12px;font-size:15px;font-weight:600;color:#202124;display:flex;align-items:center;gap:6px;text-transform:none;letter-spacing:normal}.export-options h3:before{content:"";width:16px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23202124'%3E%3Cpath d='M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.22,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.22,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z'/%3E%3C/svg%3E") no-repeat center;background-size:contain}.export-dialog-footer{display:flex;justify-content:flex-end;gap:12px;padding:14px 20px;border-top:1px solid #eceff1;background:#fff}.cancel-button,.export-button{padding:10px 20px;border-radius:6px;font-weight:600;font-size:13px;cursor:pointer;transition:all .2s ease;border:none;position:relative;overflow:hidden}.cancel-button{background-color:#f8f9fa;color:#5f6368;border:1px solid #dadce0}.cancel-button:hover:not(:disabled){background-color:#f1f3f4;color:#202124;transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.export-button{background:linear-gradient(135deg,#1a73e8,#1557b0);color:#fff;box-shadow:0 2px 8px #1a73e84d}.export-button:hover:not(:disabled){background:linear-gradient(135deg,#1557b0,#1a73e8);transform:translateY(-1px);box-shadow:0 4px 12px #1a73e866}.cancel-button:disabled,.export-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.export-button:disabled{background:#dadce0;box-shadow:none}.spinner{display:inline-block;position:relative}.spinner-circle{border:2px solid #f3f3f3;border-top:2px solid #3498db;border-radius:50%;animation:spin 1s linear infinite}.spinner-small .spinner-circle{width:12px;height:12px;border-width:1px}.spinner-medium .spinner-circle{width:16px;height:16px;border-width:2px}.spinner-large .spinner-circle{width:24px;height:24px;border-width:2px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.function-suggest-menu{position:absolute;background:#fff;border:1px solid #e0e0e0;border-radius:6px;box-shadow:0 4px 16px #0000001f;margin-top:4px;z-index:1000;max-height:220px;overflow-y:auto;width:360px}.function-suggest-item{padding:8px 10px;cursor:pointer;display:flex;flex-direction:column;gap:2px}.function-suggest-item:hover,.function-suggest-item.active{background:#f1f3f4}.function-name{font-weight:600;color:#1f1f1f;font-size:12px}.function-syntax{font-size:11px;color:#5f6368}.function-desc{font-size:11px;color:#6a6f73;line-height:1.2}.formula-bar{display:flex;align-items:center;background:#fff;border-bottom:1px solid #e0e0e0;padding:8px 12px;gap:12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;min-height:36px;width:100%;box-sizing:border-box;position:relative;z-index:1;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.cell-reference{display:flex;align-items:center;min-width:90px;padding:6px 12px;background:#f8f9fa;border:1px solid #dadce0;border-radius:4px;flex-shrink:0}.cell-address{font-weight:500;color:#202124;font-size:12px;text-align:center;min-width:60px}.cell-address-input{border:none;background:transparent;font-weight:500;color:#202124;font-size:12px;text-align:center;min-width:60px;outline:none;padding:2px 4px;border-radius:2px;transition:all .1s ease}.cell-address-input:hover{background:#4285f40d}.cell-address-input:focus,.cell-address-input.editing{background:#fff;border:1px solid #4285f4;box-shadow:0 0 0 1px #4285f433}.formula-controls{display:flex;gap:4px}.formula-button{width:24px;height:24px;border:1px solid #dadce0;border-radius:4px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;transition:all .1s ease}.formula-button:hover{background:#f8f9fa;border-color:#c4c7c5}.formula-button:active{background:#f1f3f4}.formula-button.cancel{color:#ea4335}.formula-button.cancel:hover{background:#fce8e6;border-color:#ea4335}.formula-button.confirm{color:#34a853}.formula-button.confirm:hover{background:#e6f4ea;border-color:#34a853}.formula-input-container{flex:1;position:relative;min-width:200px}.formula-input{width:100%;height:32px;border:1px solid #dadce0;border-radius:4px;padding:0 12px;font-size:13px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;background:#fff;outline:none;transition:border-color .1s ease;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.formula-input:focus{border-color:#4285f4;box-shadow:0 0 0 1px #4285f433}.formula-input::placeholder{color:#9aa0a6;font-style:italic}.formula-input[value^="="]{color:#1a73e8}.formula-input:focus[value*=SUM],.formula-input:focus[value*=AVERAGE],.formula-input:focus[value*=COUNT],.formula-input:focus[value*=MAX],.formula-input:focus[value*=MIN]{background:linear-gradient(90deg,#1a73e80d,#1a73e805)}.formula-input.has-suggestion{background:linear-gradient(90deg,#34a8530d,#34a85305);border-color:#34a853}.formula-input.has-suggestion:focus{border-color:#34a853;box-shadow:0 0 0 1px #34a85333}.colored-formula-display{display:inline;line-height:1.4}.formula-display{cursor:pointer;transition:all .1s ease;border:1px solid #dadce0;border-radius:4px;background:#fff;outline:none;transition:border-color .1s ease;box-sizing:border-box}.formula-display:hover{border-color:#4285f4;background:#f8f9fa}.formula-display:active{background:#f1f3f4}.formula-display:focus{border-color:#4285f4;box-shadow:0 0 0 1px #4285f433}.suggestion-indicator{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:#34a853;color:#fff;font-size:9px;font-weight:600;padding:2px 4px;border-radius:2px;text-transform:uppercase;letter-spacing:.5px;pointer-events:none;z-index:1}.suggestion-indicator span{display:block}@media (max-width: 768px){.formula-bar{position:sticky;top:92px;z-index:999;padding:6px 8px;gap:8px}.cell-reference{min-width:68px;padding:4px 8px}.cell-address-input{font-size:12px;min-width:48px}.formula-input-container{min-width:140px}.formula-input{height:28px;font-size:12px;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.color-picker-container{position:relative;display:inline-block}.color-picker-trigger{width:32px;height:32px;border:1px solid #ccc;border-radius:4px;cursor:pointer;padding:4px;background:transparent;position:relative;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.color-picker-trigger:hover:not(:disabled){border-color:#999;background-color:#f5f5f5}.color-picker-trigger:disabled{cursor:not-allowed;opacity:.5}.color-picker-trigger .toolbar-icon{color:#333;font-size:18px;z-index:1}.color-preview{position:absolute;bottom:2px;right:2px;width:12px;height:12px;border-radius:2px;border:1px solid #fff;box-shadow:0 0 2px #0000004d;z-index:2}.color-picker-popup{background:#fff;border:1px solid #ccc;border-radius:8px;box-shadow:0 4px 12px #00000026;padding:16px;min-width:320px}.color-picker-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid #eee}.color-picker-title{font-weight:600;font-size:14px;color:#333}.color-picker-close{background:none;border:none;font-size:18px;cursor:pointer;color:#666;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s ease}.color-picker-close:hover{background-color:#f5f5f5}.color-palette{display:flex;flex-direction:column;gap:0}.color-row{display:flex;gap:0;justify-content:center}.color-swatch{width:24px;height:24px;border:1px solid #ddd;border-radius:0;cursor:pointer;transition:all .2s ease;position:relative;flex-shrink:0}.color-swatch:hover{border-color:#999;transform:scale(1.1);z-index:1}.color-swatch.active{border-color:#007bff;border-width:2px;box-shadow:0 0 0 1px #007bff40}.color-swatch.active:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-weight:700;font-size:12px;text-shadow:0 0 2px rgba(0,0,0,.8);line-height:1}.main-toolbar{display:flex;flex-direction:row;flex-wrap:nowrap;background:#fafafa;border-bottom:1px solid #dadce0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;padding:8px 16px;gap:12px;align-items:center;box-shadow:0 1px 3px #0000001a;position:relative;z-index:10;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable both-edges}@media (max-width: 768px){.main-toolbar{position:sticky;top:44px;z-index:1000;padding:6px 8px;gap:8px;min-height:48px}.toolbar-section{gap:4px}.toolbar-action-btn{width:28px;height:28px;font-size:14px}}.toolbar-section{display:flex;align-items:center;gap:6px;position:relative;flex:0 0 auto}.toolbar-section:not(:last-child):after{content:"";position:absolute;right:-6px;top:50%;transform:translateY(-50%);width:1px;height:24px;background:#dadce0}.toolbar-section:last-child{border-right:none;padding-right:0}.main-toolbar>.toolbar-section:last-child{margin-left:auto}.formatting-section{padding:0}.button-group{display:flex;align-items:center;gap:2px;background:#fff;border:1px solid #dadce0;border-radius:6px;padding:2px;box-shadow:0 1px 2px #0000000d}.toolbar-action-btn{width:32px;height:32px;border:none;border-radius:4px;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;transition:all .15s ease;color:#3c4043;flex-shrink:0;position:relative}.toolbar-action-btn svg{display:block;flex-shrink:0}.toolbar-action-btn:hover:not(.disabled){background:#e8f0fe;color:#1a73e8;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.toolbar-action-btn:active:not(.disabled){background:#d2e3fc;transform:translateY(0);box-shadow:0 1px 2px #0000001a}.toolbar-action-btn.disabled{opacity:.3;cursor:not-allowed;color:#9aa0a6}.toolbar-action-btn.danger{color:#ea4335}.toolbar-action-btn.danger:hover:not(.disabled){background:#fce8e6;color:#d33b2c;transform:translateY(-1px);box-shadow:0 2px 4px #ea433533}.dropdown-container{position:relative}@media (max-width: 1024px){.toolbar-section{flex-wrap:nowrap;gap:8px}.button-group{padding:0 4px;gap:2px}.toolbar-action-btn{width:28px;height:28px;font-size:12px}}@media (max-width: 768px){.main-toolbar{padding:4px 8px}.toolbar-section{padding:0;gap:6px}.main-toolbar>.toolbar-section:last-child{margin-left:0}}.toolbar-action-btn:focus{outline:2px solid #4285f4;outline-offset:2px;background:#e8f0fe}.toolbar-action-btn:focus:not(:focus-visible){outline:none}.main-toolbar.loading{opacity:.7;pointer-events:none}.main-toolbar.loading:after{content:"";position:absolute;top:50%;right:16px;width:16px;height:16px;border:2px solid #dadce0;border-top-color:#4285f4;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.sheet-tabs{display:flex;border-top:1px solid #e0e0e0;border-bottom:1px solid #e0e0e0;background:#fafafa}.sheet-tabs .tabs{display:flex;width:100%;align-items:center;gap:8px;padding:6px 8px}.sheet-tabs .tab{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;-webkit-user-select:none;user-select:none}.sheet-tabs .tab.active{border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e826}.sheet-tabs .tab.editing{box-shadow:inset 0 0 0 1px #1a73e8}.sheet-tabs .tab.editing input{border:none;outline:none;font-size:14px;line-height:1.3;padding:4px 6px;min-width:100px}.sheet-tabs .tab input{border:1px solid #ccc;padding:2px 4px;border-radius:4px;font-size:12px}.sheet-tabs .tab .close-btn{border:none;background:transparent;color:#999;cursor:pointer}.sheet-tabs .tab .close-btn:hover{color:#666}.sheet-tabs .add-tab{border:none;background:transparent;color:#1a73e8;cursor:pointer;font-weight:600}.sheet-tabs .add-tab:hover{text-decoration:underline}@media (max-width: 768px){.sheet-tabs .tabs{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.sheet-tabs .tab{flex:0 0 auto;max-width:60vw}}.infinite-spreadsheet{position:relative;width:100%;height:100%;display:flex;flex-direction:column;touch-action:pan-y pinch-zoom;overscroll-behavior:none}.main-layout{display:flex;flex:1;min-height:0;overflow:hidden}.left-stack{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;overflow:hidden}.spreadsheet-container-wrapper{flex:1;min-height:0;overflow:hidden}.spreadsheet-container{flex:1;min-width:0;min-height:0;overflow:auto;position:relative;background:#fff;border:1px solid #dadce0;border-radius:8px;margin:8px;box-shadow:0 2px 8px #0000001a;touch-action:pan-y pinch-zoom;overscroll-behavior:none}.spreadsheet-table{border-collapse:separate;border-spacing:0;table-layout:fixed;contain:layout style}.spreadsheet-header{background:#f8f9fa;border:.5px solid #dadce0;padding:0;margin:0;-webkit-user-select:none;user-select:none;box-sizing:border-box;background-clip:padding-box}.spreadsheet-header.first-column,.spreadsheet-cell-container.first-column{background:#f8f9fa!important;border-right:2px solid #dadce0!important;box-shadow:2px 0 4px #0000001a!important}.spreadsheet-cell-container.first-column .row-header{background:#f8f9fa!important}.spreadsheet-header.first-column{z-index:101!important}.spreadsheet-cell-container.first-column{z-index:90!important}.column-header{display:flex;align-items:center;justify-content:center;height:28px;font-weight:500;color:#5f6368;cursor:pointer;transition:background-color .1s ease;position:relative}.column-header:hover{background-color:#f1f3f4}.column-resizer{position:absolute;right:0;top:0;width:6px;height:100%;cursor:col-resize;-webkit-user-select:none;user-select:none;touch-action:none}.column-resizer.isResizing{background-color:#1a73e840}.row-header{display:flex;align-items:center;justify-content:center;height:100%;background:#f8f9fa;font-weight:500;color:#5f6368;cursor:pointer;transition:background-color .1s ease;min-width:60px;box-sizing:border-box;-webkit-user-select:none;user-select:none}.row-header:hover{background-color:#f1f3f4}.spreadsheet-container::-webkit-scrollbar{width:14px;height:14px}.spreadsheet-container::-webkit-scrollbar-track{background:#f1f1f1}.spreadsheet-container::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:7px}.spreadsheet-container::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.spreadsheet-container::-webkit-scrollbar-corner{background:#f1f1f1}.spreadsheet-container.dragging{cursor:crosshair}.spreadsheet-container.dragging *{cursor:crosshair!important;-webkit-user-select:none;user-select:none}.spreadsheet-container.dragging .spreadsheet-cell{pointer-events:auto}.ai-diff-toolbar{position:absolute;left:50%;transform:translate(-50%);bottom:56px;z-index:20;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #dadce0;box-shadow:0 4px 12px #00000014;border-radius:999px;padding:6px 10px;pointer-events:auto}.ai-diff-toggle{display:inline-flex;align-items:center;background:#f1f3f4;border-radius:999px;padding:2px}.ai-diff-toggle button{border:none;background:transparent;padding:6px 10px;border-radius:999px;font-size:12px;color:#3c4043;cursor:pointer}.ai-diff-toggle button.active{background:#fff;box-shadow:0 1px 2px #0000000d}.ai-diff-actions{display:inline-flex;gap:6px;margin-left:6px}.ai-diff-actions .accept,.ai-diff-actions .reject{display:inline-flex;align-items:center;gap:6px;border:1px solid #dadce0;background:#fff;color:#202124;border-radius:6px;padding:6px 10px;font-size:12px;cursor:pointer}.ai-diff-actions .accept{border-color:#1a73e8;color:#1a73e8}.ai-diff-actions .reject{border-color:#dadce0;color:#5f6368}.ai-diff-actions .accept:disabled,.ai-diff-actions .reject:disabled{opacity:.6;cursor:default}.spreadsheet-container .drop-overlay{position:absolute;inset:0;background:#1a73e814;outline:2px dashed #1a73e8;display:flex;align-items:center;justify-content:center;color:#1a73e8;font-weight:600;font-size:14px;pointer-events:none;z-index:15}@media (max-width: 768px){.main-layout{flex-direction:column}.left-stack{position:relative;z-index:1}.spreadsheet-container{margin:4px;border-radius:6px}.ai-diff-toolbar{bottom:12px}}.app{display:flex;flex-direction:column;height:100vh;width:100vw;margin:0;padding:0;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;touch-action:pan-y pinch-zoom;overscroll-behavior:none}.app-header{background:#f8f9fa;border-bottom:1px solid #e0e0e0;padding:12px 24px;display:flex;align-items:center;gap:16px;flex-shrink:0}.app-header h1{margin:0;font-size:20px;font-weight:500;color:#202124}.app-header p{margin:0;font-size:14px;color:#5f6368}.app-main{flex:1;display:flex;flex-direction:column;overflow:visible;background:#fff;min-height:0}
