.spreadsheet-root{--ss-bg:hsl(var(--background));--ss-panel:hsl(var(--card));--ss-border:hsl(var(--border)/0.75);--ss-accent:hsl(var(--accent));--ss-accent-soft:hsl(var(--accent)/0.12);--ss-muted:hsl(var(--muted-foreground));--ss-text:hsl(var(--foreground));--ss-header-h:2rem;--ss-toolbar-h:2.125rem;--ss-formula-h:1.875rem;--ss-tabs-h:2rem;--ss-status-h:1.5rem;display:flex;min-height:0;flex:1;flex-direction:column;background:var(--ss-bg);color:var(--ss-text);font-size:12px}.spreadsheet-home{flex:1;overflow:auto;padding:1.5rem}.spreadsheet-home__hero{margin-bottom:1.5rem}.spreadsheet-home__title{font-size:1.75rem;font-weight:700;letter-spacing:-.02em}.spreadsheet-home__grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.spreadsheet-card{border:1px solid var(--ss-border);border-radius:.85rem;background:var(--ss-panel);box-shadow:0 1px 2px rgb(15 23 42/.04);transition:border-color .15s,box-shadow .15s,transform .15s}.spreadsheet-card:hover{border-color:hsl(var(--accent)/.35);box-shadow:0 8px 24px rgb(15 23 42/.06);transform:translateY(-1px)}.spreadsheet-card__preview{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:.75rem;border-bottom:1px solid var(--ss-border);background:hsl(var(--muted)/.35)}.spreadsheet-card__cell{height:.65rem;border-radius:2px;background:hsl(var(--border)/.65)}.spreadsheet-card__body{padding:.85rem}.spreadsheet-docbar{display:flex;align-items:center;gap:.35rem;min-height:var(--ss-header-h);padding:0 .35rem;border-bottom:1px solid var(--ss-border);background:var(--ss-panel);flex-wrap:wrap}.spreadsheet-docbar__main{display:flex;min-width:0;flex:1;align-items:center;gap:.35rem}.spreadsheet-docbar__save{display:inline-flex;align-items:center;gap:.35rem;margin-left:auto;font-size:11px;color:var(--ss-muted);white-space:nowrap}.spreadsheet-menubar--inline{min-height:0;border-bottom:none;padding:0;gap:.05rem;flex-shrink:0}.spreadsheet-formula,.spreadsheet-menubar,.spreadsheet-status,.spreadsheet-toolbar,.spreadsheet-topbar{display:flex;align-items:center;gap:.5rem;border-bottom:1px solid var(--ss-border);background:var(--ss-panel)}.spreadsheet-topbar{min-height:var(--ss-header-h);padding:0 .75rem}.spreadsheet-menubar{min-height:1.625rem;padding:0 .35rem;gap:.05rem}.spreadsheet-toolbar{min-height:var(--ss-toolbar-h);padding:.15rem .35rem;gap:.15rem;flex-wrap:wrap}.spreadsheet-formula{min-height:var(--ss-formula-h);padding:.15rem .35rem;gap:.35rem}.spreadsheet-status{min-height:var(--ss-status-h);padding:0 .75rem;justify-content:space-between;font-size:11px;color:var(--ss-muted)}.spreadsheet-name-box{min-width:4rem;background:hsl(var(--muted)/.35);padding:.2rem .5rem;font-weight:600}.spreadsheet-formula-input,.spreadsheet-name-box{border:1px solid var(--ss-border);border-radius:.4rem;font-family:ui-monospace,monospace;font-size:12px}.spreadsheet-formula-input{flex:1;min-width:0;background:hsl(var(--background));padding:.35rem .55rem}.spreadsheet-grid-wrap{position:relative;min-height:0;flex:1;overflow:auto;background:hsl(var(--muted)/.2)}.spreadsheet-grid{display:grid;width:max-content;min-width:100%}.spreadsheet-grid__corner{top:0;left:0;z-index:4;background:hsl(var(--muted)/.65)}.spreadsheet-grid__col-head,.spreadsheet-grid__corner,.spreadsheet-grid__row-head{position:sticky;border-right:1px solid var(--ss-border);border-bottom:1px solid var(--ss-border)}.spreadsheet-grid__col-head,.spreadsheet-grid__row-head{display:flex;align-items:center;justify-content:center;background:hsl(var(--muted)/.55);color:var(--ss-muted);font-size:11px;font-weight:600;user-select:none}.spreadsheet-grid__col-head{top:0;z-index:3}.spreadsheet-grid__row-head{left:0;z-index:2}.spreadsheet-grid__col-head--frozen,.spreadsheet-grid__row-head--frozen{background:hsl(var(--accent)/.08)}.spreadsheet-cell{position:relative;overflow:hidden;border-right:1px solid hsl(var(--border)/.55);border-bottom:1px solid hsl(var(--border)/.55);background:var(--ss-panel);padding:0 .35rem;line-height:1.2;white-space:nowrap;cursor:cell}.spreadsheet-cell--wrap{white-space:normal;word-break:break-word}.spreadsheet-cell--selected{outline:2px solid var(--ss-accent);outline-offset:-2px;z-index:1}.spreadsheet-cell--in-range{background:var(--ss-accent-soft)}.spreadsheet-cell__input{width:100%;height:100%;border:none;background:transparent;padding:0;font:inherit;color:inherit;outline:none}.spreadsheet-tabs{display:flex;align-items:center;gap:.25rem;min-height:var(--ss-tabs-h);padding:.25rem .5rem;border-top:1px solid var(--ss-border);background:hsl(var(--muted)/.35);overflow-x:auto}.spreadsheet-tab{display:inline-flex;align-items:center;gap:.35rem;border:1px solid transparent;border-radius:.45rem .45rem 0 0;padding:.3rem .65rem;font-size:12px;font-weight:500;color:var(--ss-muted);cursor:pointer}.spreadsheet-tab--active{border-color:var(--ss-border);border-bottom-color:var(--ss-panel);background:var(--ss-panel);color:var(--ss-text);font-weight:600}.spreadsheet-tab__dot{width:.45rem;height:.45rem;border-radius:999px}.spreadsheet-btn{display:inline-flex;align-items:center;justify-content:center;gap:.2rem;min-height:1.5rem;border:1px solid transparent;border-radius:.35rem;padding:0 .35rem;font-size:11px;font-weight:500;color:var(--ss-text);background:transparent;cursor:pointer}.spreadsheet-btn--ghost{padding-inline:.25rem;font-size:11px;color:var(--ss-muted)}.spreadsheet-btn:hover{background:hsl(var(--muted)/.65)}.spreadsheet-btn--active{background:var(--ss-accent-soft);color:var(--ss-accent)}.spreadsheet-btn--primary{border-color:hsl(var(--accent)/.35);background:var(--ss-accent);color:hsl(var(--accent-foreground))}.spreadsheet-menu-item{border:none;border-radius:.3rem;background:transparent;padding:.1rem .4rem;font-size:11px;color:var(--ss-text);cursor:pointer}.spreadsheet-menu-item:hover{background:hsl(var(--muted)/.65)}.spreadsheet-save-dot{width:.45rem;height:.45rem;border-radius:999px;background:hsl(var(--success))}.spreadsheet-save-dot--dirty{background:hsl(var(--warning))}.spreadsheet-searchbar{display:flex;align-items:center;gap:.5rem;min-height:var(--ss-formula-h);border-bottom:1px solid var(--ss-border);background:var(--ss-panel);padding:0 .65rem}.spreadsheet-toolbar-more summary::-webkit-details-marker{display:none}.spreadsheet-toolbar .spreadsheet-btn svg{width:.9rem;height:.9rem}@media (max-width:768px){.spreadsheet-docbar{flex-direction:column;align-items:stretch;gap:0;padding:.15rem .25rem 0}.spreadsheet-docbar__main{flex-wrap:wrap}.spreadsheet-menubar--inline{overflow-x:auto;flex-wrap:nowrap;padding-bottom:.1rem}.spreadsheet-toolbar .spreadsheet-btn span{display:none}.spreadsheet-menubar{overflow-x:auto;flex-wrap:nowrap}}.spreadsheet-root--mobile{--ss-mobile-bar-h:3.25rem;--ss-mobile-edit-h:2.75rem;--ss-mobile-nav-h:2.5rem;padding-bottom:calc(var(--ss-mobile-bar-h) + env(safe-area-inset-bottom, 0px))}.spreadsheet-root--mobile .spreadsheet-docbar{flex-direction:row;flex-wrap:nowrap;padding:.35rem .5rem}.spreadsheet-root--mobile .spreadsheet-grid-wrap{-webkit-overflow-scrolling:touch}.spreadsheet-root--mobile .spreadsheet-cell{min-height:2rem;padding:0 .5rem;font-size:13px;touch-action:manipulation}.spreadsheet-root--mobile .spreadsheet-cell--selected{outline-width:3px}.spreadsheet-root--mobile .spreadsheet-tabs{padding-bottom:.15rem}.spreadsheet-root--mobile .spreadsheet-status--mobile{min-height:1.25rem;padding:.15rem .5rem;font-size:10px}.spreadsheet-mobile-edit{display:flex;align-items:center;gap:.35rem;min-height:var(--ss-mobile-edit-h);padding:.35rem .5rem;border-bottom:1px solid var(--ss-border);background:var(--ss-panel)}.spreadsheet-mobile-edit__ref{flex-shrink:0;min-width:2.5rem;border:1px solid var(--ss-border);border-radius:.45rem;background:hsl(var(--muted)/.35);padding:.45rem .5rem;font-family:ui-monospace,monospace;font-size:12px;font-weight:600;text-align:center}.spreadsheet-mobile-edit__input{flex:1;min-width:0;min-height:2.25rem;border:1px solid var(--ss-border);border-radius:.45rem;background:hsl(var(--background));padding:.45rem .65rem;font-size:16px}.spreadsheet-mobile-edit__done{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:none;border-radius:.45rem;background:var(--ss-accent);color:hsl(var(--accent-foreground));cursor:pointer}.spreadsheet-mobile-nav{display:flex;justify-content:center;gap:.35rem;min-height:var(--ss-mobile-nav-h);padding:.25rem .5rem;border-bottom:1px solid var(--ss-border);background:hsl(var(--muted)/.25)}.spreadsheet-mobile-nav__btn{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border:1px solid var(--ss-border);border-radius:.5rem;background:var(--ss-panel);color:var(--ss-text);cursor:pointer}.spreadsheet-mobile-nav__btn:active{background:hsl(var(--muted)/.65)}.spreadsheet-mobile-bar{position:fixed;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:stretch;justify-content:space-around;gap:.15rem;min-height:var(--ss-mobile-bar-h);padding:.35rem .25rem calc(.35rem + env(safe-area-inset-bottom, 0px));border-top:1px solid var(--ss-border);background:var(--ss-panel);box-shadow:0 -4px 16px rgb(15 23 42/.08)}.spreadsheet-mobile-bar__btn{display:inline-flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;min-width:0;border:none;border-radius:.45rem;background:transparent;padding:.15rem .1rem;font-size:10px;font-weight:500;color:var(--ss-muted);cursor:pointer}.spreadsheet-mobile-bar__btn svg{width:1.25rem;height:1.25rem;color:var(--ss-text)}.spreadsheet-mobile-bar__btn--accent,.spreadsheet-mobile-bar__btn--accent svg{color:var(--ss-accent)}.spreadsheet-mobile-sheet__backdrop{position:fixed;inset:0;z-index:45;border:none;background:rgb(15 23 42/.35);cursor:pointer}.spreadsheet-mobile-sheet{position:fixed;right:0;bottom:0;left:0;z-index:50;max-height:70vh;overflow:auto;border-radius:1rem 1rem 0 0;background:var(--ss-panel);padding:.75rem 1rem calc(1rem + env(safe-area-inset-bottom, 0px));box-shadow:0 -8px 32px rgb(15 23 42/.12)}.spreadsheet-mobile-sheet__handle{width:2.5rem;height:.25rem;margin:0 auto .75rem;border-radius:999px;background:hsl(var(--border))}.spreadsheet-mobile-sheet__title{margin-bottom:.75rem;font-size:14px;font-weight:600}.spreadsheet-mobile-sheet__grid{display:grid;gap:.35rem;grid-template-columns:repeat(2,1fr)}.spreadsheet-sheet-action{min-height:2.75rem;border:1px solid var(--ss-border);border-radius:.55rem;background:hsl(var(--muted)/.25);padding:.65rem;font-size:13px;font-weight:500;text-align:center;cursor:pointer}.spreadsheet-sheet-action:active{background:hsl(var(--muted)/.55)}.spreadsheet-home--mobile{padding-bottom:calc(4.5rem + env(safe-area-inset-bottom, 0px))}.spreadsheet-home__sticky-cta{position:fixed;right:0;bottom:0;left:0;z-index:30;display:flex;gap:.5rem;padding:.65rem 1rem calc(.65rem + env(safe-area-inset-bottom, 0px));border-top:1px solid var(--ss-border);background:hsl(var(--background)/.92);backdrop-filter:blur(8px)}.spreadsheet-home__sticky-cta .spreadsheet-btn{flex:1;min-height:2.75rem;font-size:13px}@media (min-width:769px){.spreadsheet-home__sticky-cta{display:none}}