.app-shell{width:100%;max-width:100vw;min-width:0;height:100dvh;overflow:hidden;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;background:var(--bg)}
.topbar{position:relative;width:100%;min-width:0;min-height:calc(54px + var(--safe-t));padding:var(--safe-t) var(--safe-r) 5px var(--safe-l);display:grid;grid-template-columns:minmax(48px,1fr) auto minmax(48px,1fr);align-items:center;gap:8px;background:var(--chrome);border-bottom:1px solid var(--line);z-index:50}.frame-side{display:flex;align-items:center;min-width:0}.frame-left{justify-content:flex-start}.frame-right{justify-content:flex-end}.frame-btn{width:var(--control);height:var(--control);display:grid;place-items:center;border:1px solid transparent;border-radius:12px;background:transparent;cursor:pointer}.frame-btn:hover,.frame-btn:focus-visible{background:color-mix(in srgb,var(--text) 8%,transparent);border-color:var(--line);outline:none}.frame-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round}.document-title{justify-self:center;display:flex;align-items:center;gap:8px;min-width:0;max-width:min(60vw,620px)}.spreadsheets-icon{width:30px;height:30px;border-radius:8px;flex:none}.title-input{width:min(360px,44vw);min-width:100px;height:38px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--chrome) 94%,transparent);padding:0 12px;text-align:center;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.title-input:focus{outline:2px solid color-mix(in srgb,var(--accent) 35%,transparent);border-color:var(--accent);text-align:left}.dirty-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);opacity:0;flex:none}.dirty-dot.visible{opacity:1}
.content-viewport{position:relative;min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;background:var(--bg);padding:var(--content-y) var(--content-x);scrollbar-gutter:auto}.bottom-shell{min-width:0;min-height:calc(42px + var(--safe-b));display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:4px var(--safe-r) var(--safe-b) var(--safe-l);background:var(--chrome);border-top:1px solid var(--line);z-index:25}.sheet-tabs{min-width:0;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}.sheet-tabs::-webkit-scrollbar{display:none}.sheet-tab{height:32px;min-width:72px;max-width:180px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 0 auto}.sheet-tab.active{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 45%,var(--line));color:var(--accent);font-weight:700}.sheet-add,.sheet-delete{min-width:34px}.status-area{display:flex;gap:10px;align-items:center;white-space:nowrap;font-size:11px;color:var(--muted)}
.backdrop{position:fixed;inset:0;background:var(--overlay);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:100}.drawer{position:fixed;z-index:110;top:calc(var(--safe-t) + 60px);left:var(--safe-l);width:min(340px,calc(100vw - var(--safe-l) - var(--safe-r)));max-height:calc(100dvh - var(--safe-t) - var(--safe-b) - 72px);overflow:auto;background:var(--chrome);border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 70px rgba(10,18,30,.25);padding:12px}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.drawer-title{display:flex;align-items:center;gap:9px;font-weight:750}.drawer-icon{width:30px;height:30px;border-radius:8px}.close-btn{width:40px;height:40px;display:grid;place-items:center;border:1px solid transparent;border-radius:11px;background:transparent}.drawer-section{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.drawer-section-label{padding:2px 5px 7px;color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.menu-list{display:grid;gap:4px}.menu-item{width:100%;min-height:46px;border:1px solid transparent;border-radius:11px;background:transparent;padding:0 10px;display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:10px;text-align:left}.menu-item:hover,.menu-item:focus-visible{background:var(--accent-soft);outline:none}.menu-item:disabled{opacity:.45;cursor:default;color:var(--muted)}.menu-item:disabled:hover{background:transparent}.menu-item svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.hint{font-size:11px;color:var(--muted)}.appearance-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;border-radius:12px;background:var(--panel)}.appearance-choice{height:36px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--muted);font-size:12px;font-weight:700}.appearance-choice.active{background:var(--chrome);border-color:var(--line-strong);color:var(--text)}
.loading-overlay,.error-overlay{position:fixed;inset:0;z-index:140;background:var(--overlay);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:grid;place-items:center;padding:var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l)}.loading-card,.error-card{width:min(420px,100%);border:1px solid var(--line);border-radius:18px;background:var(--chrome);padding:18px;box-shadow:var(--shadow)}.error-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.error-actions button{min-height:40px;border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:0 14px}.error-actions .retry-open{background:var(--accent);color:white;border-color:var(--accent)}.toast{position:fixed;z-index:160;left:50%;bottom:calc(var(--safe-b) + 52px);transform:translateX(-50%) translateY(12px);opacity:0;pointer-events:none;max-width:min(560px,calc(100vw - var(--safe-l) - var(--safe-r)));padding:9px 13px;border-radius:12px;background:color-mix(in srgb,var(--text) 88%,transparent);color:var(--bg);font-size:12px;transition:.16s}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(pointer:fine){.topbar{min-height:calc(46px + var(--safe-t))}.drawer{top:calc(var(--safe-t) + 52px)}.appearance-choice{height:30px}.bottom-shell{min-height:calc(36px + var(--safe-b))}}
@media(max-width:720px){.document-title{max-width:56vw}.spreadsheets-icon{width:27px;height:27px}.title-input{width:42vw;padding:0 8px}.status-area #selectionStats{display:none}}
@media(max-width:470px){.spreadsheets-icon{display:none}.document-title{max-width:52vw}.title-input{width:48vw;min-width:86px}.bottom-shell{grid-template-columns:minmax(0,1fr)}.status-area{display:none}.drawer{width:calc(100vw - var(--safe-l) - var(--safe-r));padding:10px}}
.close-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ask-card h2{margin:0 0 6px}.ask-card p{margin:0 0 8px;color:var(--muted)}.ask-fields{display:grid;gap:10px;margin:12px 0 4px}.ask-field{display:grid;gap:4px}.ask-field input,.ask-field select{min-height:40px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:inherit;font:inherit}
/* Bottom bar matches the other workspaces' status bar; sheet tabs hang from the grid edge like folder tabs. */
.bottom-shell{min-height:calc(36px + var(--safe-b));grid-template-columns:minmax(0,1fr) auto auto;align-items:stretch;gap:12px;padding:0 var(--safe-r) var(--safe-b) var(--safe-l);font-size:11px}
.bottom-shell .status-area{align-self:center}.bottom-shell .inkdos-status-help{align-self:center}
.sheet-tabs{align-items:stretch;gap:2px;padding:0}
.sheet-tab{height:auto;min-height:0;margin-top:-1px;padding:0 14px;border:1px solid transparent;border-top:0;border-radius:0 0 10px 10px;background:transparent;color:var(--muted);font-size:12px}
.sheet-tab:hover:not(:disabled){background:color-mix(in srgb,var(--panel) 70%,transparent)}
.sheet-tab.active{background:var(--panel);border-color:var(--line);border-top:0;color:var(--accent);font-weight:700;box-shadow:0 2px 4px rgba(15,23,42,.06)}
.sheet-tab.sheet-add,.sheet-tab.sheet-delete{min-width:0;width:32px;padding:0;margin-top:0;border-radius:8px;align-self:center;height:26px;font-size:15px;color:inherit}
/* Save options */
.ss-save-overlay{position:fixed;inset:0;z-index:180;display:grid;place-items:center;padding:16px;background:rgba(15,23,42,.28);backdrop-filter:blur(3px)}
.ss-save-overlay[hidden]{display:none}
.ss-save-card{width:min(380px,100%);max-height:calc(100vh - 32px);overflow:auto;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--chrome);color:var(--text);box-shadow:0 24px 60px rgba(10,18,30,.28);display:flex;flex-direction:column;gap:8px}
.ss-save-card h2{margin:0 0 4px;font-size:17px}.ss-save-card p{margin:0 0 6px;font-size:13px;color:var(--muted);line-height:1.4}
.ss-save-option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:inherit;font:inherit;text-align:left;cursor:pointer}
.ss-save-option strong{font-size:14px;font-weight:600}.ss-save-option small{font-size:11.5px;color:var(--muted)}
.ss-save-option:hover:not(:disabled){border-color:var(--accent)}
.ss-save-option:disabled{opacity:.5;cursor:default}
.ss-save-option.primary{background:var(--accent);border-color:var(--accent);color:#fff}.ss-save-option.primary small{color:rgba(255,255,255,.85)}
.ss-save-option.danger{color:#b42318;border-color:color-mix(in srgb,#b42318 40%,var(--line))}
.ss-save-option.plain{align-items:center;border-color:transparent;background:transparent}
.ss-save-label{margin-top:6px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.ss-save-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ss-save-option:not(.primary):not(.danger):not(.plain){background:var(--chrome);border-color:var(--line-strong,var(--line));color:var(--text)}
.ss-save-option:not(.primary):not(.plain) strong{color:var(--text)}
.ss-save-option.danger strong{color:#b42318}
.ss-save-option:disabled{opacity:.45}
.ss-save-row{grid-template-columns:repeat(3,1fr)}
.ss-pdf-form{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;margin:2px 0 6px}
.ss-pdf-field{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--muted)}
.ss-pdf-field select,.ss-pdf-field input{height:32px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font:inherit;font-size:13px;padding:0 8px;min-width:0}
.ss-pdf-field:last-child{grid-column:1/-1}
