:root{--font:-apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Yu Gothic", Meiryo, "Segoe UI", system-ui, sans-serif;--bg:#efede7;--bg-2:#e6e3dc;--surface:#fff;--surface-2:#f7f6f2;--ink:#1c1e24;--ink-2:#4d525c;--ink-3:#8b909a;--line:#e1dfd8;--line-2:#cfccc3;--accent:#2d5be3;--accent-deep:#2149b8;--accent-soft:#e7edfc;--accent-ring:#2d5be359;--danger:#d7263d;--danger-soft:#fdecef;--ok:#1f8a4c;--r-lg:14px;--r-md:10px;--r-sm:8px;--shadow-1:0 1px 2px #14161e0f, 0 2px 8px #14161e0d;--shadow-2:0 2px 6px #14161e14, 0 12px 32px #14161e1f;--shadow-page:0 1px 2px #14161e14, 0 12px 40px #14161e1f;--ease:cubic-bezier(.2, .7, .2, 1);--dur:.16s;--tap:44px}@media (prefers-reduced-motion:reduce){:root{--dur:0s}}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;font-size:15px}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;background:0 0;border:0;margin:0;padding:0}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:focus,textarea:focus{outline:none}body.is-dragging,body.is-dragging *{-webkit-user-select:none;user-select:none;cursor:grabbing!important}#app{height:100%}.app{grid-template-rows:auto 1fr;height:100%;min-height:0;display:grid}.main{grid-template-columns:minmax(0,1fr) 304px;min-height:0;display:grid}@media (max-width:900px),(orientation:portrait){.main{grid-template-rows:minmax(0,1fr) 312px;grid-template-columns:minmax(0,1fr)}}.topbar{padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top));border-bottom:1px solid var(--line);-webkit-backdrop-filter:saturate(1.4)blur(10px);z-index:5;background:#ffffffeb;flex-wrap:wrap;align-items:center;gap:8px;display:flex;position:relative}.brand{letter-spacing:.01em;white-space:nowrap;align-items:center;gap:8px;padding-right:6px;font-size:15px;font-weight:700;display:flex}.brand-mark{background:var(--accent);color:#fff;border-radius:7px;flex:none;place-items:center;width:26px;height:26px;display:grid}.topbar-group{align-items:center;gap:4px;display:flex}.topbar-spacer{flex:1}.topbar-sep{background:var(--line);width:1px;height:24px;margin:0 4px}@media (max-width:900px){.brand-text{display:none}}.btn{border-radius:var(--r-md);min-width:38px;height:38px;color:var(--ink);transition:background var(--dur) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), opacity var(--dur) var(--ease);white-space:nowrap;background:0 0;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:14px;font-weight:600;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.38;background:0 0;transform:none}.btn svg{flex:none;width:18px;height:18px}.btn-icon{width:38px;padding:0}.btn-ghost{color:var(--ink-2)}.btn-outline{box-shadow:inset 0 0 0 1px var(--line-2);background:var(--surface)}.btn-outline:hover{background:var(--surface-2)}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 1px 2px #2149b84d}.btn-primary:hover{background:var(--accent-deep)}.btn-primary:disabled{background:var(--accent)}.btn-danger{color:var(--danger)}.btn-danger:hover{background:var(--danger-soft)}.btn-lg{height:var(--tap);border-radius:12px;padding:0 16px;font-size:15px}.btn-sm{border-radius:8px;min-width:32px;height:32px;padding:0 10px;font-size:13px}.btn-block{width:100%}.pagenav{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);border-radius:12px;align-items:center;gap:2px;padding:2px;display:inline-flex}.pagenav .btn{border-radius:10px;min-width:34px;height:34px}.pagenav .btn:hover{background:#fff}.pagenav-label{font-variant-numeric:tabular-nums;text-align:center;min-width:86px;color:var(--ink);padding:0 6px;font-size:14px;font-weight:600}.pagenav-label small{color:var(--ink-3);font-weight:500}.stage{background:radial-gradient(circle at 1px 1px, #1c1e240f 1px, transparent 0) 0 0 / 22px 22px, var(--bg);overscroll-behavior:contain;min-height:0;position:relative;overflow:auto}.stage-inner{justify-content:center;min-width:max-content;padding:28px 28px 120px;display:flex}.page-scaler{flex:none;position:relative}.page{transform-origin:0 0;color:#1c1e24;box-shadow:var(--shadow-page);background:#fff;border-radius:3px;font-size:15px;line-height:1.35;position:absolute;top:0;left:0}.page.export{box-shadow:none;border-radius:0;position:static}.zoombar{float:left;box-shadow:var(--shadow-2);z-index:3;background:#fffffff0;border-radius:12px;gap:2px;margin-top:-80px;padding:3px;display:inline-flex;position:sticky;bottom:16px;left:16px}.zoombar .btn{border-radius:9px;min-width:36px;height:36px}.zoombar-value{font-variant-numeric:tabular-nums;color:var(--ink-2);text-align:center;align-self:center;min-width:46px;font-size:13px;font-weight:600}.trashzone{opacity:0;pointer-events:none;height:56px;color:var(--danger);box-shadow:var(--shadow-2), inset 0 0 0 1.5px #d7263d4d;transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease), background var(--dur) var(--ease);z-index:4;background:#fff;border-radius:16px;align-items:center;gap:10px;padding:0 22px;font-weight:700;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%,16px)}.trashzone.show{opacity:1;pointer-events:auto;transform:translate(-50%)}.trashzone.drop-over{background:var(--danger);color:#fff;transform:translate(-50%)scale(1.04)}.trashzone svg{width:20px;height:20px}.page-pad{min-height:794px;padding:74px 184px 36px 30px;position:relative}.page-headnote{text-align:right;color:#1c1e24;width:300px;font-size:15.5px;line-height:1.4;position:absolute;top:12px;right:26px}.page-headnote textarea,.page-headnote .text-static{text-align:right;resize:none;white-space:pre-wrap;word-break:break-word;background:0 0;border:1px dashed #0000;border-radius:6px;width:100%;min-height:24px;padding:3px 6px;display:block;overflow:hidden}.page:not(.export) .page-headnote textarea:hover{border-color:#d9d6ce}.page-headnote textarea:focus{background:#f7f9ff;border-color:#2d5be3}.sheet-table{background:#fff;border:1.5px solid #30323a;position:relative}.trow{grid-template-columns:var(--cols);display:grid}.trow+.trow,.trow.header{border-top:1px solid #30323a}.tcell{min-width:0;position:relative}.tcell+.tcell{border-left:1px solid #30323a}.title-row{justify-content:center;display:flex}.title-row input,.title-row .text-static{text-align:center;background:0 0;border:0;border-radius:4px;width:100%;height:36px;padding:0 12px;font-size:19px;font-weight:700;line-height:36px}.title-row .text-static{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.title-row input::placeholder{color:#b6b4ad;font-weight:500}.title-row input:focus{background:#f7f9ff}.hcell{color:#1c1e24;letter-spacing:.02em;justify-content:center;align-items:center;height:34px;font-size:16px;font-weight:500;display:flex}.hcell-btn{width:100%;transition:background var(--dur) var(--ease);border-radius:0;position:absolute;top:0;bottom:0;left:0;right:0}.hcell-btn:hover{background:#2d5be30f}.hcell-btn:active{background:#2d5be31f}.col-resizer{cursor:col-resize;touch-action:none;z-index:2;width:18px;height:50px;position:absolute;top:-8px;right:-9px}.col-resizer:after{content:"";opacity:0;width:4px;height:30px;transition:opacity var(--dur) var(--ease);background:#2d5be3;border-radius:2px;position:absolute;top:10px;left:7px}.col-resizer:hover:after,.col-resizer.active:after{opacity:.7}.trow.body{min-height:86px;position:relative}.label-cell{justify-content:center;align-items:center;padding:6px;display:flex}.label-cell input,.label-cell .text-static{text-align:center;background:0 0;border:0;border-radius:4px;width:100%;padding:4px;font-size:15.5px}.label-cell input:focus{background:#f7f9ff}.cell{cursor:text;min-height:100%;transition:background var(--dur) var(--ease);flex-direction:column;padding:6px 8px 5px;display:flex}.page:not(.export) .cell.drop-over{background:#e7edfc;box-shadow:inset 0 0 0 2px #2d5be3}.slot-line{border-radius:4px;flex-wrap:wrap;align-items:flex-end;margin:0 -3px;padding:1px 3px;font-size:15px;line-height:1.3;display:flex}.page:not(.export) .slot-line.drop-over{background:#d5defa}.slot-label{color:#1c1e24;white-space:nowrap;margin-right:4px}.sep{color:#1c1e24;padding:0 1px}.chip{white-space:nowrap;color:#1c1e24;border-radius:4px;grid-template-rows:auto auto;place-items:end start;display:inline-grid;position:relative}.page:not(.export) .chip{touch-action:none;cursor:grab;transition:background var(--dur) var(--ease), transform var(--dur) var(--ease);margin:0 -2px;padding:0 2px}.page:not(.export) .chip:hover{background:#2d5be314}.chip.just-placed{animation:chip-in .26s var(--ease)}@keyframes chip-in{0%{background:#e7edfc;transform:scale(.85)}to{transform:none}}.chip-marks{z-index:1;justify-self:end;align-items:flex-end;height:15px;margin-bottom:-3px;margin-right:-8px;display:none;position:relative}.chip.has-marks .chip-marks{display:flex}.chip-name{font-size:15px;line-height:1.3}.badge{color:var(--c);flex:none;font-style:normal;font-weight:700;display:inline-block}.badge+.badge{margin-left:2px}.badge.circ{border:1.5px solid var(--c);text-align:center;letter-spacing:0;border-radius:50%;width:15px;height:15px;font-size:10px;line-height:12px}.badge.tag{white-space:nowrap;letter-spacing:.01em;font-size:10.5px;line-height:15px}.cell-text{resize:none;color:#1c1e24;white-space:pre-wrap;word-break:break-word;background:0 0;border:0;border-radius:4px;flex:none;width:100%;min-height:22px;padding:1px 2px;font-size:15px;line-height:1.4;display:block;overflow:hidden}.cell-text::placeholder{color:#0000}.cell-text:focus::placeholder{color:#b6b4ad}.cell-text:focus{background:#f7f9ff}.text-static{white-space:pre-wrap;word-break:break-word}.page.export .ui{display:none!important}.row-gutter{justify-content:center;align-items:center;width:24px;display:flex;position:absolute;top:0;bottom:0;left:-27px}.gutter-btn{color:#a7aab3;width:24px;height:36px;transition:all var(--dur) var(--ease);border-radius:7px;place-items:center;display:grid}.gutter-btn:hover{color:#2d5be3;background:#e7edfc}.gutter-btn svg{width:16px;height:16px}.add-col-btn{color:#a7aab3;width:30px;height:34px;transition:all var(--dur) var(--ease);border-radius:8px;place-items:center;display:grid;position:absolute;top:36px;right:-34px}.add-col-btn:hover{color:#2d5be3;background:#e7edfc}.add-col-btn svg{width:18px;height:18px}.add-row-btn{color:#8b909a;width:100%;height:40px;transition:all var(--dur) var(--ease);border:1.5px dashed #d5d2ca;border-radius:10px;justify-content:center;align-items:center;gap:6px;margin-top:10px;font-weight:600;display:flex}.add-row-btn:hover{color:#2d5be3;background:#f7f9ff;border-color:#2d5be3}.add-row-btn svg{width:18px;height:18px}.note{background:var(--note-bg);transition:box-shadow var(--dur) var(--ease);border-radius:3px;flex-direction:column;display:flex;position:absolute;box-shadow:0 1px 1px #14161e14,0 6px 16px #14161e24}.page.export .note{box-shadow:none;border:1px solid var(--note-edge);min-height:60px;height:auto!important}.page.export .note-text{overflow:visible}.note[data-color=yellow]{--note-bg:#fff4a8;--note-bar:#f5e27a;--note-edge:#ead98a}.note[data-color=pink]{--note-bg:#ffd9e1;--note-bar:#f7bccb;--note-edge:#eaaab9}.note[data-color=green]{--note-bg:#d6f3d1;--note-bar:#b9e6b0;--note-edge:#a7d59e}.note[data-color=blue]{--note-bg:#d9ecff;--note-bar:#badbfb;--note-edge:#a7c9ee}.note.selected{box-shadow:0 0 0 2px #2d5be3,0 8px 22px #14161e2e}.page:not(.export) .note{touch-action:none;cursor:grab}.note-bar{background:var(--note-bar);touch-action:none;cursor:grab;border-radius:3px 3px 0 0;flex:none;height:24px;position:relative}.note-bar:after{content:"";background:#1c1e2424;border-radius:2px;width:28px;height:4px;margin-left:-14px;position:absolute;top:10px;left:50%}.page.export .note-bar:after{display:none}.note-text{resize:none;touch-action:none;cursor:text;color:#1c1e24;white-space:pre-wrap;word-break:break-word;background:0 0;border:0;flex:1;width:auto;margin:0 6px 6px;padding:4px;font-size:15px;line-height:1.4;overflow:hidden}.note-text::placeholder{color:#1c1e2459}.note-resize{touch-action:none;cursor:nwse-resize;width:28px;height:28px;position:absolute;bottom:-6px;right:-6px}.note-resize:after{content:"";border-bottom:2px solid #1c1e2459;border-right:2px solid #1c1e2459;border-radius:0 0 2px;width:10px;height:10px;position:absolute;bottom:8px;right:8px}.note-tools{height:38px;box-shadow:var(--shadow-2);animation:pop-in var(--dur) var(--ease);background:#fff;border-radius:10px;align-items:center;gap:6px;padding:0 6px;display:flex;position:absolute;top:-44px;left:0}.swatch{background:var(--sw);width:26px;height:26px;transition:transform var(--dur) var(--ease);border:2px solid #0000;border-radius:50%;box-shadow:inset 0 0 0 1px #00000014}.swatch:hover{transform:scale(1.1)}.swatch.on{border-color:#1c1e24}.note-tools .btn{border-radius:8px;min-width:30px;height:30px;padding:0}.note-tools .btn svg{width:16px;height:16px}.panel{background:var(--surface);border-left:1px solid var(--line);z-index:2;flex-direction:column;min-height:0;display:flex;position:relative}@media (max-width:900px),(orientation:portrait){.panel{border-left:0;border-top:1px solid var(--line)}}.panel.drop-over:after{content:"";box-shadow:inset 0 0 0 2px var(--danger);pointer-events:none;background:#d7263d0d;border-radius:14px;position:absolute;top:6px;bottom:6px;left:6px;right:6px}.tabs{border-bottom:1px solid var(--line);gap:4px;padding:10px 12px 0;display:flex}.tab{height:40px;color:var(--ink-3);transition:color var(--dur) var(--ease);border-bottom:2px solid #0000;border-radius:8px 8px 0 0;margin-bottom:-1px;padding:0 12px;font-size:14px;font-weight:600}.tab:hover{color:var(--ink-2)}.tab.on{color:var(--accent);border-bottom-color:var(--accent)}.panel-body{overscroll-behavior:contain;flex:1;min-height:0;padding:12px;overflow:auto}.panel-hint{color:var(--ink-3);margin:0 2px 10px;font-size:12.5px;line-height:1.45}.panel-foot{padding:10px 12px;padding-bottom:calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface)}.privacy{color:var(--ink-3);align-items:flex-start;gap:6px;font-size:11.5px;line-height:1.4;display:flex}.privacy svg{flex:none;width:14px;height:14px;margin-top:2px}.add-form{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.field{border-radius:var(--r-md);border:1px solid var(--line-2);background:var(--surface);width:100%;min-height:44px;transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);padding:10px 12px;font-size:15px;line-height:1.4}.field:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}textarea.field{resize:none;overflow:hidden}.add-row{gap:8px;display:flex}.add-row .field{flex:1}.list{flex-direction:column;gap:6px;display:flex}.item{min-height:var(--tap);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease), background var(--dur) var(--ease);border-radius:12px;align-items:center;gap:4px;padding:4px 4px 4px 2px;display:flex;position:relative}.item.draggable{touch-action:pan-y;cursor:grab}.item.draggable:hover{box-shadow:inset 0 0 0 1px var(--line-2), var(--shadow-1);background:#fff}.item[data-insert=before]:before,.item[data-insert=after]:after{content:"";background:var(--accent);border-radius:2px;height:3px;position:absolute;left:8px;right:8px}.item[data-insert=before]:before{top:-4.5px}.item[data-insert=after]:after{bottom:-4.5px}.grip{width:28px;height:36px;color:var(--ink-3);touch-action:none;cursor:grab;border-radius:8px;flex:none;place-items:center;display:grid}.grip svg{width:16px;height:16px}.item-name{text-overflow:ellipsis;background:0 0;border:0;border-radius:8px;flex:1;min-width:0;height:36px;padding:0 6px;font-size:15px;font-weight:600}.item-name:focus{box-shadow:0 0 0 2px var(--accent-ring);background:#fff}.item-name-static{white-space:nowrap;cursor:grab;align-items:center;display:flex;overflow:hidden}.item-count{color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap;padding:0 4px;font-size:12px}.item-count.zero{opacity:.45}.item .btn-x{width:36px;height:36px;color:var(--ink-3);border-radius:9px;flex:none;place-items:center;display:grid}.item .btn-x:hover{color:var(--danger);background:var(--danger-soft)}.item .btn-x svg{width:16px;height:16px}.person-pill{height:32px;box-shadow:inset 0 0 0 1px var(--line-2);white-space:nowrap;background:#fff;border-radius:999px;align-items:center;padding:0 12px;font-size:15px;font-weight:600;display:inline-flex}.empty{text-align:center;color:var(--ink-3);border:1.5px dashed var(--line-2);border-radius:12px;padding:28px 12px;font-size:13.5px;line-height:1.5}.mark-preview{flex:none;justify-content:center;align-items:center;min-width:36px;height:36px;padding:0 4px;display:inline-flex}.color-dot{background:var(--c);border-radius:50%;width:22px;height:22px;box-shadow:inset 0 0 0 1px #0000001a}.color-btn{border-radius:9px;flex:none;place-items:center;width:36px;height:36px;display:grid}.color-btn:hover{background:#fff}.palette{grid-template-columns:repeat(4,40px);gap:8px;padding:6px;display:grid}.palette .swatch{width:36px;height:36px}.drag-ghost{z-index:1000;pointer-events:none;opacity:.95;transform-origin:0 0;box-shadow:var(--shadow-2);will-change:transform;animation:ghost-lift .14s var(--ease);background:#fff;border-radius:10px;position:fixed;top:0;left:0;margin:0!important}.drag-ghost.item{padding-left:2px}.drag-ghost.chip{background:#fff;padding:4px 8px;font-size:16px;width:auto!important;height:auto!important}@keyframes ghost-lift{0%{opacity:.6;box-shadow:var(--shadow-1)}}.scrim{z-index:50;background:0 0;position:fixed;top:0;bottom:0;left:0;right:0}.scrim.dim{animation:fade-in var(--dur) var(--ease);background:#1c1e2452}.popover{z-index:51;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-2), 0 0 0 1px #1c1e240f;min-width:240px;max-width:min(360px,100vw - 24px);max-height:calc(100vh - 24px);animation:pop-in var(--dur) var(--ease);transform-origin:var(--origin,top center);padding:14px;position:fixed;overflow:auto}.popover.sheet{max-width:none;padding:16px 16px calc(16px + env(safe-area-inset-bottom));animation:sheet-in .22s var(--ease);border-radius:20px 20px 0 0;bottom:0;left:0;right:0}@keyframes pop-in{0%{opacity:0;transform:scale(.96)translateY(-2px)}}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}}@keyframes fade-in{0%{opacity:0}}.pop-title{margin:0 0 12px;font-size:16px;font-weight:700;line-height:1.35}.pop-label{color:var(--ink-3);letter-spacing:.02em;margin:10px 0 6px;font-size:12.5px;font-weight:600}.pop-actions{gap:8px;margin-top:14px;display:flex}.pop-actions .grow{flex:1}.pop-actions .push{margin-left:auto}.choice-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px;display:grid}.choice{background:var(--surface-2);height:48px;box-shadow:inset 0 0 0 1px var(--line);transition:background var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);border-radius:12px;font-size:16px;font-weight:700}.choice:hover{box-shadow:inset 0 0 0 1px var(--line-2);background:#fff}.choice:active{transform:scale(.96)}.choice.on{background:var(--accent);color:#fff;box-shadow:none}.mark-row{flex-wrap:wrap;gap:8px;display:flex}.mark-toggle{background:var(--surface-2);height:40px;box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-2);transition:background var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);border-radius:999px;align-items:center;gap:6px;padding:0 12px 0 10px;font-size:14px;font-weight:600;display:inline-flex}.mark-toggle:active{transform:scale(.96)}.mark-toggle.on{box-shadow:inset 0 0 0 2px var(--c);color:var(--ink);background:#fff}.mark-toggle .badge.circ{border-width:2px;width:20px;height:20px;font-size:12px;line-height:17px}.mark-toggle .badge.tag{font-size:13px}.mark-toggle-tag{color:var(--c);font-weight:700}.mark-toggle .check{width:16px;height:16px;color:var(--c);opacity:0;transition:opacity var(--dur) var(--ease);margin-left:-2px}.mark-toggle.on .check{opacity:1}.pop-empty{color:var(--ink-3);padding:8px 0;font-size:13.5px}.menu-list{flex-direction:column;gap:2px;display:flex}.menu-item{text-align:left;border-radius:10px;align-items:center;gap:10px;width:100%;height:44px;padding:0 10px;font-size:15px;font-weight:600;display:flex}.menu-item:hover{background:var(--surface-2)}.menu-item svg{width:18px;height:18px;color:var(--ink-3)}.menu-item.danger,.menu-item.danger svg{color:var(--danger)}.menu-item:disabled{opacity:.4}.menu-sep{background:var(--line);height:1px;margin:6px 0}.dialog{z-index:51;background:var(--surface);width:min(420px,100vw - 32px);box-shadow:var(--shadow-2);animation:dialog-in .2s var(--ease);border-radius:18px;padding:22px 20px 18px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes dialog-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.96)}}.dialog-msg{white-space:pre-wrap;margin:0 0 18px;font-size:15.5px;line-height:1.6}.dialog-title{margin:0 0 10px;font-size:17px;font-weight:700}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.dialog-actions .btn{border-radius:12px;height:44px;padding:0 18px}.file-links{flex-direction:column;gap:8px;margin:0 0 16px;display:flex}.file-link{background:var(--surface-2);height:48px;box-shadow:inset 0 0 0 1px var(--line);color:var(--ink);border-radius:12px;align-items:center;gap:10px;padding:0 14px;font-size:14px;font-weight:600;text-decoration:none;display:flex;overflow:hidden}.file-link span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-link svg{width:18px;height:18px;color:var(--accent);flex:none}.file-link:hover{background:#fff}.busy{z-index:60;-webkit-backdrop-filter:blur(4px);background:#efede799;place-items:center;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.busy-card{box-shadow:var(--shadow-2);background:#fff;border-radius:14px;align-items:center;gap:12px;padding:14px 20px;font-weight:600;display:flex}.spinner{border:2.5px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.export-stage{z-index:-1;opacity:0;pointer-events:none;width:1123px;position:fixed;top:0;left:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
