.sh-page{display: flex;flex-direction: column;gap: 8px;min-height: calc(100dvh - 120px)}.sh-head,.sh-toolbar{display: flex;align-items: center;gap: 6px;flex-wrap: wrap}.sh-title{font-size: 1.25rem;font-weight: 700;border: 1px solid transparent;background: transparent;padding: 4px 8px;border-radius: 8px;min-width: 0;max-width: 100%;width: 22ch;color: inherit}.sh-title:hover,.sh-title:focus{border-color: var(--border,#d8d8d8);background: var(--surface,#fff)}.sh-title-ro{margin: 0;font-size: 1.25rem}.sh-status{white-space: nowrap}.sh-status.bad{color: var(--danger,#c0392b);font-weight: 600}.sh-redo .ico svg{transform: scaleX(-1)}.sh-formula{display: flex;align-items: center;gap: 6px}.sh-namebox{min-width: 3.5rem;text-align: center;padding: 6px 8px;border: 1px solid var(--border,#d8d8d8);border-radius: 8px;font-weight: 600;background: var(--surface-2,#f6f6f6)}.sh-fx{font-style: italic;color: var(--muted,#777)}.sh-fbar{flex: 1;min-width: 0;padding: 6px 8px;border: 1px solid var(--border,#d8d8d8);border-radius: 8px;background: var(--surface,#fff);color: inherit}.sh-grid{position: relative;flex: 1;min-height: 320px;border: 1px solid var(--border,#d8d8d8);border-radius: 8px;overflow: hidden;background: var(--surface,#fff);font-size: 0.9rem}.sh-corner,.sh-colhead,.sh-rowhead,.sh-scroll{position: absolute}.sh-corner{top: 0;inset-inline-start: 0;width: 46px;height: 30px;background: var(--surface-2,#f1f1f1);border-bottom: 1px solid var(--border,#d8d8d8);border-inline-end: 1px solid var(--border,#d8d8d8);z-index: 3}.sh-colhead{top: 0;inset-inline-start: 46px;inset-inline-end: 0;height: 30px;overflow: hidden;background: var(--surface-2,#f1f1f1);border-bottom: 1px solid var(--border,#d8d8d8);z-index: 2}.sh-rowhead{top: 30px;bottom: 0;inset-inline-start: 0;width: 46px;overflow: hidden;background: var(--surface-2,#f1f1f1);border-inline-end: 1px solid var(--border,#d8d8d8);z-index: 2}.sh-head-in{position: relative}.sh-scroll{top: 30px;inset-inline-start: 46px;inset-inline-end: 0;bottom: 0;overflow: auto;outline: none;-webkit-overflow-scrolling: touch;touch-action: pan-x pan-y}.sh-grid:focus-within .sh-active{border-width: 3px}.sh-sizer{position: relative}.sh-layer{position: absolute;inset: 0}.sh-hc,.sh-hr,.sh-cell{position: absolute;box-sizing: border-box;overflow: hidden;white-space: nowrap;text-overflow: ellipsis}.sh-hc{top: 0;height: 30px;line-height: 30px;text-align: center;font-weight: 600;color: var(--muted,#666);border-inline-end: 1px solid var(--border,#d8d8d8);user-select: none;cursor: pointer}.sh-hr{inset-inline-start: 0;width: 46px;height: 30px;line-height: 30px;text-align: center;font-weight: 600;color: var(--muted,#666);border-bottom: 1px solid var(--border,#d8d8d8);user-select: none;cursor: pointer}.sh-hc.on,.sh-hr.on{background: var(--accent-soft,#dbe8ff);color: var(--accent,#1d5fd0)}.sh-grip{position: absolute;top: 0;bottom: 0;inset-inline-end: -4px;width: 9px;cursor: col-resize;z-index: 1}.sh-cell{padding: 0 6px;line-height: 30px;border-inline-end: 1px solid var(--border-soft,#ececec);border-bottom: 1px solid var(--border-soft,#ececec);user-select: none}.sh-cell.num{text-align: end;direction: ltr;unicode-bidi: plaintext}.sh-cell.ctr{text-align: center}.sh-cell.bad{color: var(--danger,#c0392b);text-align: center;font-size: 0.8rem}.sh-active{position: absolute;box-sizing: border-box;border: 2px solid var(--accent,#1d5fd0);pointer-events: none;z-index: 1}.sh-range{position: absolute;box-sizing: border-box;background: color-mix(in srgb,var(--accent,#2d7ff9) 14%,transparent);border: 1px solid var(--accent,#2d7ff9);pointer-events: none}.sh-input{position: absolute;box-sizing: border-box;z-index: 2;margin: 0;padding: 0 6px;border: 2px solid var(--accent,#1d5fd0);border-radius: 0;background: var(--surface,#fff);color: inherit;font: inherit;min-width: 120px;box-shadow: 0 2px 8px rgba(0,0,0,0.18)}.sh-input.ghost{opacity: 0;pointer-events: none;border: 0;box-shadow: none;min-width: 0;caret-color: transparent}.sh-range[hidden]{display: none}.sh-tabs{display: flex;gap: 4px;overflow-x: auto;padding-bottom: 2px}.sh-tab{border: 1px solid var(--border,#d8d8d8);background: var(--surface-2,#f4f4f4);color: inherit;border-radius: 8px;padding: 6px 14px;cursor: pointer;white-space: nowrap}.sh-tab.on{background: var(--surface,#fff);border-color: var(--accent,#1d5fd0);font-weight: 700}.sh-tab-add{padding: 6px 10px}.sh-blocks-menu{width: 340px;min-width: 280px;max-width: 92vw;padding: 6px}.sh-block-row{display: flex;align-items: center;gap: 4px;padding: 6px;border-bottom: 1px solid var(--border-soft,#ececec);white-space: normal}.sh-block-row>.grow{flex: 1 1 auto;min-width: 0}.sh-blocks-menu .sh-block-row>button{flex: none;width: auto;padding: 6px 8px}.sh-refresh-all{width: 100%;justify-content: flex-start}.sh-block-row small{display: block}.sh-block-empty{padding: 8px;margin: 0}.sh-measures{display: grid;grid-template-columns: repeat(auto-fill,minmax(180px,1fr));gap: 4px 12px}.sh-share-row{display: flex;align-items: center;gap: 8px;padding: 6px 0;border-bottom: 1px solid var(--border-soft,#ececec)}.sh-insert .field,.sh-share .field{margin-bottom: 10px}.sh-insert select,.sh-insert input[type=text],.sh-share select{width: 100%}@media (max-width: 640px){.sh-title{width: 100%}.sh-grid{min-height: 56dvh}}