body.spreadsheet-view{height:100dvh;overflow:hidden;display:flex;flex-direction:column}
#spreadsheet{display:flex;flex-direction:column;flex:1;min-height:0;font:13px/1.4 system-ui,sans-serif;color:var(--text)}
#spreadsheet .ss-bar{display:flex;align-items:center;gap:6px;padding:5px 14px;border-bottom:1px solid var(--border);flex:none;background:var(--bg)}
#spreadsheet button,#spreadsheet summary,#spreadsheet select{min-height:30px;padding:4px 8px;font-size:12px;white-space:nowrap;border-radius:2px}
#spreadsheet select,#spreadsheet input{background:var(--raised);border:1px solid var(--border);border-radius:2px;color:var(--text);padding:5px;min-width:0}
#spreadsheet .ss-workbook label{display:flex;align-items:center;gap:8px}#ss-books{max-width:240px}#ss-saving{margin-left:auto;color:var(--muted);font-size:11px}#ss-saving.error{color:var(--danger)}
#spreadsheet .ss-format{flex-wrap:wrap;gap:3px}#spreadsheet .ss-format label{display:flex;align-items:center;font-size:11px;gap:3px}#spreadsheet input[type=color]{width:24px;height:26px;padding:2px}#spreadsheet button[aria-pressed=true]{background:var(--hover);color:var(--accent);outline:1px solid var(--accent)}
#spreadsheet details{position:relative}#spreadsheet summary{cursor:pointer;list-style:none}#spreadsheet .ss-menu{position:absolute;right:0;top:100%;z-index:100;display:flex;flex-direction:column;min-width:220px;padding:8px;background:var(--raised);border:1px solid var(--border);box-shadow:var(--shadow);max-height:60dvh;overflow:auto}#spreadsheet details:not([open])>.ss-menu{display:none}#spreadsheet .ss-menu button{text-align:left;min-height:32px}#spreadsheet .ss-up{top:auto;bottom:100%}
#spreadsheet .ss-formula{padding-top:4px;padding-bottom:4px}#ss-address{width:85px;flex:none}#ss-formula{flex:1;font-family:Consolas,monospace}#ss-notice{padding:7px 14px;color:var(--text);background:var(--hover);font-size:12px;flex:none;max-height:85px;overflow:auto}
#ss-grid{position:relative;overflow:auto;flex:1;min-height:80px;background:var(--raised);outline-offset:-2px;overscroll-behavior:contain;touch-action:pan-x pan-y}
#ss-table{border-collapse:separate;border-spacing:0;table-layout:fixed;color:var(--text);user-select:none}
#ss-table th,#ss-table td{box-sizing:border-box;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:3px 6px;position:relative;font-weight:400;overflow:hidden;white-space:nowrap;text-overflow:clip;height:28px;min-width:0}
#ss-table td{cursor:cell;background:var(--raised);font-family:Arial,sans-serif;font-size:12px}#ss-table thead th{position:sticky;top:0;z-index:5;background:var(--surface);text-align:center;height:28px;color:var(--muted)}#ss-table .ss-row-head{position:sticky;left:0;z-index:4;width:46px;background:var(--surface);text-align:center;color:var(--muted)}#ss-table thead .ss-row-head{z-index:8}
#ss-table td.selected{box-shadow:inset 0 0 0 1000px color-mix(in srgb,var(--accent) 10%,transparent)}#ss-table td.active{outline:2px solid var(--accent);outline-offset:-2px;z-index:2}#ss-table td.ss-error{color:var(--danger)}#ss-table .ss-resize{position:absolute;right:0;top:0;bottom:0;width:5px;cursor:col-resize}#ss-table .ss-row-resize{position:absolute;left:0;right:0;bottom:0;height:5px;cursor:row-resize}
#ss-table.freeze-row tbody tr:first-child>*{position:sticky;top:28px;z-index:3}#ss-table.freeze-col tbody td[data-col="0"]{position:sticky;left:46px;z-index:3}#ss-table.freeze-row.freeze-col tbody tr:first-child>td[data-col="0"]{z-index:6}
#ss-editor{position:absolute;z-index:20;border:2px solid var(--accent)!important;min-width:100px;font:12px Arial;padding:3px!important;background:var(--raised)}#ss-fill{position:absolute;z-index:10;width:10px;min-height:10px!important;height:10px;padding:0!important;border:1px solid white;background:var(--accent);cursor:crosshair;touch-action:none}
#spreadsheet .ss-bottom{display:flex;align-items:center;gap:4px;padding:4px 10px;background:var(--surface);border-top:1px solid var(--border);flex:none}#ss-sheets{display:flex;gap:3px;overflow-x:auto;min-width:0}#ss-sheets button[aria-selected=true]{background:var(--raised);border:1px solid var(--accent);color:var(--accent)}#spreadsheet .ss-status{display:flex;justify-content:space-between;gap:12px;padding:4px 14px;background:var(--bg);font-size:11px;color:var(--muted);flex:none}
#spreadsheet dialog{width:min(450px,calc(100vw - 24px))}#spreadsheet dialog label{display:flex;flex-direction:column;gap:5px;margin:12px 0}#spreadsheet dialog p{font-size:12px;color:var(--muted)}#spreadsheet dialog h2{font-size:18px}
@media(max-width:800px){#spreadsheet .ss-format{flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;padding:4px 8px}#spreadsheet .ss-format>*{flex:none}#spreadsheet .ss-workbook{padding:4px 8px;flex-wrap:wrap}#ss-saving{flex-basis:100%;margin:0}#ss-books{max-width:165px}#spreadsheet .ss-status{font-size:10px}#spreadsheet button,#spreadsheet summary,#spreadsheet select{min-height:36px}#spreadsheet .ss-menu{position:fixed;right:8px;top:100px;bottom:auto;max-height:calc(100dvh - 160px)}#spreadsheet input{font-size:16px}}
#ss-table.freeze-col thead th[data-head-col="0"]{left:46px;z-index:7}
#ss-save-bottom{white-space:nowrap}#spreadsheet .ss-status{flex-wrap:wrap}
@media(orientation:landscape) and (max-width:1100px) and (max-height:500px){body.spreadsheet-view>.header{min-height:44px;padding-top:0;padding-bottom:0}body.spreadsheet-view>.workspace-nav{padding-top:0;padding-bottom:0}body.spreadsheet-view>.workspace-nav a{min-height:30px;padding-top:4px;padding-bottom:4px}#spreadsheet .ss-workbook{flex-wrap:nowrap;padding:2px 8px}#ss-saving{display:none}#spreadsheet .ss-format,#spreadsheet .ss-formula{padding-top:2px;padding-bottom:2px}#spreadsheet button,#spreadsheet summary,#spreadsheet select{min-height:28px}#spreadsheet .ss-bottom{padding-top:2px;padding-bottom:2px}#spreadsheet .ss-status{padding-top:1px;padding-bottom:1px;font-size:10px}#ss-grid{min-height:40px}#ss-notice{max-height:32px}}

/* Menu placement is measured from its trigger and constrained to the viewport. */
#spreadsheet .ss-menu,#spreadsheet .ss-menu.ss-up{position:fixed;right:auto;bottom:auto;max-width:calc(100vw - 16px);overflow-x:hidden;overscroll-behavior:contain}
