.consent-banner{position:fixed;left:50%;bottom:16px;transform:translate(-50%);z-index:900;display:flex;gap:12px;align-items:center;box-sizing:border-box;width:min(640px,calc(100vw - 32px));max-width:min(640px,calc(100vw - 32px));padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-md);font-size:var(--text-sm)}.consent-banner__text{flex:1}.consent-banner__actions{display:flex;gap:8px;flex-shrink:0}.consent-banner__btn{padding:4px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);cursor:pointer;font-size:var(--text-sm)}.consent-banner__btn--accept{border-color:var(--accent);background:var(--accent);color:var(--ink-on-accent)}body:has(.account-modal-backdrop) .consent-banner,body:has(.admin-backdrop) .consent-banner,body:has(.workspace-switcher__backdrop) .consent-banner,body:has(.dialog-backdrop) .consent-banner,body:has(.context-menu) .consent-banner{display:none}@media (max-width: 480px){.consent-banner{align-items:stretch;flex-direction:column;gap:10px}.consent-banner__actions{width:100%}.consent-banner__btn{flex:1 1 0}}.account-pill-wrap{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.account-pill-error{flex:1 0 100%;display:flex;align-items:center;justify-content:space-between;gap:8px;box-sizing:border-box;min-width:0;margin:0;padding:4px 8px;border:1px solid var(--danger-border-on-dark);border-radius:var(--radius-md);background:var(--danger-surface-on-dark);color:var(--danger-ink-on-dark);font-size:var(--text-xs);line-height:1.35}.account-pill-error span{min-width:0;overflow-wrap:anywhere}.account-pill-error button{flex:0 0 auto;width:22px;height:22px;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:inherit;font-size:var(--text-lg);line-height:1;cursor:pointer}.account-pill-error button:hover{background:#ffffff29}.account-pill{display:inline-flex;align-items:center;gap:8px;padding:4px 12px;border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--surface-sunken);color:var(--ink);font-size:var(--text-xs);cursor:pointer}.account-pill:hover{background:var(--surface-accent)}.account-pill__action{color:var(--accent-link);font-weight:600}.account-badge{cursor:default;font-weight:500;background:transparent;border-color:#ffffff47;color:var(--ink-on-accent-muted)}.account-badge:hover{background:transparent}.account-menu-trigger{font-weight:600;max-width:220px}.account-menu-trigger__email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.account-pill--cta{background:var(--accent-soft);border-color:var(--accent-link);color:var(--ink-on-accent);font-weight:600}.account-pill--cta:hover{background:var(--accent-link)}.account-pill--credits{display:inline-flex;align-items:center;gap:6px;cursor:default}.account-pill--credits .account-pill__action{cursor:pointer;padding:0 4px}.account-banner__cta{margin-left:8px;padding:2px 12px;border-radius:var(--radius-sm);border:1px solid var(--accent-link);background:var(--accent-soft);color:var(--ink-on-accent);font-size:var(--text-xs);cursor:pointer}.account-banner{position:fixed;bottom:0;left:0;right:0;z-index:70;padding:8px 16px;font-size:var(--text-sm);text-align:center}.account-banner--readonly{background:var(--warning-surface);border-top:1px solid var(--warning-border);color:var(--warning-strong)}body:has(.consent-banner) .account-banner,body:has(.dialog-backdrop) .account-banner,body:has(.account-modal-backdrop) .account-banner,body:has(.admin-backdrop) .account-banner,body:has(.workspace-menu__backdrop) .account-banner,body:has(.workspace-switcher__backdrop) .account-banner,body:has(.share-dialog__backdrop) .account-banner,body:has(.coach-tour-overlay) .account-banner{display:none}@media (max-width: 480px) and (max-height: 400px){.account-banner--readonly{position:static;order:1;flex:1 0 calc(100% + 36px);width:calc(100% + 36px);margin:0 -18px -4px;box-sizing:border-box}}.account-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:var(--scrim);display:flex;align-items:center;justify-content:center}.account-modal{position:relative;width:min(340px,calc(100vw - 24px));max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow-y:auto;background:var(--surface);color:var(--ink);border-radius:var(--radius-lg);padding:20px 22px;box-shadow:var(--shadow-xl)}.account-modal__close{position:absolute;top:8px;right:8px;width:24px;height:24px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--ink-muted);font-size:var(--text-2xl);line-height:1;cursor:pointer}.account-modal__close:hover{background:var(--border-subtle);color:var(--ink)}.account-modal h2{margin:0 0 12px;font-size:var(--text-lg)}.account-modal label{display:block;margin-bottom:10px;font-size:var(--text-xs)}.account-modal input{display:block;width:100%;box-sizing:border-box;margin-top:4px;padding:6px 8px;font-size:var(--text-sm);color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.account-field-hint{display:block;margin-top:4px;font-size:var(--text-2xs);color:var(--ink-muted)}.account-modal button.btn-primary{padding:4px 12px;border-radius:var(--radius-md);border:1px solid var(--accent);background:var(--accent);color:var(--ink-on-accent);font-size:var(--text-sm);font-weight:600;cursor:pointer}.account-modal button.btn-primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.account-modal button.btn-primary:disabled{background:var(--ink-subtle);border-color:var(--ink-subtle);color:var(--surface-sunken);cursor:default}.account-modal button.account-secondary{padding:4px 12px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);font-size:var(--text-sm);cursor:pointer}.account-modal button.account-secondary:hover{background:var(--surface-sunken)}.account-modal button.account-secondary:disabled{color:var(--ink-muted);background:var(--surface-sunken);cursor:default}.account-modal button.account-danger{padding:4px 12px;border:1px solid var(--danger);border-radius:var(--radius-md);background:var(--surface);color:var(--danger);font-size:var(--text-sm);font-weight:600;cursor:pointer}.account-modal button.account-danger:hover:not(:disabled){background:var(--danger-surface)}.account-modal button.account-danger:disabled{color:var(--danger-muted);border-color:var(--danger-border);cursor:default}.account-modal__actions{display:flex;flex-direction:column;gap:8px;margin-top:14px}.account-error{color:var(--danger);font-size:var(--text-xs);margin:6px 0 0}.account-notice{color:var(--success);font-size:var(--text-xs);margin:0 0 8px}.account-linklike{background:none;border:none;color:var(--accent-link);font-size:var(--text-xs);cursor:pointer;padding:0}.account-2fa-qr{display:flex;justify-content:center;margin:12px 0}.account-2fa-qr svg{width:180px;height:180px}.account-2fa-secret{text-align:center;letter-spacing:1px;word-break:break-all}.account-2fa-disable{margin-top:16px;padding-top:14px;border-top:1px solid var(--border-soft)}.account-recovery-codes{list-style:none;padding:0;margin:12px 0;display:grid;grid-template-columns:1fr 1fr;gap:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.account-google-wrap{margin-top:10px;border-top:1px solid var(--border-soft);padding-top:10px;text-align:center}.account-google{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--surface);font-size:var(--text-sm);cursor:pointer}.account-google:disabled{opacity:.6;cursor:default}.workspace-switcher{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px;color:var(--ink);font-size:var(--text-xs)}.workspace-switcher__label{color:#ffffffeb;font-weight:600}.workspace-switcher__select{padding:4px 8px;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--surface-sunken);color:var(--ink);font-size:var(--text-xs);cursor:pointer;max-width:200px}.workspace-switcher--status{color:#fffffff0;font-weight:600}.workspace-switcher__input{box-sizing:border-box;width:100%;padding:8px 10px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);color:var(--ink);font-size:var(--text-xs)}.workspace-switcher__btn{padding:4px 12px;border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--surface-sunken);color:var(--ink);font-size:var(--text-xs);cursor:pointer}.workspace-switcher__btn:hover:not(:disabled){background:var(--surface-accent)}.workspace-switcher__btn--primary{background:var(--accent-soft);border-color:var(--accent-link);color:var(--ink-on-accent);font-weight:600}.workspace-switcher__btn--primary:hover:not(:disabled){background:var(--accent-link)}.workspace-switcher__btn:disabled{opacity:.6;cursor:default}.workspace-switcher__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:16px;background:var(--scrim)}.workspace-switcher__dialog{display:flex;flex-direction:column;gap:16px;box-sizing:border-box;width:min(100%,420px);max-height:calc(100dvh - 32px);overflow:hidden;padding:20px;border-radius:var(--radius-xl);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-xl);font-size:var(--text-sm)}.workspace-switcher__dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.workspace-switcher__dialog-heading h2{margin:0;color:var(--ink-strong);font-size:var(--text-xl);line-height:1.25}.workspace-switcher__dialog-heading p{margin:6px 0 0;color:var(--ink-muted);line-height:1.45}.workspace-switcher__dialog-close{flex:0 0 auto;width:28px;height:28px;padding:0;border:0;border-radius:var(--radius-md);background:transparent;color:var(--ink-muted);font-size:var(--text-2xl);line-height:1;cursor:pointer}.workspace-switcher__dialog-close:hover:not(:disabled){background:var(--surface-sunken);color:var(--ink)}.workspace-switcher__field{display:grid;gap:6px;color:var(--ink);font-weight:600}.workspace-switcher__dialog-body{display:grid;gap:12px;min-height:0;overflow:auto}.workspace-switcher__dialog-error{margin:0;padding:8px 10px;border:1px solid var(--danger-border);border-radius:var(--radius-md);background:var(--danger-surface);color:var(--danger-strong);line-height:1.4;overflow-wrap:anywhere}.workspace-switcher__dialog-actions{display:flex;justify-content:flex-end;gap:8px}@media (max-height: 300px){.workspace-switcher__backdrop{align-items:flex-start}.workspace-switcher__dialog{gap:10px;padding:12px}.workspace-switcher__dialog-heading p{display:none}}.share-dialog__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:var(--scrim);padding:16px}.share-dialog{display:flex;flex-direction:column;color:var(--ink);background:var(--surface);width:100%;max-width:460px;max-height:90vh;max-height:90dvh;overflow:hidden;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);font-size:var(--text-sm)}.share-dialog__head{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px 10px}.share-dialog__title{margin:0;font-size:var(--text-lg);font-weight:600}.share-dialog__subtitle{margin:2px 0 0;font-size:var(--text-xs);color:var(--ink-muted);word-break:break-word}.share-dialog__close{border:none;background:transparent;font-size:var(--text-2xl);line-height:1;cursor:pointer;color:var(--ink-muted);padding:0 4px}.share-dialog__tabs{flex:0 0 auto;display:flex;gap:2px;padding:0 18px;border-bottom:1px solid var(--border-soft)}.share-dialog__tab{border:none;background:transparent;padding:8px 12px;font-size:var(--text-sm);font-weight:500;cursor:pointer;color:var(--ink-muted);border-bottom:2px solid transparent;margin-bottom:-1px}.share-dialog__tab--active{color:var(--accent);border-bottom-color:var(--accent)}.share-dialog__body{min-height:min(170px,calc(90dvh - 95px));overflow-y:auto;padding:14px 18px 18px}.share-dialog__form{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}.share-dialog__row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.share-dialog__label{font-size:var(--text-2xs);color:var(--ink-muted);display:block;margin-bottom:3px}.share-dialog__input,.share-dialog__select{padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--ink);background:var(--surface)}.share-dialog__input{flex:1 1 160px;min-width:120px}.share-dialog__field{min-width:0}.share-dialog__row>.share-dialog__field{flex:1 1 120px}.share-dialog__field .share-dialog__input{width:100%;box-sizing:border-box}.share-dialog__flags{display:flex;flex-wrap:wrap;gap:4px 14px}.share-dialog__flag{display:flex;align-items:center;gap:4px;font-size:var(--text-xs)}.share-dialog__btn{border:1px solid var(--border);background:var(--surface-raised);color:var(--ink);padding:4px 12px;border-radius:var(--radius-md);font-size:var(--text-xs);cursor:pointer}.share-dialog__btn--primary{background:var(--accent);border-color:var(--accent);color:var(--ink-on-accent)}.share-dialog__btn--danger{color:var(--danger);border-color:transparent;background:transparent}.share-dialog__btn:disabled{opacity:.5;cursor:default}.share-dialog__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.share-dialog__item{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:8px 10px}.share-dialog__who{min-width:0;display:flex;flex-direction:column;gap:2px}.share-dialog__who-main{font-size:var(--text-sm);overflow-wrap:anywhere}.share-dialog__meta{display:flex;flex-wrap:wrap;gap:8px;font-size:var(--text-2xs);color:var(--ink-muted)}.share-dialog__badge{color:var(--warning)}.share-dialog__empty{color:var(--ink-muted);font-size:var(--text-xs);margin:6px 0}.share-dialog__minted{border:1px solid var(--accent-border);background:var(--surface-accent);border-radius:var(--radius-md);padding:8px 10px;margin-top:10px;display:flex;flex-direction:column;gap:6px}.share-dialog__url{display:flex;align-items:center;gap:8px}.share-dialog__code{flex:1 1 auto;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-xs);overflow-wrap:anywhere;color:var(--accent)}.share-dialog__error{color:var(--danger);font-size:var(--text-xs);margin:8px 0 0}.share-dialog__load-error{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.share-dialog__load-error .share-dialog__error{margin:0}.workspace-members{color:var(--ink);font-size:var(--text-sm);max-width:420px;min-height:0;overflow-y:auto}.workspace-members__head{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}.workspace-members__title{margin:0;font-size:var(--text-base);font-weight:600}.workspace-members__count{font-size:var(--text-2xs);color:var(--ink-muted)}.workspace-members__add{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px}.workspace-members__input{flex:1 1 160px;min-width:140px;padding:4px 8px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);color:var(--ink);font-size:var(--text-xs)}.workspace-members__select{padding:4px 8px;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--surface-sunken);color:var(--ink);font-size:var(--text-xs);cursor:pointer}.workspace-members__select:disabled{opacity:.6;cursor:default}.workspace-members__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.workspace-members__row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border:1px solid var(--border-soft);border-radius:var(--radius-md);background:var(--surface-raised)}.workspace-members__who{display:flex;flex-direction:column;min-width:0}.workspace-members__name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-members__email{font-size:var(--text-2xs);color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-members__controls{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.workspace-members__role{font-size:var(--text-xs);color:var(--ink-muted);flex-shrink:0}.workspace-members__btn{padding:4px 12px;border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--surface-sunken);color:var(--ink);font-size:var(--text-xs);cursor:pointer}.workspace-members__btn:hover:not(:disabled){background:var(--surface-accent)}.workspace-members__btn:disabled{opacity:.6;cursor:default}.workspace-members__btn--primary{background:var(--accent-soft);border-color:var(--accent-link);color:var(--ink-on-accent);font-weight:600}.workspace-members__btn--primary:hover:not(:disabled){background:var(--accent-link)}.workspace-members__btn--danger{background:var(--surface);border-color:var(--danger-border);color:var(--danger);font-weight:600}.workspace-members__btn--danger:hover:not(:disabled){background:var(--danger-surface)}.workspace-members__empty{margin:0;font-size:var(--text-xs);color:var(--ink-muted)}.workspace-members__error{color:var(--danger);font-size:var(--text-xs);margin:8px 0 0}.workspace-members__load-error{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.workspace-members__load-error .workspace-members__error{margin:0}.workspace-menu{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px;color:var(--ink);font-size:var(--text-xs)}.workspace-menu__btn{padding:4px 12px;border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--surface-sunken);color:var(--ink);font-size:var(--text-xs);cursor:pointer}.workspace-menu__btn:hover:not(:disabled){background:var(--surface-accent)}.workspace-menu__link{display:inline-flex;align-items:center;text-decoration:none}.workspace-menu__btn:disabled{opacity:.6;cursor:default}.workspace-menu__trigger{gap:4px;font-weight:600}.workspace-menu__error{color:var(--danger-ink-on-dark);background:var(--danger-surface-on-dark);border:1px solid var(--danger-border-on-dark);border-radius:var(--radius-md);font-size:var(--text-2xs);margin:0;padding:3px 8px;line-height:1.35;flex-basis:100%}.workspace-menu__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:var(--scrim);padding:16px}.workspace-menu__modal{position:relative;display:flex;flex-direction:column;background:var(--surface);color:var(--ink);width:100%;max-width:460px;max-height:90vh;max-height:90dvh;overflow:hidden;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:18px}.workspace-menu__close{position:static;align-self:flex-end;flex:0 0 auto;margin:-8px -6px 4px 0;border:none;background:none;color:var(--ink-muted);font-size:var(--text-2xl);line-height:1;cursor:pointer}.workspace-menu__close:hover{color:var(--ink)}.version-history{display:flex;flex-direction:column;gap:12px;padding:16px;max-width:520px}.version-history__header{display:flex;align-items:center;justify-content:space-between}.version-history__title{margin:0;font-size:var(--text-lg);font-weight:600;color:var(--ink)}.version-history__close{border:none;background:transparent;font-size:var(--text-2xl);line-height:1;cursor:pointer;color:var(--ink-muted);padding:2px 6px}.version-history__muted{color:var(--ink-muted);font-size:var(--text-sm);margin:0}.version-history__error{color:var(--danger);font-size:var(--text-sm);margin:0 0 8px}.version-history__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.version-history__row{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--border-soft);border-radius:var(--radius-lg);background:var(--surface-raised)}.version-history__meta{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.version-history__no{font-weight:600;color:var(--accent);font-size:var(--text-sm)}.version-history__badge{font-size:var(--text-2xs);padding:1px 8px;border-radius:var(--radius-pill);background:var(--success-surface);color:var(--success);border:1px solid var(--success-border)}.version-history__msg{flex:1 1 auto;font-size:var(--text-base);color:var(--ink);overflow-wrap:anywhere}.version-history__sub{display:flex;gap:12px;font-size:var(--text-xs);color:var(--ink-muted);flex-wrap:wrap}.version-history__actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.version-history__confirm-label{font-size:var(--text-sm);color:var(--warning)}.version-history__btn{padding:4px 12px;font-size:var(--text-sm);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);color:var(--ink);cursor:pointer}.version-history__btn:disabled{opacity:.6;cursor:default}.version-history__btn--primary{background:var(--accent);border-color:var(--accent);color:var(--ink-on-accent)}.version-history__diff{border:1px solid var(--border-soft);border-radius:var(--radius-lg);background:var(--surface);padding:10px 12px;font-size:var(--text-sm);color:var(--ink)}.version-history__diff-head{margin:0 0 6px;font-weight:600}.dossier-export{margin:0 16px;padding-top:16px;border-top:1px solid var(--border-soft)}.dossier-export__title{margin:0 0 6px;font-size:var(--text-lg);font-weight:600;color:var(--ink)}.dossier-export__desc{margin:0 0 12px}.dossier-export__actions{display:flex;flex-wrap:wrap;gap:8px}.update-toast{position:fixed;bottom:16px;right:16px;z-index:75;display:flex;align-items:center;gap:10px;box-sizing:border-box;max-width:calc(100vw - 32px);padding:10px 14px;border-radius:var(--radius-md);background:var(--ink);color:var(--surface-sunken);font-size:var(--text-sm);box-shadow:var(--shadow-lg)}body:has(.update-toast) .assistant-toggle{bottom:76px}body:has(.account-banner--readonly) .update-toast{bottom:60px}body:has(.account-banner--readonly):has(.update-toast) .assistant-toggle{bottom:120px}body:has(.dialog-backdrop) .update-toast,body:has(.account-modal-backdrop) .update-toast,body:has(.admin-backdrop) .update-toast,body:has(.consent-banner) .update-toast,body:has(.coach-tour-overlay) .update-toast,body:has(.column-format-popover) .update-toast,body:has(.table-setup-popover) .update-toast,body:has(.table-tools-panel) .update-toast,body:has(.workspace-menu__backdrop) .update-toast,body:has(.workspace-switcher__backdrop) .update-toast,body:has(.share-dialog__backdrop) .update-toast{display:none}.update-toast button{padding:4px 10px;border-radius:var(--radius-sm);border:1px solid var(--accent-soft);background:var(--accent-soft);color:var(--ink-on-accent);font-size:var(--text-xs);cursor:pointer}.update-toast__dismiss{background:none!important;border:none!important;font-size:var(--text-lg)!important;padding:0 4px!important}.update-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;background:var(--scrim);display:flex;align-items:center;justify-content:center}body:has(.update-modal-backdrop) :is(.assistant-toggle,.consent-banner,.account-banner){display:none}.update-modal{width:min(380px,calc(100vw - 32px));background:var(--surface);color:var(--ink);border-radius:var(--radius-lg);padding:20px 22px;box-shadow:var(--shadow-xl)}.update-modal h2{margin:0 0 10px;font-size:var(--text-lg)}.update-modal button{margin-top:8px;padding:6px 16px}@media (max-width: 480px){body:has(.account-banner--readonly) .update-toast{bottom:85px}body:has(.account-banner--readonly):has(.update-toast) .assistant-toggle{bottom:145px}}@media (max-width: 480px) and (max-height: 400px){.update-toast{position:static;order:2;flex:1 0 calc(100% + 36px);width:calc(100% + 36px);max-width:none;margin:0 -18px -6px;border-radius:0;justify-content:center}}.comments-panel{display:flex;flex-direction:column;gap:12px;padding:16px;max-width:520px}.comments-panel__header{display:flex;align-items:center;justify-content:space-between;gap:8px}.comments-panel__title{margin:0;font-size:var(--text-lg);font-weight:600;color:var(--ink);display:flex;align-items:center;gap:8px}.comments-panel__count{font-size:var(--text-2xs);padding:1px 8px;border-radius:var(--radius-pill);background:var(--surface-accent);color:var(--accent-strong);border:1px solid var(--accent-border);font-weight:600}.comments-panel__close{border:none;background:transparent;font-size:var(--text-2xl);line-height:1;cursor:pointer;color:var(--ink-muted);padding:2px 6px;border-radius:var(--radius-md)}.comments-panel__close:hover{color:var(--ink)}.comments-panel__targets{display:flex;gap:6px;flex-wrap:wrap}.comments-panel__target{padding:4px 12px;font-size:var(--text-sm);border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);color:var(--ink);cursor:pointer}.comments-panel__target:hover:not(.comments-panel__target--active){border-color:var(--border-emphasis);color:var(--ink)}.comments-panel__target--active{background:var(--accent);border-color:var(--accent);color:var(--ink-on-accent)}.comments-panel__target--active:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.comments-panel__muted{color:var(--ink-muted);font-size:var(--text-sm);margin:0}.comments-panel__loading{display:flex;align-items:center;gap:8px}.comments-panel__spinner{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex:0 0 auto;animation:comments-panel-spin .7s linear infinite}@keyframes comments-panel-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.comments-panel__spinner{animation-duration:2.4s}}.comments-panel__error{color:var(--danger);font-size:var(--text-sm);margin:0 0 8px}.comments-panel__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.comments-panel__thread{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border:1px solid var(--border-soft);border-radius:var(--radius-lg);background:var(--surface-raised)}.comments-panel__thread--resolved{background:var(--surface-sunken);border-color:var(--border-soft)}.comments-panel__thread--resolved>.comments-panel__comment>.comments-panel__body{color:var(--ink-muted)}.comments-panel__comment{display:flex;flex-direction:column;gap:4px}.comments-panel__replies{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--border-soft);display:flex;flex-direction:column;gap:8px}.comments-panel__sub{display:flex;gap:10px;align-items:baseline;font-size:var(--text-xs);color:var(--ink-muted);flex-wrap:wrap}.comments-panel__author{font-weight:600;color:var(--ink)}.comments-panel__resolved{font-size:var(--text-2xs);padding:1px 8px;border-radius:var(--radius-pill);background:var(--success-surface);color:var(--success);border:1px solid var(--success-border)}.comments-panel__body{font-size:var(--text-base);color:var(--ink);overflow-wrap:anywhere;white-space:pre-wrap;margin:0}.comments-panel__actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.comments-panel__compose{display:flex;flex-direction:column;gap:6px}.comments-panel__textarea{width:100%;min-height:56px;resize:vertical;font:inherit;font-size:var(--text-base);padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--ink);box-sizing:border-box}.comments-panel__textarea:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #2d5b8a2e}.comments-panel__btn{padding:4px 12px;font-size:var(--text-sm);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);color:var(--ink);cursor:pointer}.comments-panel__btn:hover:not(:disabled){background:var(--surface-sunken);border-color:var(--border-emphasis)}.comments-panel__btn:disabled{opacity:.6;cursor:default}.comments-panel__btn--primary{background:var(--accent);border-color:var(--accent);color:var(--ink-on-accent);align-self:flex-start}.comments-panel__btn--primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.comments-panel__btn--danger{color:var(--danger);border-color:var(--danger-border)}.comments-panel__btn--danger:hover:not(:disabled){background:var(--danger-surface);border-color:var(--danger-border-strong)}.comments-panel__btn:focus-visible,.comments-panel__target:focus-visible,.comments-panel__close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recipient-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--surface-sunken);color:var(--ink);box-sizing:border-box}.recipient-card{width:100%;max-width:560px;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:28px 32px}.recipient-card__eyebrow{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 8px}.recipient-card__title{margin:0 0 6px;font-size:var(--text-2xl);font-weight:600;overflow-wrap:anywhere}.recipient-card__meta{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--ink-muted);font-size:var(--text-sm);margin:6px 0 0}.recipient-card__section{margin-top:18px;padding-top:16px;border-top:1px solid var(--border-subtle)}.recipient-card__badge{display:inline-block;font-size:var(--text-xs);padding:2px 8px;border-radius:var(--radius-pill);background:var(--surface-accent);color:var(--accent);border:1px solid var(--accent-border)}.recipient-card__muted{color:var(--ink-muted);font-size:var(--text-sm);margin:8px 0 0}.recipient-card__code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-xs);color:var(--ink);overflow-wrap:anywhere}.recipient-card__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.recipient-card__btn{border:1px solid var(--border);background:var(--surface-raised);color:var(--ink);padding:8px 16px;border-radius:var(--radius-lg);font-family:inherit;font-size:var(--text-sm);cursor:pointer;text-decoration:none;text-align:center;display:inline-block}.recipient-card__btn--primary{background:var(--accent);border-color:var(--accent);color:var(--ink-on-accent)}.recipient-card__error{color:var(--danger);font-size:var(--text-sm);margin:8px 0 0}.recipient-card__remix{margin-top:18px;padding-top:16px;border-top:1px solid var(--border-subtle)}.recipient-card__remix .recipient-card__actions{margin-top:0}.recipient-card__attribution{margin:14px 0 0;font-size:var(--text-xs);color:var(--ink-subtle)}.recipient-card__attribution-link{color:var(--ink-muted);text-decoration:none}.recipient-card__attribution-link:hover{color:var(--accent);text-decoration:underline}@media (max-width: 400px){.recipient-card__actions{flex-direction:column}.recipient-card__btn{width:100%;box-sizing:border-box}}.shared-list{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.shared-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border-soft);border-radius:var(--radius-lg);background:var(--surface-raised)}.shared-row__name{flex:1 1 auto;font-size:var(--text-base);font-weight:500;color:var(--ink);overflow-wrap:anywhere}.shared-row__perm{flex:0 0 auto;font-size:var(--text-xs);padding:2px 8px;border-radius:var(--radius-pill);background:var(--surface-accent);color:var(--accent);border:1px solid var(--accent-border);text-transform:capitalize}.shared-row__open{flex:0 0 auto;padding:6px 14px;font-size:var(--text-sm)}:root{font-family:Segoe UI,Helvetica Neue,Arial,sans-serif;font-size:14px;color:var(--ink);--ink-strong: #162331;--ink: #22303c;--ink-muted: #5b6b7b;--ink-subtle: #8aa4bd;--ink-on-accent: #ffffff;--ink-on-accent-muted: #eef4fa;--focus-ring-on-accent: rgba(255, 255, 255, .8);--surface: #ffffff;--surface-raised: #fbfcfe;--surface-sunken: #f2f6fa;--surface-accent: #e6eef6;--border-subtle: #eef2f6;--border-soft: #dce4ed;--border: #c7d2dc;--border-strong: #b9c6d6;--border-emphasis: #8aa4bd;--accent-soft: #4878a8;--accent-link: #3a6288;--accent: #2d5b8a;--accent-strong: #244c75;--accent-border: #bdd0e4;--accent-teal: #0f6d6b;--accent-teal-strong: #0f5654;--accent-teal-surface: #e6f2f1;--accent-teal-border: #cfe1df;--danger: #a4262c;--danger-strong: #7a1f29;--danger-border: #e8a7ae;--danger-border-strong: #c6666d;--danger-surface: #fff1f2;--danger-surface-strong: #fbe4e7;--danger-ink-on-dark: #fff1f2;--danger-surface-on-dark: rgba(96, 19, 28, .82);--danger-border-on-dark: rgba(255, 205, 210, .72);--danger-muted: #9a7376;--success: #15803d;--success-surface: #dcfce7;--success-border: #bbf7d0;--warning: #b45309;--warning-surface: #fdf3d7;--warning-border: #e5cf8c;--warning-strong: #5c4a12;--warning-accent: #c9a227;--text-3xs: 10px;--text-2xs: 11px;--text-xs: 12px;--text-sm: 13px;--text-base: 14px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 20px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-pill: 999px;--shadow-xs: 0 1px 4px rgba(15, 23, 32, .12);--shadow-sm: 0 2px 8px rgba(15, 23, 32, .12);--shadow-md: 0 4px 16px rgba(15, 23, 32, .18);--shadow-lg: 0 8px 24px rgba(15, 23, 32, .24);--shadow-xl: 0 12px 40px rgba(15, 23, 32, .28);--scrim: rgba(15, 23, 32, .45);--scrim-drawer: rgba(15, 23, 32, .35)}*{box-sizing:border-box}body{margin:0}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button:disabled,input:disabled,select:disabled,textarea:disabled{opacity:.5;cursor:not-allowed}.app-operation-alert__actions button:disabled,.prism-import-summary__header>button:disabled,.recovery-banner-actions button:disabled,.sheet-row .sheet-select:disabled,.sheet-actions button:disabled,.choice-tile--radio .choice-tile__control:disabled,.dialog-actions button:disabled,.empty-state-actions button:disabled,.grid-toolbar button:disabled,.column-format-popover__header button:disabled,.column-format-actions button:disabled,.results-status button:disabled,.app-error-actions button:disabled,.feedback-kind button:disabled,.methods-panel button:disabled,.layout-objects-row button:disabled,.layout-arrange button:disabled,.graph-toolbar .toolbar-group>button:disabled,.graph-toolbar .export-split>button:disabled,.graph-inspector .inspector-text-row button:not(.inspector-add-text):disabled,.graph-inspector .inspector-refline-row button:not(.inspector-add-text):disabled,.graph-inspector .inspector-add-text:disabled,.assistant-materialization-actions button:not(.assistant-primary):disabled,.assistant-suggestions button:disabled,.export-split>button:disabled,.export-popover button:disabled,.account-pill-error button:disabled,.admin-tabs button:disabled,.admin-actions button:disabled,.update-toast button:disabled{cursor:not-allowed}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;font-family:inherit;color:var(--ink);background-color:var(--surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%235a6b7a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6.5 8 10.5 12 6.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 5px center;background-size:13px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px 22px 2px 8px}select:hover:not(:disabled){border-color:#94a8bb}input[type=text]:not(.cell-input):not(.title-input),input[type=number]:not(.cell-input):not(.title-input){font-family:inherit;color:var(--ink);background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px 8px}input[type=text]:not(.cell-input):not(.title-input):hover:not(:disabled),input[type=number]:not(.cell-input):not(.title-input):hover:not(:disabled){border-color:#94a8bb}.app-shell{display:grid;grid-template-areas:"header header" "nav main";grid-template-columns:220px 1fr;grid-template-rows:min-content 1fr;height:100vh;height:100dvh}.app-header{grid-area:header;min-height:52px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;row-gap:6px;padding:6px 18px;background:linear-gradient(180deg,#34669c 0%,var(--accent) 100%);color:var(--ink-on-accent);box-shadow:inset 0 -1px #0000002e,0 2px 6px #152d4a38}.app-brand{display:flex;flex-direction:column;justify-content:center;line-height:1.15;padding-right:4px}.app-brand h1{font-size:var(--text-lg);font-weight:700;letter-spacing:.2px;margin:0}.api-status{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-2xs);font-weight:500;opacity:.82}.api-status__dot{width:6px;height:6px;border-radius:50%;background:#8fe3a6;box-shadow:0 0 0 2px #8fe3a640}.api-status.api-checking .api-status__dot{background:#ffd479;box-shadow:0 0 0 2px #ffd47940}.api-status.api-down .api-status__dot{background:#ff9b8a;box-shadow:0 0 0 2px #ff9b8a40}.api-status.api-gated .api-status__dot{background:#9fc3ff;box-shadow:0 0 0 2px #9fc3ff40}.api-status__retry{align-self:flex-start;margin-top:2px;background:#ffffff1a;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-sm);color:var(--ink-on-accent);font-size:var(--text-3xs);font-weight:600;padding:1px 8px;cursor:pointer}.api-status__retry:hover{background:#fff3;border-color:#ffffff52}.app-header .toolbar-sep{width:1px;align-self:stretch;min-height:20px;margin:0 4px;background:#ffffff38}.toolbar{flex:1 1 auto;min-width:min-content;display:flex;flex-wrap:wrap;align-items:center;gap:4px}.toolbar-menu--right,.app-header .account-pill-wrap{margin-left:auto}@media (max-width: 700px){.app-header .account-pill-wrap{margin-left:0}}@media (max-width: 420px){.app-header .toolbar-sep{display:none}.toolbar-menu--right{margin-left:0}.toolbar button{gap:6px;padding-inline:8px}}@media (max-width: 260px){.toolbar-button__label{display:none}}.toolbar button{min-height:32px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(180deg,#ffffff29,#ffffff17);border:1px solid rgba(255,255,255,.22);border-radius:var(--radius-lg);color:var(--ink-on-accent);font-size:var(--text-xs);font-weight:600;line-height:1;padding:6px 10px;cursor:pointer;box-shadow:inset 0 1px #ffffff14,0 1px 2px #0f253d1f;transition:background .12s ease,border-color .12s ease,box-shadow .12s ease,transform .06s ease}.toolbar button:hover:not(:disabled){background:linear-gradient(180deg,#ffffff40,#ffffff29);border-color:#fff6;box-shadow:inset 0 1px #ffffff1f,0 2px 5px #0f253d33}.toolbar button:active:not(:disabled){background:#ffffff47;box-shadow:inset 0 1px 2px #0f253d2e;transform:translateY(.5px)}.toolbar button[aria-expanded=true]{background:#ffffff45;border-color:#ffffff7a;box-shadow:inset 0 1px 2px #0f253d26,0 0 0 1px #ffffff0f}.app-header>:is(.app-brand,.toolbar,.workspace-switcher,.workspace-menu,.account-pill-wrap)>:is(button,select,textarea,a[href],input,[tabindex]):focus-visible{outline:2px solid var(--focus-ring-on-accent);outline-offset:1px}.toolbar-button__icon,.toolbar-menu__caret{display:inline-grid;place-items:center;flex:0 0 auto}.toolbar-button__icon{font-size:var(--text-lg);opacity:.94}.toolbar-button__icon svg,.toolbar-menu__caret svg{display:block}.toolbar-button__label,.command-palette-trigger__label{white-space:nowrap}.toolbar-menu__caret{width:11px;margin-left:-3px;font-size:var(--text-xs);opacity:.72}.toolbar-save__dirty{color:#ffd479;font-weight:800}.toolbar button.toolbar-caret,.toolbar button.toolbar-iconbtn{padding:4px 8px;line-height:1}.toolbar button.toolbar-iconbtn svg{display:block;font-size:var(--text-base)}.toolbar button.toolbar-caret{font-size:var(--text-3xs);margin-left:-3px}.toolbar-icons{display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding-left:6px}.toolbar-icons button{background:transparent;border-color:transparent}.toolbar-icons button:hover:not(:disabled){background:#ffffff29;border-color:transparent}@media (pointer: coarse){.toolbar button,.toolbar button.toolbar-caret,.toolbar button.toolbar-iconbtn,.toolbar-icons button,.context-menu button{min-height:40px}}.section-label{display:block;padding:6px 16px;font-weight:600;font-size:var(--text-sm);color:var(--ink)}.section-empty{margin:0;padding:0 16px 6px;font-size:var(--text-xs);color:#60717d}.sheet-link{background:none;border:none;width:100%;text-align:left;cursor:pointer}.sheet-link:hover{color:var(--accent)}.sheet-link.active{background:#dbe8f3;color:var(--accent)}.sheet-name{padding:4px 16px 4px 32px;font-size:var(--text-sm);color:#1a4e7a}.open-error{color:var(--danger)}.app-operation-alert{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;box-sizing:border-box;width:100%;margin:0 0 16px;padding:10px 12px;border:1px solid var(--danger-border);border-radius:var(--radius-lg);background:var(--danger-surface);color:var(--danger-strong);font-size:var(--text-sm);line-height:1.45}.app-operation-alert__message{min-width:0;overflow-wrap:anywhere}.app-operation-alert__actions{display:flex;flex:0 0 auto;gap:8px}.app-operation-alert__actions button{min-height:28px;padding:4px 10px;border:1px solid var(--danger-border);border-radius:var(--radius-sm);background:var(--surface);color:var(--danger-strong);font:inherit;font-weight:600;line-height:1.2;cursor:pointer}.app-operation-alert__actions button:hover{background:var(--danger-surface-strong)}.app-operation-alert__actions button.primary{border-color:var(--danger);background:var(--danger);color:var(--ink-on-accent)}@media (max-width: 480px){.app-operation-alert{flex-direction:column}.app-operation-alert__actions{width:100%}.app-operation-alert__actions button{flex:1 1 0}}.prism-import-summary{margin:0 0 20px;border:1px solid #b9d8d4;border-radius:var(--radius-lg);background:linear-gradient(145deg,#f5fbfa,var(--surface) 55%);box-shadow:0 4px 16px #1c4f4c17;overflow:hidden}.prism-import-summary__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px 12px}.prism-import-summary__header h2,.prism-import-summary__header p{margin:0}.prism-import-summary__header h2{color:#173f3d;font-size:var(--text-xl)}.prism-import-summary__header>div>p:last-child{margin-top:3px;color:#607572;font-size:var(--text-xs)}.prism-import-summary__eyebrow{color:#16706b;font-size:var(--text-2xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.prism-import-summary__header>button{border:0;background:transparent;color:#55706d;font-size:var(--text-2xl);line-height:1;cursor:pointer}.prism-import-summary__metrics{display:grid;grid-template-columns:repeat(4,minmax(90px,1fr));border-block:1px solid #dcebe9;background:#edf7f5}.prism-import-summary__metrics span{display:grid;gap:1px;padding:10px 18px;border-right:1px solid #d7e8e5;color:#5e706e;font-size:var(--text-2xs);text-transform:uppercase}.prism-import-summary__metrics span:last-child{border-right:0}.prism-import-summary__metrics strong{color:#174b47;font-size:var(--text-xl)}.prism-import-summary__details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:16px 18px}.prism-import-summary__details h3{margin:0 0 6px;color:#334d4b;font-size:var(--text-xs)}.prism-import-summary__details ul,.prism-import-summary__warnings ul{margin:0;padding-left:16px;color:#5a6968;font-size:var(--text-xs);line-height:1.45}.prism-import-summary__details li+li,.prism-import-summary__warnings li+li{margin-top:4px}.prism-import-summary__warnings{padding:10px 18px 12px;border-top:1px solid var(--warning-border);background:var(--warning-surface);color:var(--warning-strong);font-size:var(--text-xs)}.prism-import-summary__warnings ul{margin-top:4px;color:var(--warning-strong)}@media (max-width: 700px){.prism-import-summary__metrics{grid-template-columns:repeat(2,1fr)}.prism-import-summary__metrics span:nth-child(2){border-right:0}.prism-import-summary__metrics span:nth-child(-n+2){border-bottom:1px solid #d7e8e5}.prism-import-summary__details{grid-template-columns:1fr}}.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}.replace-result{margin-left:6px;font-size:var(--text-xs);color:#2d6a2d}.app-shell--recovering{grid-template-areas:"header header" "recovery recovery" "nav main";grid-template-rows:min-content auto 1fr}.recovery-banner{position:fixed;right:16px;bottom:16px;z-index:45;max-width:min(420px,calc(100vw - 32px));display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;background:var(--warning-surface);border:1px solid var(--warning-border);border-left:3px solid var(--warning-accent);border-radius:var(--radius-lg);box-shadow:0 8px 24px #4a3c0a38;color:var(--warning-strong);font-size:var(--text-sm)}.recovery-banner-actions{display:flex;gap:8px;flex-shrink:0}.recovery-banner-actions button{padding:3px 12px;border:1px solid var(--warning-accent);border-radius:var(--radius-sm);background:var(--surface);color:var(--warning-strong);cursor:pointer;font-size:var(--text-xs)}@media (max-width: 480px){.recovery-banner{left:12px;right:12px;bottom:12px;max-width:none;align-items:stretch;flex-direction:column;gap:8px}.recovery-banner-actions{width:100%}.recovery-banner-actions button{flex:1 1 0}}.recovery-banner-actions button:hover{background:var(--warning-surface)}.recovery-banner-dismiss{border-color:var(--border)!important;color:var(--ink-muted)!important}.toolbar button:disabled{opacity:.45;cursor:default}.project-title{font-size:var(--text-2xl);font-weight:600;font-family:inherit;color:inherit;border:1px solid transparent;border-radius:var(--radius-sm);padding:2px 6px;margin-left:-7px;background:transparent;min-width:320px}.project-title:hover{border-color:var(--border)}.project-title:focus{border-color:var(--accent);outline:none;background:var(--surface)}.project-title:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.info-meta{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:baseline;gap:6px 16px;max-width:560px;margin:12px 0 16px}.info-meta dt{color:var(--ink-muted);font-weight:600}.info-meta dd{min-width:0;margin:0;overflow-wrap:anywhere}.info-notes{display:grid;gap:6px;max-width:560px;color:var(--ink-muted);font-size:var(--text-sm);font-weight:600}.info-notes textarea{box-sizing:border-box;width:100%;padding:8px 10px;resize:vertical;border:1px solid #b8c4cf;border-radius:var(--radius-sm);color:var(--ink);background:var(--surface);font:inherit;font-weight:400;line-height:1.4}.project-graph-defaults{max-width:560px;margin-top:20px}@media (max-width: 480px){.info-meta{grid-template-columns:minmax(0,1fr);gap:2px}.info-meta dt:not(:first-child){margin-top:6px}}.section-header{display:flex;align-items:center;padding-right:10px}.section-header .section-label{flex:1;min-width:0}.section-add{flex:none;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:none;border:none;border-radius:var(--radius-sm);font-size:var(--text-base);color:var(--accent);cursor:pointer}.section-add:hover:not(:disabled){background:#eef4f9}.section-add:disabled{color:var(--ink-subtle);cursor:default}.sheet-row{position:relative;display:flex;align-items:center;gap:4px}.sheet-row .sheet-select{flex:1;min-width:0;text-align:left;background:none;border:none;font:inherit;color:#1a4e7a;padding:4px 4px 4px 16px;cursor:pointer;border-radius:var(--radius-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-row.active .sheet-select{background:#dbe8f3;font-weight:600}.sheet-actions{position:absolute;z-index:1;right:0;display:inline-flex;align-items:center;padding-left:8px;background:linear-gradient(90deg,transparent,#f4f6f8 8px);opacity:0;pointer-events:none;transition:opacity .12s ease}.sheet-row.active .sheet-actions{background:linear-gradient(90deg,transparent,#dbe8f3 8px)}.sheet-row:hover .sheet-actions,.sheet-row:focus-within .sheet-actions{opacity:1;pointer-events:auto}.sheet-actions button{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-xs);color:#44606f;padding:0}.sheet-actions button:hover:not(:disabled){background:var(--surface-accent);color:#1a4e7a}.sheet-rename{margin-left:16px;font:inherit;width:140px}.sheet-title{margin:16px 0 0;overflow-wrap:anywhere}.sheet-header-row{display:flex;align-items:center;gap:8px}.sheet-header-row .sheet-title{margin-right:auto}.copy-results-btn{flex:none;font-size:var(--text-xs);padding:3px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);cursor:pointer}.copy-results-btn:hover{background:#eef4f9}@media (max-width: 480px){.sheet-header-row{align-items:flex-start;flex-wrap:wrap}.sheet-header-row .sheet-title{flex:1 0 100%;margin-right:0;min-width:0}}.sheet-meta{margin:2px 0 16px;color:#5a6a75;font-size:var(--text-sm)}.note-sections{margin:0 0 18px;border:1px solid #d9e2e8;border-radius:var(--radius-lg);background:#f8fafb;overflow:hidden}.note-sections__heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #dfe7ec;background:linear-gradient(135deg,#f1f7f8,#f9fbfc)}.note-sections__heading p,.note-sections__heading h3{margin:0}.note-sections__heading p{color:#547176;font-size:var(--text-3xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.note-sections__heading h3{margin-top:2px;color:#29454b;font-size:var(--text-base)}.note-sections__heading>span{min-width:24px;padding:3px 8px;border-radius:var(--radius-pill);background:#dceced;color:#355e63;font-size:var(--text-2xs);font-weight:700;text-align:center}.note-sections__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:10px;padding:12px}.note-section-card{min-width:0;padding:12px;border:1px solid #dbe3e7;border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.note-section-card label,.note-section-card__constants{display:grid;gap:4px}.note-section-card label>span,.note-section-card__constants legend{color:#64757d;font-size:var(--text-2xs);font-weight:600}.note-section-card input,.note-section-card textarea{box-sizing:border-box;width:100%;border:1px solid #cbd7dd;border-radius:var(--radius-sm);background:var(--surface);color:#26383f;font:inherit}.note-section-card input{padding:8px}.note-section-card textarea{min-height:64px;padding:8px;resize:vertical}.note-section-card__body,.note-section-card__constants{margin-top:10px}.note-section-card__constants{padding:8px;border:1px solid #e2e8eb;border-radius:var(--radius-md)}.note-section-card__constant{display:grid;grid-template-columns:minmax(90px,1fr) minmax(110px,1.4fr);gap:8px}.note-section-card__constant+.note-section-card__constant{margin-top:8px}@media (max-width: 480px){.note-section-card__constant{grid-template-columns:1fr}}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);display:flex;align-items:center;justify-content:center;z-index:10}.dialog{background:var(--surface);border-radius:var(--radius-md);padding:20px 24px;width:min(520px,calc(100vw - 32px));max-height:80vh;overflow:auto;box-shadow:var(--shadow-xl)}@media (max-height: 480px){.dialog{max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px)}}.choice-dialog{width:min(720px,calc(100vw - 48px))}.choice-tile-grid{--choice-tile-min-width: 210px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(var(--choice-tile-min-width),100%),1fr));gap:10px}.choice-tile-grid:has(>:only-child){grid-template-columns:minmax(min(var(--choice-tile-min-width),100%),var(--choice-tile-min-width))}.choice-tile{position:relative;display:flex;gap:12px;align-items:flex-start;min-width:0;box-sizing:border-box;padding:12px;border:1px solid #d0d8df;border-radius:var(--radius-lg);background:var(--surface);color:#273540;text-align:left;font:inherit;cursor:pointer;transition:border-color .12s ease,background-color .12s ease,box-shadow .12s ease,transform .12s ease}.choice-tile:hover:not(.is-disabled):not(:disabled){border-color:#7897b2;background:#f7fafc;box-shadow:var(--shadow-sm);transform:translateY(-1px)}.choice-tile:focus-visible,.choice-tile:has(.choice-tile__control:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.choice-tile.is-selected{border-color:var(--accent);background:#eef5fa;box-shadow:inset 0 0 0 1px var(--accent)}.choice-tile.is-disabled,.choice-tile:disabled{cursor:not-allowed;opacity:.55}.choice-tile--radio .choice-tile__control{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;inline-size:100%;block-size:100%;margin:0;cursor:pointer;opacity:0}.choice-tile__visual{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;color:#5a6a75}.choice-tile.is-selected .choice-tile__visual{color:var(--accent)}.choice-tile__copy{display:flex;min-width:0;flex:1;flex-direction:column;gap:4px}.choice-tile__heading{display:flex;align-items:center;gap:8px}.choice-tile__title{font-weight:650;line-height:1.25}.choice-tile__description{color:#5a6a75;font-size:var(--text-xs);line-height:1.4}.choice-tile__badge{padding:2px 6px;border-radius:var(--radius-pill);background:#d9eeec;color:#0f625f;font-size:var(--text-3xs);font-weight:700;letter-spacing:.035em;text-transform:uppercase}.command-palette-backdrop{align-items:flex-start;padding-top:min(14vh,120px)}.command-palette-trigger{display:inline-flex;align-items:center;gap:8px}@media (max-width: 420px){.command-palette-trigger__label{display:none}}.command-palette{display:flex;flex-direction:column;width:min(640px,calc(100vw - 32px));max-height:calc(100dvh - min(14vh,120px) - 16px);overflow:hidden;border:1px solid #c8d5df;border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-xl)}.command-palette__search-row{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid #dce4ea}.command-palette__search-icon{color:#4e6475;font-size:var(--text-2xl);line-height:1}.command-palette__search-row input{min-width:0;flex:1;padding:4px 0;border:0;outline:0;background:transparent;font:inherit;font-size:var(--text-lg)}.command-palette__search-row input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.command-palette__close{display:none;flex:0 0 auto;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:#526572;font-size:var(--text-2xl);line-height:1;cursor:pointer}.command-palette__close:hover{background:#edf2f6;color:var(--ink)}.command-palette kbd{padding:2px 6px;border:1px solid #cdd7df;border-radius:var(--radius-sm);background:#f5f7f9;color:#5a6a75;font-family:inherit;font-size:var(--text-2xs);white-space:nowrap}.command-palette__results{min-height:0;max-height:min(52vh,430px);overflow-y:auto;padding:6px}.command-palette__option{display:flex;width:100%;align-items:center;justify-content:space-between;gap:14px;padding:8px 10px;border:0;border-radius:var(--radius-md);background:transparent;color:#273540;text-align:left;cursor:pointer}.command-palette__option.is-active{background:#eaf2f8}.command-palette__option>span{display:flex;min-width:0;flex-direction:column;gap:2px}.command-palette__option strong{overflow:hidden;font-size:var(--text-sm);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.command-palette__option small{color:var(--ink-muted);font-size:var(--text-2xs)}.command-palette__empty{margin:0;padding:26px 12px;color:var(--ink-muted);text-align:center}.command-palette__footer{display:flex;gap:14px;padding:8px 14px;border-top:1px solid #e1e7ec;background:#f8fafb;color:#6b7984;font-size:var(--text-2xs)}@media (max-width: 480px){.command-palette__escape-hint{display:none}.command-palette__close{display:inline-flex}}.dialog-sub{color:#667;font-size:var(--text-sm);margin:0 0 12px;overflow-wrap:anywhere}.graph-type-data-preview{margin:-4px 0 12px;padding:8px;border-left:3px solid #2d7b79;border-radius:var(--radius-sm);background:#f1f8f8;color:#315256;font-size:var(--text-xs);line-height:1.4}.layout-picker__graph{display:flex;min-width:0;align-items:baseline;justify-content:space-between;gap:10px;padding:4px 0}.layout-picker__graph span{min-width:0;color:#60717d;font-size:var(--text-xs);overflow-wrap:anywhere}.layout-picker{min-width:0}@media (max-width: 560px){.layout-picker__graph{align-items:flex-start;flex-direction:column}}.graph-type-grid{margin-top:4px}.graph-type-option{flex-direction:column;align-items:center;text-align:center}.graph-type-option .choice-tile__copy{width:100%}.graph-type-option .choice-tile__heading{justify-content:center}.dialog-actions{display:flex;justify-content:flex-end;margin-top:16px}.dialog h2{margin:0 0 4px;min-width:0;overflow-wrap:anywhere}.dialog-title-row{display:flex;align-items:flex-start;gap:12px}.dialog-title-row h2{margin-right:auto}.dialog-title-row>.link-button{flex:0 0 auto;min-height:24px;margin-top:0;padding:3px 4px}.dialog-hint{margin:0 0 12px;color:#5a6a75;font-size:var(--text-sm)}.table-type-list{margin-top:4px}.table-type{min-height:82px}.new-table-options{margin-top:14px;border:1px solid #d7e1e8;border-radius:var(--radius-lg);background:#f8fafb}.new-table-options>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;color:#304452;font-size:var(--text-sm);font-weight:600;cursor:pointer}.new-table-options__summary{color:#687985;font-size:var(--text-xs);font-weight:400;text-align:right}.new-table-options__body{padding:0 12px 12px;border-top:1px solid #e1e8ed}.new-table-options__body>p{margin:10px 0;color:#63737e;font-size:var(--text-xs)}.new-table-options__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.new-table-options__grid label{display:grid;gap:4px;color:#415563;font-size:var(--text-xs);font-weight:600}.new-table-options__grid input,.new-table-options__grid select{width:100%;box-sizing:border-box}.new-table-options__check{display:flex;align-items:center;gap:6px;margin-top:12px;color:#415563;font-size:var(--text-xs)}.new-table-save-template{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;color:#415563;font-size:var(--text-xs)}.new-table-save-template label{display:inline-flex;align-items:center;gap:8px;font-weight:600}.table-type-icon{display:inline-flex;align-self:center;color:#5a6a75}@media (max-width: 560px){.new-table-options>summary{align-items:flex-start;flex-direction:column;gap:3px}.new-table-options__summary{text-align:left}}.sample-tile-grid{margin-bottom:16px}.analyze-filter{width:100%;box-sizing:border-box;margin:0 0 10px;padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit}.analyze-goals{margin:2px 0 14px;padding:12px;border:1px solid #dce6ed;border-radius:var(--radius-lg);background:#f8fbfd}.analyze-goals__heading{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:10px}.analyze-goals h3{margin:0;color:#273540;font-size:var(--text-base)}.analyze-goals p{margin:3px 0 0;color:#5a6a75;font-size:var(--text-xs)}.analyze-goal-grid{gap:8px}.analyze-goal-grid .choice-tile{min-height:88px;padding:10px}.analyze-filter-row{display:flex;gap:10px;align-items:center}.analyze-filter-row .analyze-filter{flex:1}@media (max-width: 560px){.analyze-goals__heading,.analyze-filter-row{align-items:stretch;flex-direction:column}.analyze-filter-row .link-button{align-self:start}}.analyze-group{border:1px solid #e0e6ea;border-radius:var(--radius-sm);margin:0 0 10px;padding:6px 10px 8px}.analyze-group legend{font-size:var(--text-sm);font-weight:600;color:#34404a;padding:0 4px}.analyze-advanced-options{margin:8px 0;border:1px solid #dce5eb;border-radius:var(--radius-sm);background:#f8fafb}.analyze-advanced-options>summary{padding:8px;color:#2d4e65;font-size:var(--text-xs);font-weight:600;cursor:pointer}.analyze-advanced-options[open]>summary{border-bottom:1px solid #dce5eb;background:#eef4f9}.analyze-advanced-options .plot-fn-params{margin:8px}.analyze-item{display:flex;align-items:center;gap:6px;padding:3px 4px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm)}.analyze-item.selected{background:#eef4f9}.analyze-item:hover:not(.selected){background:#f5f8fb}.analyze-item.disabled{color:#9aa5ad;cursor:not-allowed}.analyze-item.disabled:hover{background:transparent}.analyze-summary-note{margin:2px 0 12px;padding:8px 12px;background:var(--warning-surface);border-left:3px solid var(--warning-accent);border-radius:var(--radius-sm);color:var(--warning-strong);font-size:var(--text-sm);line-height:1.45}.analyze-description{margin:2px 0 12px;padding:8px 12px;background:#eef4f9;border-left:3px solid var(--accent);border-radius:var(--radius-sm);color:#2a3f4f;font-size:var(--text-sm);line-height:1.45}.analyze-preflight{margin:2px 0 12px;padding:10px 12px;border:1px solid #cfe2d4;border-radius:var(--radius-lg);background:#f4fbf6;color:#294335;font-size:var(--text-sm);line-height:1.45}.analyze-preflight.is-blocked{border-color:var(--warning-accent);background:var(--warning-surface);color:var(--warning-strong)}.analyze-preflight__heading h3,.analyze-preflight__heading p,.analyze-preflight ul,.analyze-preflight__assumption,.analyze-preflight__block{margin:0}.analyze-preflight__heading h3{font-size:var(--text-sm)}.analyze-preflight__heading p{margin-top:2px}.analyze-preflight ul{margin-top:6px;padding-left:18px}.analyze-preflight__assumption{margin-top:8px;padding-top:8px;border-top:1px solid #cfe2d4;color:#3b5948}.analyze-preflight.is-blocked .analyze-preflight__assumption{border-color:var(--warning-border);color:inherit}.analyze-preflight__block{margin-top:8px;font-weight:600}.import-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px 14px;font-size:var(--text-sm)}.import-sheet-field{display:grid;min-width:0;align-self:start;gap:4px}.import-sheet-select{width:100%;min-width:0;max-width:100%}.import-format-choice{display:grid;gap:4px}.import-format-choice__label{font-weight:650}.import-format-choice .choice-tile-grid{gap:4px}.import-format-tile{min-height:42px;padding:8px;justify-content:center;text-align:center}.import-format-tile .choice-tile__heading{justify-content:center}.import-dialog{max-height:min(88vh,900px)}.import-dialog .dialog-actions{flex-wrap:wrap}@media (max-width: 480px){.import-dialog .dialog-actions button{flex:1 1 100px}.import-dialog .dialog-actions button.primary{flex-basis:100%}}.import-binary-warning{margin:0 0 10px;padding:8px 12px;border:1px solid var(--warning-border);border-radius:var(--radius-md);background:var(--warning-surface);color:var(--warning-strong);font-size:var(--text-xs);font-weight:600}.import-start{width:min(520px,calc(100vw - 48px))}.import-drop-zone{display:grid;width:100%;min-height:190px;margin:18px 0;box-sizing:border-box;place-content:center;gap:4px;border:2px dashed #8daabd;border-radius:var(--radius-xl);background:#f7fbfd;color:#23435b;font:inherit;text-align:center;cursor:pointer;transition:border-color .12s ease,background-color .12s ease,box-shadow .12s ease}.import-drop-zone:hover,.import-drop-zone:focus-visible,.import-drop-zone.is-dragging{outline:none;border-color:#1f6d95;background:#edf7fb;box-shadow:0 0 0 3px #1f6d9529}.import-drop-zone__icon{margin-bottom:2px;color:#1f6d95;font-size:29px;font-weight:700;line-height:1}.import-drop-zone__title{color:#243c4e;font-size:var(--text-lg);font-weight:700}.import-drop-zone__description{color:#5b6d7b;font-size:var(--text-sm)}.import-drop-zone__browse{justify-self:center;margin-top:6px;padding:4px 10px;border-radius:var(--radius-sm);background:#dbeef6;color:#155b80;font-size:var(--text-sm);font-weight:600}.import-supported-formats{padding:12px;border:1px solid #dce6ed;border-radius:var(--radius-lg);background:#f8fbfd}.import-supported-formats h3,.import-supported-formats p{margin:0}.import-supported-formats h3{color:#273540;font-size:var(--text-sm)}.import-supported-formats p{margin-top:3px;color:#526572;font-size:var(--text-sm);line-height:1.45}.import-supported-formats .import-supported-formats__note{margin-top:8px;color:#657984;font-size:var(--text-xs)}.import-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 14px}.import-overview>div{display:flex;min-width:0;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid #dce6ed;border-radius:var(--radius-md);background:#f8fbfd}.import-overview strong{overflow:hidden;font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap}.import-overview span,.import-section__heading p{color:#5a6a75;font-size:var(--text-xs)}.import-section{margin:0 0 14px;padding:12px;border:1px solid #e0e6ea;border-radius:var(--radius-lg)}.import-section__heading{margin:0 0 8px}.import-section__heading h3{margin:0;color:#273540;font-size:var(--text-base)}.import-section__heading p{margin:3px 0 0;line-height:1.4}.import-type{gap:8px}.import-type-tile{min-height:76px;padding:10px}.import-preview{border-collapse:collapse;font-size:var(--text-xs);table-layout:fixed;width:100%}.import-preview td{border:1px solid #e0e6ea;padding:2px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:110px}.import-preview .preview-header td{background:#e8eef3;font-weight:600}@media (max-width: 560px){.import-overview{grid-template-columns:1fr}}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin:16px -24px -20px;padding:12px 24px;background:var(--surface);border-top:1px solid #e3e8ee}.dialog-actions:has(+.dialog-actions){margin-bottom:0}.dialog-actions+.dialog-actions{margin-top:0}.dialog-actions button{padding:4px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);cursor:pointer}.dialog-actions button.primary{background:var(--accent);border-color:var(--accent);color:var(--ink-on-accent)}.dialog-actions button.danger{background:var(--danger);border-color:var(--danger);color:var(--ink-on-accent)}@media (max-height: 260px){.layout-size-dialog .param-field{margin-bottom:8px}.layout-size-dialog .dialog-actions{margin-top:6px}}.data-loss-dialog{width:min(440px,calc(100vw - 32px))}.project-file-dialog{width:min(420px,calc(100vw - 32px))}.project-name-field{display:grid;gap:6px;margin-top:16px;color:var(--ink-muted);font-size:var(--text-sm);font-weight:600}.project-name-field input{box-sizing:border-box;width:100%;padding:8px;font:inherit;font-weight:400}.grid-toolbar button.btn-primary,.results-status button.btn-primary,button.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--ink-on-accent)}.grid-toolbar button.btn-primary:hover:not(:disabled),.results-status button.btn-primary:hover:not(:disabled),button.btn-primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.grid-toolbar button.btn-primary:disabled,.results-status button.btn-primary:disabled,button.btn-primary:disabled{background:var(--ink-subtle);border-color:var(--ink-subtle);color:var(--surface-sunken);cursor:default}.shortcuts-button{min-width:30px;height:30px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;text-align:center;font-weight:600}.shortcuts-button--text{width:auto;padding:0 10px;font-weight:500}.toolbar-recent{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:#ffffff1a;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-md);color:var(--ink-on-accent);font-size:var(--text-xs);font-weight:500;padding:4px 24px 4px 12px;max-width:150px;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,rgba(255,255,255,.75) 50%),linear-gradient(135deg,rgba(255,255,255,.75) 50%,transparent 50%);background-position:calc(100% - 13px) 51%,calc(100% - 8px) 51%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.toolbar-recent option{color:#1c2b3a;background:var(--surface)}.shortcut-list{margin:0;display:grid;grid-template-columns:max-content 1fr;gap:8px 16px;align-items:baseline}.shortcut-row{display:contents}.shortcut-list dt,.shortcut-list dd{margin:0}@media (max-width: 480px){.shortcut-list{grid-template-columns:minmax(0,1fr)}.shortcut-row{display:grid;grid-column:1 / -1;gap:2px;min-width:0}}.shortcut-list kbd{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);border:1px solid var(--border);border-bottom-width:2px;background:#f4f7fa;font-family:inherit;font-size:var(--text-xs);white-space:nowrap}.empty-state{color:var(--ink-muted);max-width:460px;margin:12vh auto 0;text-align:center}.empty-state h2{margin:0 0 6px;font-size:var(--text-2xl);color:#2d3b4a}.empty-state-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0 14px}.empty-state-actions button{min-width:0;max-width:100%;padding:8px 16px;font-size:var(--text-sm);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);cursor:pointer;overflow-wrap:anywhere;white-space:normal}.empty-state-actions button:hover{background:#eef4f9}.empty-state-actions .empty-primary{background:var(--accent);border-color:var(--accent);color:var(--ink-on-accent)}.empty-state-actions .empty-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.empty-state-hint{font-size:var(--text-sm)}@media (max-width: 480px){.empty-state-actions{grid-template-columns:minmax(0,1fr)}}.grid-replicates{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-sm)}.grid-replicates input[type=number]{width:3.5em}.welcome-steps{margin:8px 0 4px;padding-left:20px;line-height:1.6}.link-button{border:none;background:none;padding:0;color:#2f6fb0;font:inherit;cursor:pointer;text-decoration:underline}.analysis-graph-action{margin-top:8px}.estimation-graph-canvas{display:flex;align-items:center;justify-content:center;padding:16px}.estimation-graph-canvas svg{background:var(--graph-bg, #fff);border:var(--graph-border-width, 1px) var(--graph-border-style, solid) var(--graph-border, transparent);border-radius:var(--radius-sm);font-family:var(--graph-font-family, Arial, "Helvetica Neue", sans-serif)}.grid-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-bottom:10px}.grid-toolbar .toolbar-group{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.grid-row-actions{padding:4px;border:1px solid #d6e1eb;border-radius:var(--radius-md);background:#f7fafc}.grid-toolbar-group-label{margin:0 2px;color:#587086;font-size:var(--text-3xs);font-weight:600;letter-spacing:.4px;text-transform:uppercase}.grid-row-actions button{display:inline-flex;align-items:center;gap:3px}.grid-toolbar .grid-io-group{margin-left:auto}.grid-toolbar button{padding:3px 10px;font-size:var(--text-xs);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);cursor:pointer}.grid-toolbar button:hover{background:#eef4f9}.table-tools-toggle,.table-setup-toggle{border-color:#6a8db1!important;background:#f5f9fd!important;font-weight:600}.table-tools-toggle:after,.table-setup-toggle:after{content:"▾";display:inline-block;margin-left:6px;transition:transform .12s ease}.table-tools-toggle[aria-expanded=true]:after,.table-setup-toggle[aria-expanded=true]:after{transform:rotate(180deg)}.table-tools-panel{flex-basis:100%;max-width:1100px;border:1px solid #c9d9e8;border-radius:var(--radius-lg);background:#f8fbff;box-shadow:var(--shadow-sm);overflow:clip}.table-tools-panel__header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px;border-bottom:1px solid #d9e4ee;background:#f0f6fc}.table-tools-panel__header strong,.table-tools-panel__header span{display:block}.table-tools-panel__header strong{color:#183b5b;font-size:var(--text-sm)}.table-tools-panel__header span{margin-top:2px;color:#5c7185;font-size:var(--text-xs)}.table-tools-panel__content{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:8px;padding:10px}.table-tools-panel__transform{grid-column:1 / -1;display:flex!important;gap:8px!important}.table-tools-panel__operations{display:contents!important}.table-tools-panel .transform-control,.table-tools-panel .transform-param{display:flex;align-items:center;align-content:flex-start;flex-wrap:wrap;gap:4px;min-width:0;min-height:58px;margin:0;padding:8px;border:1px solid #d5e0ea;border-radius:var(--radius-md);background:var(--surface);color:#34495b;font-size:var(--text-xs);line-height:1.35}.table-tools-panel__transform .transform-control{flex:1 1 260px}.table-tools-panel .transform-control select,.table-tools-panel .transform-control input,.table-tools-panel .transform-param input{max-width:100%;min-height:27px;border:1px solid #b8c9d8;border-radius:var(--radius-sm);background:var(--surface);color:#23384b;font:inherit}.table-tools-panel .transform-control select{min-width:0}.table-tools-panel .transform-control input[type=number],.table-tools-panel .transform-param input[type=number]{width:4.5em;padding:2px 4px}.table-tools-panel .extract-col-check{display:inline-flex;align-items:center;gap:2px}.table-tools-panel .find-replace-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}.find-replace-field{display:grid;min-width:0;gap:4px}.find-replace-field input{box-sizing:border-box;width:100%}.find-replace-control>button,.find-replace-control>.replace-result{grid-column:1 / -1}@media (max-width: 700px){.table-tools-panel__header{align-items:flex-start}.table-tools-panel__transform{grid-column:auto;flex-wrap:wrap!important}}.data-grid{border-collapse:collapse;font-size:var(--text-sm);background:var(--surface);font-variant-numeric:tabular-nums}.data-grid th,.data-grid td{border:1px solid #ccd6dd;padding:0;min-width:72px;height:24px;text-align:left}.data-grid thead th{padding:3px 8px}.cell-input,.title-input{width:100%;height:100%;border:none;font:inherit;padding:3px 8px;background:transparent;box-sizing:border-box}.cell-input:focus,.title-input:focus{outline:2px solid var(--accent);outline-offset:-2px;background:var(--surface)}.cell-input.excluded{color:#2a5db0;font-style:italic;text-decoration:line-through}.col-head{display:flex;align-items:center;gap:2px;position:relative}.col-head .title-input{flex:1 1 auto;min-width:0;width:auto}.col-select-button{flex:0 0 auto;min-width:0;padding:2px 4px;color:#3d617e;font-size:var(--text-2xs);line-height:1.2}.col-delete{flex:0 0 auto;border:none;background:transparent;color:var(--ink-subtle);cursor:pointer;font-size:var(--text-2xs);line-height:1;padding:2px 4px;border-radius:var(--radius-sm)}.col-delete:hover{color:var(--danger);background:var(--danger-surface-strong)}.column-format-toggle{flex:0 0 auto;display:inline-grid;width:25px;height:25px;place-items:center;padding:3px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:#58738e;cursor:pointer}.column-format-toggle:hover,.column-format-toggle[aria-expanded=true]{border-color:#9bb5ce;background:#f5f9fd;color:#24557e}.column-format-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.column-format-popover{position:fixed;z-index:51;top:calc(100% + 5px);left:0;width:min(286px,calc(100vw - 32px));max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);overflow-y:auto;border:1px solid #abc2d8;border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-md);color:#30485d;font-size:var(--text-xs);font-weight:400;text-align:left}.column-format-popover__header{position:sticky;z-index:1;top:0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px;border-bottom:1px solid #d8e4ef;background:#f2f7fc;color:#183b5b}.column-format-popover__header strong{min-width:0;overflow-wrap:anywhere}.column-format-popover__header>button{flex:0 0 auto}.column-format-popover__header button,.column-format-actions button{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:27px;padding:3px 8px;border:1px solid #c4d4e2;border-radius:var(--radius-sm);background:var(--surface);color:#285c89;font:inherit;cursor:pointer}.column-format-popover__header button:hover,.column-format-actions button:hover{background:#edf5fc}.column-format-actions button.is-danger{color:var(--danger)}.column-format-popover__content{display:grid;gap:8px;padding:8px}.column-format-popover fieldset{display:grid;gap:8px;min-width:0;margin:0;padding:8px;border:1px solid #d7e3ee;border-radius:var(--radius-md)}.column-format-popover legend{padding:0 3px;color:#60788e;font-size:var(--text-2xs);font-weight:600}.column-format-popover fieldset>label{display:grid;gap:3px;color:#476075}.column-format-popover input,.column-format-popover select{min-width:0;min-height:27px;border:1px solid #b9cad9;border-radius:var(--radius-sm);background:var(--surface);color:#263e53;font:inherit}.column-format-popover input[type=number]{width:5em;padding:2px 4px}.column-format-actions{display:flex;flex-wrap:wrap;gap:4px}.cell-input.selected{background:#d6e6f5}.cell-input-wrap{position:relative;display:block}.cell-input-wrap .cell-input{width:100%}.grid-fill-handle{position:absolute;right:-3px;bottom:-3px;z-index:2;width:8px;height:8px;min-width:0;padding:0;border:1px solid var(--ink-on-accent);border-radius:1px;background:#1769aa;cursor:crosshair}.grid-fill-handle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.grid-error{color:var(--danger);font-size:var(--text-xs);margin-left:8px}.analysis-transport-error{display:block;box-sizing:border-box;padding:8px 10px;border:1px solid var(--danger-border);border-radius:var(--radius-md);background:var(--danger-surface);color:var(--danger-strong);line-height:1.4;overflow-wrap:anywhere}.analysis-run-error,.grid-toolbar>.analysis-transport-error{flex:1 0 100%;margin:2px 0 0}.results-warning{color:var(--danger);font-size:var(--text-xs);font-weight:600;margin:4px 0 8px}.results-status{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.freshness{font-size:var(--text-xs);font-weight:600;padding:2px 8px;border-radius:var(--radius-pill)}.freshness.fresh{background:#e3f3e6;color:#1d7a33}.freshness.stale{background:var(--warning-surface);color:var(--warning)}.results-status button{max-width:100%;font-size:var(--text-xs);padding:3px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);cursor:pointer;overflow-wrap:anywhere;white-space:normal}.param-field{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);margin-bottom:10px}.color-input{display:inline-flex;align-items:center;gap:4px}.color-input-hex{width:8ch;font-family:SF Mono,Consolas,monospace;font-size:var(--text-xs);padding:1px 4px;text-transform:lowercase}.dialog .param-field{display:flex}.param-field input:not([type=checkbox]){width:90px;padding:3px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit}.results-table{border-collapse:collapse;font-size:var(--text-sm);background:var(--surface);font-variant-numeric:tabular-nums}.results-table th,.results-table td{border:1px solid #ccd6dd;padding:3px 10px;text-align:right;min-width:90px}.results-table thead th{background:#e8eef3;font-weight:600}.results-table .stat-name{text-align:left;font-weight:400;color:var(--ink);background:#f6f8fa}.results-table tr.spacer-after td,.results-table tr.spacer-after th{border-bottom:2px solid #c2ccd4}.results-table tr.test-head .stat-name{background:#e8eef3;font-weight:600}.title-input{font-weight:600;padding:0}.data-grid thead th{background:#e8eef3;font-weight:600}.grid-scroll{position:relative;max-height:70vh;overflow:auto}.data-grid thead th{position:sticky;top:0;z-index:4}.data-grid thead th:has(.column-format-popover){z-index:6}.data-grid thead tr:nth-child(2) th{top:31px;z-index:3}.data-grid tbody .row-head{position:sticky;left:0;z-index:2}.data-grid thead .row-head{z-index:5}.data-grid .subcolumn-head{font-weight:400;font-size:var(--text-xs);color:#5a6a75}.data-grid .row-head{background:#f1f4f6;font-weight:400;color:#5a6a75;min-width:48px;text-align:center;padding:3px 8px}.data-grid .x-head,.data-grid .x-cell{background:#fbf8ef}.navigator{grid-area:nav;border-right:1px solid var(--border);background:#f4f6f8;padding:8px 0}.navigator ul{list-style:none;margin:0;padding:0}.navigator-batch-export{display:grid;gap:6px;margin:12px 8px 4px;padding:8px;border:1px solid #c7d7e4;border-radius:var(--radius-lg);background:#edf5fa;color:#34536a;font-size:var(--text-xs)}.navigator-batch-export button,.workflow-template-card .choice-tile{width:100%}.workflow-template-card__actions{display:flex;justify-content:flex-end;gap:6px;padding:4px 2px 0}.workflow-template-card__actions button{padding:3px 6px;border-color:transparent;background:transparent;color:#596975;font-size:var(--text-2xs)}.workflow-template-card__actions button:hover{border-color:#d5dce2;background:var(--surface);color:var(--accent)}.workflow-template-card__actions button:last-child:not(:only-child):hover{color:var(--danger)}.dialog-feedback{margin:12px 0 0;padding:8px 10px;border:1px solid #b8cedd;border-radius:var(--radius-md);background:#edf5fa;color:#34536a;font-size:var(--text-sm);line-height:1.35;overflow-wrap:anywhere}.dialog-feedback.is-success{border-color:#9bc9ae;background:#eef8f2;color:#245f3d}.dialog-feedback.is-error{border-color:var(--danger-border);background:var(--danger-surface);color:var(--danger-strong)}.batch-export-renderer{position:fixed;top:0;left:-10000px;width:900px;pointer-events:none}.sheet-area{grid-area:main;padding:24px 24px 76px;min-width:0}.workflow-progress{margin:4px 0 18px;border:1px solid #e3e8ee;border-radius:var(--radius-lg);background:#fbfcfd}.workflow-progress ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;list-style:none;margin:0;padding:4px}.workflow-progress__step{min-width:0}.workflow-progress__step button{display:flex;align-items:center;gap:8px;width:100%;min-height:48px;padding:8px 10px;border:0;border-radius:var(--radius-md);background:transparent;color:#34434e;font:inherit;text-align:left;cursor:pointer}.workflow-progress__step button:hover:not(:disabled){background:#f0f6f6}.workflow-progress__step button:focus-visible{position:relative;z-index:1;outline:2px solid var(--accent-teal);outline-offset:-2px}.workflow-progress__step button:disabled{color:#9aa6ad;cursor:not-allowed}.workflow-progress__marker{display:grid;flex:0 0 auto;place-items:center;width:22px;height:22px;border:1px solid #9caab2;border-radius:50%;color:#60717c;font-size:var(--text-xs);font-weight:700}.workflow-progress__copy{display:grid;min-width:0;gap:1px;font-size:var(--text-sm);font-weight:650}.workflow-progress__copy small{overflow:hidden;color:#60717d;font-size:var(--text-2xs);font-weight:400;text-overflow:ellipsis;white-space:nowrap}.workflow-progress__step.is-complete .workflow-progress__marker{border-color:var(--accent-teal);background:#e4f1f0;color:var(--accent-teal)}.workflow-progress__step.is-next .workflow-progress__marker,.workflow-progress__step.is-current .workflow-progress__marker{border-color:var(--accent-teal);background:var(--accent-teal);color:var(--ink-on-accent)}.workflow-progress__step.is-current button{background:#eaf5f4}.inspector-series-targets{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.inspector-series-targets label{display:inline-flex;align-items:center;gap:3px;max-width:100%;padding:3px 6px;border:1px solid #cbd5db;border-radius:var(--radius-pill);background:var(--surface);color:#44545e;font-size:var(--text-xs);cursor:pointer}.inspector-series-targets label:has(input:checked){border-color:var(--accent-teal);background:var(--accent-teal-surface);color:var(--accent-teal-strong)}.inspector-series-targets input{margin:0;accent-color:var(--accent-teal)}.grid-scroll{overflow-x:auto}.graph-svg{background:var(--graph-bg, #fff);border-style:var(--graph-border-style, solid);border-color:var(--graph-border, transparent);border-width:var(--graph-border-width, 1px);border-radius:var(--radius-sm);max-width:100%;height:auto;font-family:var(--graph-font-family, Arial, "Helvetica Neue", sans-serif)}.graph-svg .axis-title,.estimation-graph-canvas .axis-title{font-weight:var(--axis-title-font-weight, 600);fill:var(--axis-title-fill, #222);font-size:var(--axis-title-font-size, 13px)}.graph-svg .axis-caption{font-size:var(--text-xs);fill:#222;font-weight:600}.graph-svg .axis-donut-total{font-size:var(--text-lg);fill:#222;font-weight:600}.graph-svg .tick-label,.graph-svg .legend-label{fill:#444}.graph-svg .legend-label{fill:var(--legend-fill, #444)}.graph-svg .tick-label{font-size:var(--tick-font-size, 11px);fill:var(--tick-label-fill, #444);font-weight:var(--tick-font-weight, normal)}.estimation-graph-canvas .tick-label{fill:var(--tick-label-fill, #444)}.graph-svg .gridline-minor{stroke:var(--gridline-minor-stroke, #f0f0f0);stroke-width:var(--gridline-minor-width, 1px);stroke-dasharray:var(--gridline-minor-dash, none)}.graph-svg .axis-stroke,.estimation-graph-canvas .axis-stroke{stroke:var(--axis-stroke, #000)}.graph-svg .data-stroke{stroke:var(--data-stroke, #333)}.graph-svg .gridline-major{stroke:var(--gridline-stroke, #e3e3e3);stroke-width:var(--gridline-width, 1px);stroke-dasharray:var(--gridline-dash, none)}.graph-svg .graph-marker{stroke:var(--marker-stroke, #1a1a1a);stroke-width:var(--marker-stroke-width, .75);fill-opacity:var(--marker-fill-opacity, .85)}.graph-svg .graph-title{font-size:var(--graph-title-font-size, 15px);fill:var(--graph-title-fill, #000);font-weight:var(--graph-title-font-weight, 600)}.graph-stale-note{margin:0 0 8px;padding:6px 10px;font-size:var(--text-xs);color:var(--warning-strong);background:var(--warning-surface);border:1px solid var(--warning-border);border-radius:var(--radius-sm);max-width:560px}.sheet-error-detail{margin-top:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-xs);color:var(--warning-strong);background:var(--warning-surface);border:1px solid var(--warning-border);border-radius:var(--radius-sm);padding:8px 10px;max-width:640px;overflow-wrap:anywhere}.app-error{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--surface-sunken);padding:24px}.app-error-card{width:100%;min-width:0;max-width:560px;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);padding:28px 32px;box-shadow:var(--shadow-lg)}.app-error-card h1{margin:0 0 8px;font-size:var(--text-2xl)}.app-error-card p{margin:8px 0;color:var(--ink)}.app-error-actions{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 4px}.app-error-actions button{max-width:100%;padding:4px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);cursor:pointer;overflow-wrap:anywhere;white-space:normal}.app-error .sheet-error-detail{white-space:pre-wrap}.app-error-actions button.primary{background:var(--accent);border-color:var(--accent);color:var(--ink-on-accent)}@media (max-width: 480px){.app-error{padding:12px}.app-error-card{padding:20px}}.dialog-subhead{margin:18px 0 4px;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted)}.dialog-actions-left{justify-content:flex-start}.feedback-kind{display:flex;gap:6px;margin:10px 0}.feedback-kind button{padding:4px 12px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);cursor:pointer}.feedback-kind button.feedback-kind-active{background:var(--accent);border-color:var(--accent);color:var(--ink-on-accent)}.feedback-field input[type=text],.feedback-field input[type=email],.feedback-field textarea{display:block;box-sizing:border-box;width:100%;margin-top:0;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;resize:vertical}.dialog .feedback-field{flex-direction:column;align-items:stretch;gap:4px}.feedback-website{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.feedback-preview{margin:10px 0 4px}.feedback-preview summary{cursor:pointer;font-size:var(--text-sm);color:var(--accent)}.feedback-preview pre{max-height:180px;overflow:auto;font-size:var(--text-2xs);background:var(--surface-sunken);border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:8px}.graph-empty{color:var(--ink-muted);font-style:italic;display:flex;align-items:center;justify-content:center;min-height:240px;text-align:center;padding:24px}.copy-status{align-self:center;color:#2c7a3f;font-size:var(--text-xs)}.export-notice{color:var(--warning);font-size:var(--text-xs)}.methods-panel{margin-top:20px;padding:12px 16px;border:1px solid var(--border-soft);border-radius:var(--radius-sm);background:var(--surface-raised)}.methods-panel h3{margin:0 0 6px;font-size:var(--text-sm)}.methods-text{margin:0 0 10px;line-height:1.5;color:var(--ink)}.layout-picker{display:flex;flex-wrap:wrap;gap:8px 16px;border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:8px 12px;margin:0 0 16px}.layout-picker legend{font-size:var(--text-xs);color:var(--ink-muted);padding:0 4px}.layout-page-setup{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:8px;font-size:var(--text-xs);color:var(--ink-muted)}.layout-page-setup select,.layout-page-setup input[type=color]{vertical-align:middle}.layout-page-scroll{overflow:auto;padding:16px;background:var(--surface-sunken);border-radius:var(--radius-sm);display:flex;justify-content:safe center}.layout-page{position:relative;flex:0 0 auto;box-shadow:var(--shadow-xs);overflow:hidden}.layout-item{position:absolute;box-sizing:border-box;border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:8px;background:var(--surface-raised);overflow:hidden;cursor:grab;touch-action:none}.layout-item:active{cursor:grabbing}.layout-item.selected{outline:2px solid var(--accent-strong);outline-offset:-1px}.layout-item:focus-visible{outline:2px dashed var(--accent-strong);outline-offset:-1px}.layout-item.locked,.layout-text[data-locked=true],.layout-image[data-locked=true]{box-shadow:inset 0 0 0 2px #5b6b7bb8}.layout-item[data-grouped=true],.layout-text[data-grouped=true],.layout-image[data-grouped=true]{border-color:#7c3aed}.layout-item[data-grouped=true]:before{content:"Group";position:absolute;left:6px;top:6px;z-index:2;border-radius:var(--radius-sm);background:#f5f3fff0;color:#6d28d9;font-size:var(--text-3xs);font-weight:650;line-height:1;padding:3px 4px;pointer-events:none}.layout-text[data-grouped=true] .layout-text-bar:after,.layout-image[data-grouped=true] .layout-text-bar:after{content:"Group";color:#6d28d9;font-size:var(--text-3xs);font-weight:650;line-height:1}.layout-item.locked:after,.layout-text[data-locked=true] .layout-text-bar:before,.layout-image[data-locked=true] .layout-text-bar:before{content:"Locked";color:var(--ink-muted);font-size:var(--text-3xs);font-weight:650;line-height:1}.layout-item.locked:after{position:absolute;right:6px;top:6px;z-index:2;border-radius:var(--radius-sm);background:#ffffffeb;padding:3px 4px;pointer-events:none}.layout-arrange{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-bottom:8px}.layout-arrange-status{font-size:var(--text-xs);color:var(--ink-muted);margin-right:8px}.layout-arrange button{display:inline-grid;width:32px;height:30px;padding:4px;place-items:center}.layout-arrange .layout-lock-button,.layout-arrange .layout-text-action{width:auto;padding:3px 8px;font-size:var(--text-xs)}.layout-arrange button svg{width:18px;height:18px}.layout-objects-row{margin-bottom:8px}.methods-panel button,.layout-objects-row button,.layout-arrange button{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--accent);cursor:pointer}.methods-panel button,.layout-objects-row button{font-size:var(--text-xs);padding:3px 10px}.methods-panel button:hover,.layout-objects-row button:hover,.layout-arrange button:hover{background:#eef4f9}.layout-text{position:absolute;box-sizing:border-box;border:1px dashed var(--border-strong);background:#fff9;display:flex;flex-direction:column}.layout-image{position:absolute;box-sizing:border-box;display:flex;flex-direction:column}.layout-image .layout-text-bar{position:absolute;top:0;left:0;right:0}.layout-image-body{display:block;object-fit:fill;-webkit-user-select:none;user-select:none}.layout-text-bar{display:flex;align-items:center;height:12px;background:transparent}.layout-text:hover .layout-text-bar,.layout-text[data-selected=true] .layout-text-bar,.layout-text[data-editing=true] .layout-text-bar{background:#e8eaed}.layout-text-toolbar{position:absolute;top:calc(100% + 3px);left:0;display:flex;align-items:center;gap:3px;padding:3px 4px;background:#e8eaed;border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);white-space:nowrap;z-index:6}.layout-text[data-editing=true]{border-style:solid;border-color:var(--accent);background:#ffffffeb}.layout-text[data-locked=true] .layout-text-bar,.layout-image[data-locked=true] .layout-text-bar{background:var(--border-subtle)}.layout-text[data-locked=true] .layout-text-handle,.layout-image[data-locked=true] .layout-text-handle{cursor:default}.layout-text-handle{flex:1 1 auto;align-self:stretch;cursor:grab;touch-action:none}.layout-text-handle:active{cursor:grabbing}.layout-text-size{width:40px;height:18px;font-size:var(--text-3xs)}.layout-text-color{width:22px;height:18px;padding:0;border:none;background:none}.layout-text-format,.layout-text-align{height:18px;font-size:var(--text-3xs);line-height:1}.layout-text-format{min-width:18px;border:1px solid var(--border);background:var(--surface);font-weight:700;padding:0}.layout-text-format[aria-pressed=true]{background:var(--surface-accent);border-color:var(--accent)}.layout-text-format--italic{font-style:italic}.layout-text-align{width:58px;padding:0}.layout-text-delete{border:none;background:transparent;cursor:pointer;font-size:var(--text-3xs);line-height:1;padding:0 4px}.layout-text-body{flex:1 1 auto;border:none;resize:none;background:transparent;padding:2px 4px;font-family:inherit}.layout-text .layout-resize-handle{margin:0}.layout-resize-handle{position:absolute;right:0;bottom:0;width:16px;height:16px;cursor:nwse-resize;background:linear-gradient(135deg,transparent 50%,#9aa0a6 50%);border-bottom-right-radius:4px;touch-action:none}.graph-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px;overflow:clip;overflow-clip-margin:4px}.graph-toolbar div.param-field{flex:1 1 100%;flex-wrap:wrap;justify-content:flex-start;gap:6px 12px}.graph-toolbar .toolbar-group{display:inline-flex;align-items:center;gap:6px}.graph-toolbar .toolbar-group--export{position:relative}.graph-toolbar .toolbar-group--export:before{content:"";position:absolute;left:-7px;top:2px;bottom:2px;width:1px;background:var(--border)}.graph-toolbar .toolbar-group>button,.graph-toolbar .export-split>button{font-family:inherit;font-size:inherit;color:#1a3a52;background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px 10px;cursor:pointer}.graph-toolbar .toolbar-group>button:hover:not(:disabled),.graph-toolbar .export-split>button:hover:not(:disabled){background-color:#eef4f9;border-color:#94a8bb}.graph-with-inspector{display:flex;gap:16px;align-items:flex-start}.graph-with-inspector>div:first-child{flex:1 1 auto;min-width:0;max-width:740px}.graph-with-inspector>div:first-child .graph-svg{width:100%}.graph-inspector{flex:0 0 auto;width:212px;position:sticky;top:12px;max-height:calc(100vh - 84px);overflow-y:auto;border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:8px 10px;background:var(--surface-raised)}@media (max-width: 700px){.graph-with-inspector{flex-direction:column}.graph-with-inspector>div:first-child{max-width:none;width:100%}.graph-inspector{width:100%;position:static;max-height:none}.toolbar-group{flex-wrap:wrap}.project-title{min-width:0;max-width:100%}}.graph-inspector .inspector-title{margin:0 0 8px;font-size:var(--text-sm);color:var(--ink)}.graph-inspector .inspector-subtitle{margin:12px 0 6px;padding-top:8px;border-top:1px solid #e0e6ea;color:#2d3b4a;font-size:var(--text-2xs)}.graph-inspector .inspector-section{margin:16px 0 6px;padding:4px 8px;background:#e9eef3;border-radius:var(--radius-sm);font-weight:600;color:#2d3b4a}.graph-inspector input[type=text]{width:88px}.graph-inspector .param-field{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;font-size:var(--text-xs)}.graph-inspector .param-field:has(input[type=checkbox]){justify-content:flex-start;gap:6px}.graph-inspector .param-field:not(:has(input[type=checkbox])){flex-direction:column;align-items:flex-start;gap:2px}.graph-inspector .inspector-style-save{gap:6px;margin-top:10px}.graph-inspector .inspector-style-save label{display:grid;gap:4px;width:100%}.graph-inspector .inspector-style-save input,.graph-inspector .inspector-style-save button{box-sizing:border-box;width:100%}.graph-inspector .inspector-text-row{gap:4px}.graph-inspector .inspector-text-row input[type=text]{flex:1 1 auto;width:auto}.graph-inspector .inspector-text-row button:not(.inspector-add-text){flex:0 0 auto;border:none;background:none;cursor:pointer;color:var(--danger);font-size:var(--text-sm)}.graph-inspector .inspector-add-text{margin-top:2px;font-size:var(--text-2xs);cursor:pointer;border:none;background:none;color:var(--accent)}.graph-inspector .inspector-refline-row{flex-wrap:wrap;gap:4px}.graph-inspector .inspector-refline-row input[type=number]{width:52px}.graph-inspector .inspector-refline-row input[type=text]{flex:1 1 70px;width:auto;min-width:60px}.graph-inspector .inspector-refline-row button:not(.inspector-add-text){flex:0 0 auto;border:none;background:none;cursor:pointer;color:var(--danger);font-size:var(--text-sm)}.graph-inspector .inspector-collapsible{margin:0}.graph-inspector .inspector-collapsible-summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px}.graph-inspector .inspector-collapsible-summary::-webkit-details-marker{display:none}.graph-inspector .inspector-collapsible-summary:before{content:"";width:9px;height:9px;flex:0 0 auto;background:no-repeat center / 9px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%235a6b7a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3.5 10.5 8 6 12.5'/%3E%3C/svg%3E");transition:transform .12s}.graph-inspector .inspector-collapsible[open]>.inspector-collapsible-summary:before{transform:rotate(90deg)}.axis-title-input{width:90px}.graph-toolbar .param-field .axis-title-input{width:168px}.axis-range-input{width:60px}.context-menu{position:fixed;z-index:51;box-sizing:border-box;margin:0;padding:4px 0;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);min-width:min(168px,calc(100vw - 8px));max-width:calc(100vw - 8px);max-height:calc(100dvh - 8px);overflow-y:auto}.context-menu li{margin:0}.context-menu button{display:block;width:100%;padding:6px 16px;border:none;background:none;text-align:left;font:inherit;color:var(--ink-strong);cursor:pointer;white-space:normal;overflow-wrap:anywhere}.context-menu button:hover:not(:disabled),.context-menu button:focus-visible{background:var(--accent);color:var(--ink-on-accent);outline:none}.context-menu button:disabled{color:#60717d;opacity:1;cursor:default}.context-menu__sep{height:1px;margin:4px 0;background:var(--border-soft)}.empty-state-recent{margin-top:26px}.empty-state-recent h3{font-size:var(--text-sm);font-weight:600;color:var(--ink-muted);margin:0 0 6px}.empty-state-recent ul{list-style:none;margin:0;padding:0}.empty-state-recent li{margin:3px 0}.layout-marquee{position:absolute;border:1px dashed var(--accent);background:#2d5b8a14;pointer-events:none;z-index:30}.layout-text[data-selected=true],.layout-image[data-selected=true],.layout-image-object[data-selected=true]{outline:2px solid var(--accent-strong);outline-offset:1px}.sheet-row.multi-selected{background:var(--surface-accent);border-radius:var(--radius-sm)}.assistant-toggle{position:fixed;right:16px;bottom:16px;width:44px;height:44px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--accent);color:var(--ink-on-accent);font-size:var(--text-2xl);cursor:pointer;box-shadow:var(--shadow-sm);z-index:40}.assistant-toggle:hover{background:#24496f}body:has(.dialog-backdrop) .assistant-toggle,body:has(.account-modal-backdrop) .assistant-toggle,body:has(.admin-backdrop) .assistant-toggle,body:has(.consent-banner) .assistant-toggle,body:has(.coach-tour-overlay) .assistant-toggle,body:has(.column-format-popover) .assistant-toggle,body:has(.table-setup-popover) .assistant-toggle,body:has(.table-tools-panel) .assistant-toggle,body:has(.workspace-menu__backdrop) .assistant-toggle,body:has(.workspace-switcher__backdrop) .assistant-toggle,body:has(.share-dialog__backdrop) .assistant-toggle{display:none}body:has(.account-banner--readonly) .assistant-toggle{bottom:60px}@media (max-width: 480px){body:has(.account-banner--readonly) .assistant-toggle{bottom:85px}}@media (max-width: 480px) and (max-height: 400px){.assistant-toggle{display:none}}@media (min-width: 701px){.app-shell--graph-inspector .assistant-toggle{right:max(248px,calc(100vw - 988px))}}.assistant-panel{grid-area:chat;min-height:0;display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--border);overflow:hidden}.assistant-backdrop{display:none}.app-shell--assistant-open{grid-template-columns:220px 1fr 340px;grid-template-areas:"header header header" "nav main chat"}.app-shell--recovering.app-shell--assistant-open{grid-template-areas:"header header header" "recovery recovery recovery" "nav main chat";grid-template-rows:min-content auto 1fr}@media (max-width: 899px){.app-shell--assistant-open{grid-template-columns:220px 1fr;grid-template-areas:"header header" "nav main"}.app-shell--recovering.app-shell--assistant-open{grid-template-areas:"header header" "recovery recovery" "nav main";grid-template-rows:min-content auto 1fr}.assistant-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim-drawer);border:0;margin:0;padding:0;cursor:pointer;z-index:39}.assistant-panel{position:fixed;top:0;right:0;width:min(400px,70vw);height:100vh;height:100dvh;box-shadow:-2px 0 16px #0004;z-index:40}}.assistant-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--accent);color:var(--ink-on-accent)}.assistant-title{font-weight:600}.assistant-header-actions{display:flex;gap:8px}.assistant-linkbtn{background:transparent;border:1px solid #ffffff55;color:var(--ink-on-accent);border-radius:var(--radius-sm);padding:2px 8px;cursor:pointer;font-size:var(--text-xs)}.assistant-linkbtn:hover{background:#fff2}.assistant-body{flex:1;min-height:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px}.assistant-materialization{flex:0 0 auto;margin:0 12px 10px;padding:10px 12px;border:1px solid var(--warning-border);border-left:3px solid var(--warning-accent);border-radius:var(--radius-md);background:var(--warning-surface);color:var(--warning-strong)}.assistant-materialization-title{display:block;color:var(--warning-strong);font-size:var(--text-sm)}.assistant-materialization-text{margin:4px 0 8px;color:var(--warning-strong);font-size:var(--text-sm);overflow-wrap:anywhere}.assistant-materialization-actions{display:flex;gap:8px}.assistant-materialization-actions button:not(.assistant-primary){border:1px solid var(--warning-accent);background:var(--surface);color:var(--warning-strong);border-radius:var(--radius-sm);padding:6px 12px;cursor:pointer}.assistant-connect p,.assistant-empty p{color:var(--ink-muted);font-size:var(--text-sm)}.assistant-key{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:8px}.assistant-primary{background:var(--accent);color:var(--ink-on-accent);border:none;border-radius:var(--radius-sm);padding:6px 12px;cursor:pointer}.assistant-primary:disabled{background:#a9bccf;cursor:default}.assistant-connect .assistant-msg-system{margin:8px 0 0;padding:8px 10px;border:1px solid var(--danger-border);border-radius:var(--radius-sm);background:var(--danger-surface)}.assistant-connect .assistant-msg-system:focus{outline:2px solid var(--accent);outline-offset:2px}@media (max-width: 700px){.app-shell,.app-shell--assistant-open{grid-template-areas:"header" "nav" "main";grid-template-columns:minmax(0,1fr);grid-template-rows:min-content auto minmax(0,1fr);height:auto;min-height:100vh}.app-shell--recovering,.app-shell--recovering.app-shell--assistant-open{grid-template-areas:"header" "recovery" "nav" "main";grid-template-columns:minmax(0,1fr);grid-template-rows:min-content auto auto minmax(0,1fr)}.navigator{border-right:0;border-bottom:1px solid var(--border)}.sheet-area{padding:16px 16px 76px}.workflow-progress ol{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-progress__step:nth-child(2){border-right:0}.workflow-progress__step:nth-child(-n+2){border-bottom:1px solid #e2e7ea}.results-table{display:block;max-width:100%;overflow-x:auto}.assistant-panel{width:100vw;width:100dvw}}@media (max-width: 700px){.app-header{padding-top:4px;padding-bottom:4px;column-gap:10px;row-gap:4px}.app-brand{line-height:1.1;padding-right:0}.app-brand h1{font-size:var(--text-base)}.api-status{font-size:var(--text-3xs)}.toolbar{gap:4px}.navigator{padding-top:3px;padding-bottom:3px}.navigator .section-label:not(.sheet-link){padding-top:3px;padding-bottom:3px}.navigator .section-empty{padding-bottom:3px;line-height:1.3;font-size:var(--text-2xs)}}@media (max-width: 899px){.results-table{display:block;max-width:100%;overflow-x:auto}}.assistant-suggestions{display:flex;flex-direction:column;gap:6px;margin-top:8px}.assistant-suggestions button{text-align:left;border:1px solid var(--border);background:#f4f7fa;border-radius:var(--radius-md);padding:6px 10px;cursor:pointer;font-size:var(--text-sm);overflow-wrap:anywhere}.assistant-suggestions button:hover{border-color:#94a8bb}.assistant-msg{display:flex;flex-direction:column;gap:4px}.assistant-text{overflow-wrap:anywhere;white-space:pre-wrap}.assistant-md{white-space:normal}.assistant-md p{margin:0 0 6px}.assistant-md p:last-child{margin-bottom:0}.assistant-md ul{margin:4px 0;padding-left:18px}.assistant-md code{background:#eceff2;border-radius:var(--radius-sm);padding:0 3px;font-size:var(--text-xs)}.assistant-msg-user .assistant-text{align-self:flex-end;background:var(--surface-accent);border-radius:var(--radius-xl) var(--radius-xl) 2px var(--radius-xl);padding:6px 10px;max-width:85%}.assistant-msg-assistant .assistant-text{background:#f4f7fa;border-radius:var(--radius-xl) var(--radius-xl) var(--radius-xl) 2px;padding:6px 10px;max-width:90%}.assistant-msg-system .assistant-text{color:var(--danger);font-size:var(--text-xs)}.assistant-step{font-size:var(--text-xs)}.assistant-step-error{color:var(--danger)}.assistant-sheet-link{background:#eef6ee;border:1px solid #b7d7b7;border-radius:var(--radius-md);padding:3px 8px;cursor:pointer;color:#1a6b1a;font-size:var(--text-xs);overflow-wrap:anywhere}.assistant-sheet-link:hover{border-color:#6bbf6b}.assistant-working{color:var(--ink-muted);font-size:var(--text-xs);font-style:italic}.assistant-context{padding:4px 12px;border-top:1px solid #eef0f2;color:#667;font-size:var(--text-2xs)}.assistant-context-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.assistant-context-row span{min-width:0;overflow-wrap:anywhere}.assistant-linkbtn-sm{background:transparent;border:1px solid var(--border);color:var(--accent);border-radius:var(--radius-sm);padding:0 6px;cursor:pointer;font-size:var(--text-2xs)}.assistant-scope-edit{display:flex;flex-direction:column;gap:2px;margin-top:4px;max-height:120px;overflow-y:auto}.assistant-scope-edit label{display:flex;min-width:0;align-items:center;gap:4px;color:#334;overflow-wrap:anywhere}.assistant-connect strong,.assistant-step{overflow-wrap:anywhere}.assistant-composer{display:flex;gap:6px;padding:10px 12px;border-top:1px solid var(--border)}.assistant-composer textarea{flex:1;resize:none;min-height:38px;max-height:120px;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-sm)}.equation-picker{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto;border:1px solid #dfe6ec;border-radius:var(--radius-sm);padding:6px;background:var(--surface-raised)}.equation-picker__family-label{font-size:var(--text-2xs);font-weight:600;color:#55606a;margin-bottom:3px}.inspector-hub{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:4px 2px 8px}.inspector-hub-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:66px;padding:10px 6px;background:var(--surface);border:1px solid #d9e0e5;border-radius:var(--radius-lg);cursor:pointer;color:#2b3640;font:inherit;transition:border-color .12s ease,background .12s ease,box-shadow .12s ease,transform .06s ease}.inspector-hub-tile:hover{border-color:var(--accent-teal);background:#f2f9f8;box-shadow:0 1px 4px #0f6d6b1f}.inspector-hub-tile:active{transform:translateY(.5px)}.inspector-hub-tile:focus-visible{outline:2px solid var(--accent-teal);outline-offset:1px}.inspector-hub-tile__icon{display:flex;align-items:center;justify-content:center;height:26px}.inspector-hub-tile__label{font-size:var(--text-2xs);font-weight:500;text-align:center;line-height:1.15}.inspector-detail-header{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}.inspector-back{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;font-size:var(--text-xs);font-weight:500;color:var(--accent-teal);background:#eef5f4;border:1px solid var(--accent-teal-border);border-radius:var(--radius-md);cursor:pointer}.inspector-back:hover{background:#e2efed;border-color:var(--accent-teal)}.inspector-back:focus-visible{outline:2px solid var(--accent-teal);outline-offset:1px}.inspector-section-detail{display:none}.inspector-section-detail.is-open{display:block}.power-result{margin-top:.75rem;padding:.6rem .75rem;background:var(--surface-sunken);border-left:3px solid var(--accent);border-radius:var(--radius-sm)}.power-result p{margin:0}.dialog-error{margin-top:.5rem;color:var(--danger)}.residual-plot-pair{display:inline-flex;flex-wrap:wrap;gap:.5rem}.export-split{display:inline-flex;align-items:center}.export-split>button{font-family:inherit;font-size:var(--text-xs);color:#1a3a52;background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px 10px;cursor:pointer}.export-split>button:hover:not(:disabled){background-color:#eef4f9;border-color:#94a8bb}.export-split>button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.export-split>button.export-split-caret{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px;padding:3px 6px;font-size:var(--text-3xs);line-height:1.5}.export-popover{z-index:51;box-sizing:border-box;min-width:min(168px,calc(100vw - 8px));max-width:calc(100vw - 8px);max-height:calc(100vh - 8px);max-height:calc(100dvh - 8px);overflow-y:auto;padding:4px 0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.export-popover button{display:block;width:100%;padding:6px 16px;border:none;border-radius:0;background:none;text-align:left;font:inherit;font-size:var(--text-sm);color:var(--ink-strong);cursor:pointer;white-space:normal;overflow-wrap:anywhere}.export-popover button:hover:not(:disabled),.export-popover button:focus-visible{background:var(--accent);color:var(--ink-on-accent);outline:none}.export-popover label{display:flex;align-items:center;gap:6px;padding:4px 16px;font-size:var(--text-xs);color:var(--ink-strong);flex-wrap:wrap;overflow-wrap:anywhere}.table-setup-popover{overscroll-behavior:contain}
