:root{--bg: #181818;--bg-alt: #1f1f1f;--bg-surface: #272727;--bg-overlay: #343434;--text: #dedede;--text-sub: #a8a8a8;--text-muted: #707070;--border: #2c2c2c;--accent: #3d9bff;--accent-2: #b89cf2;--success: #7dcf8a;--warning: #e5c07b;--pending: #e8a062;--error: #ef7a85;--green: #7dcf8a;--red: #ef7a85;--comment-range: rgba(250,200,80,.16);--comment-range-active: rgba(250,200,80,.32);--comment-range-line: rgba(250,200,80,.55);--comment-range-line-active: rgba(250,200,80,.95);--hl-heading: var(--text);--hl-link: var(--accent);--hl-code: #c8c8c8;--hl-fence: #707070;--hl-quote: #a8a8a8;--hl-meta: #707070;--hl-punct: #7c7c7c;--hl-keyword: #b9a6ff;--hl-operator: #8ab8f0;--hl-atom: #f2a0a0;--hl-number: #f0b78a;--hl-string: #a8d8a0;--hl-comment: #707070;--hl-name: #dedede;--hl-type: #e6cf8c;--hl-class: #8ab8f0;--hl-property: #8ab8f0;--hl-variable: #dedede;--hl-function: #8ab8f0;--hl-strike: #707070;--hl-sep: #3a3a3a;--hl-code-bg: #222222;--topbar-h: 44px;--panel-w: 340px;--radius: 6px;--radius-sm: 3px;--shadow: 0 4px 24px rgba(0,0,0,.5);--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, monospace;--font-ui: system-ui, -apple-system, sans-serif}@media (prefers-color-scheme: light){:root:not([data-theme]){--bg: #ffffff;--bg-alt: #f6f6f4;--bg-surface: #ededeb;--bg-overlay: #e2e2df;--text: #1a1a1a;--text-sub: #5c5c5c;--text-muted: #8f8f8f;--border: #e5e5e2;--accent: #1a8cf5;--accent-2: #7a4fd6;--success: #2e9e4a;--warning: #d9890f;--pending: #e0761a;--error: #d23f3f;--green: #2e9e4a;--red: #d23f3f;--comment-range: rgba(240,170,20,.22);--comment-range-active: rgba(240,170,20,.4);--comment-range-line: rgba(220,150,10,.65);--comment-range-line-active: rgba(220,150,10,1);--hl-heading: var(--text);--hl-link: var(--accent);--hl-code: #3a3a3a;--hl-fence: #8f8f8f;--hl-quote: #5c5c5c;--hl-meta: #a0a0a0;--hl-punct: #9a9a9a;--hl-keyword: #7a3ee0;--hl-operator: #1a6fd0;--hl-atom: #c42f2f;--hl-number: #c56a12;--hl-string: #2f8f3f;--hl-comment: #9a9a9a;--hl-name: #1a1a1a;--hl-type: #a3780a;--hl-class: #1a6fd0;--hl-property: #1a6fd0;--hl-variable: #1a1a1a;--hl-function: #1a6fd0;--hl-strike: #9a9a9a;--hl-sep: #dcdcd8;--hl-code-bg: #f1f1ee}}[data-theme=light]{--bg: #ffffff;--bg-alt: #f6f6f4;--bg-surface: #ededeb;--bg-overlay: #e2e2df;--text: #1a1a1a;--text-sub: #5c5c5c;--text-muted: #8f8f8f;--border: #e5e5e2;--accent: #1a8cf5;--accent-2: #7a4fd6;--success: #2e9e4a;--warning: #d9890f;--pending: #e0761a;--error: #d23f3f;--green: #2e9e4a;--red: #d23f3f;--comment-range: rgba(240,170,20,.22);--comment-range-active: rgba(240,170,20,.4);--comment-range-line: rgba(220,150,10,.65);--comment-range-line-active: rgba(220,150,10,1);--hl-heading: var(--text);--hl-link: var(--accent);--hl-code: #3a3a3a;--hl-fence: #8f8f8f;--hl-quote: #5c5c5c;--hl-meta: #a0a0a0;--hl-punct: #9a9a9a;--hl-keyword: #7a3ee0;--hl-operator: #1a6fd0;--hl-atom: #c42f2f;--hl-number: #c56a12;--hl-string: #2f8f3f;--hl-comment: #9a9a9a;--hl-name: #1a1a1a;--hl-type: #a3780a;--hl-class: #1a6fd0;--hl-property: #1a6fd0;--hl-variable: #1a1a1a;--hl-function: #1a6fd0;--hl-strike: #9a9a9a;--hl-sep: #dcdcd8;--hl-code-bg: #f1f1ee}[data-theme=dark]{--bg: #181818;--bg-alt: #1f1f1f;--bg-surface: #272727;--bg-overlay: #343434;--text: #dedede;--text-sub: #a8a8a8;--text-muted: #707070;--border: #2c2c2c;--accent: #3d9bff;--accent-2: #b89cf2;--success: #7dcf8a;--warning: #e5c07b;--pending: #e8a062;--error: #ef7a85;--green: #7dcf8a;--red: #ef7a85;--comment-range: rgba(250,200,80,.16);--comment-range-active: rgba(250,200,80,.32);--comment-range-line: rgba(250,200,80,.55);--comment-range-line-active: rgba(250,200,80,.95);--hl-heading: var(--text);--hl-link: var(--accent);--hl-code: #c8c8c8;--hl-fence: #707070;--hl-quote: #a8a8a8;--hl-meta: #707070;--hl-punct: #7c7c7c;--hl-keyword: #b9a6ff;--hl-operator: #8ab8f0;--hl-atom: #f2a0a0;--hl-number: #f0b78a;--hl-string: #a8d8a0;--hl-comment: #707070;--hl-name: #dedede;--hl-type: #e6cf8c;--hl-class: #8ab8f0;--hl-property: #8ab8f0;--hl-variable: #dedede;--hl-function: #8ab8f0;--hl-strike: #707070;--hl-sep: #3a3a3a;--hl-code-bg: #222222}#uf-editor-wrap .cm-editor{background:var(--bg);color:var(--text)}#uf-editor-wrap .cm-scroller{font-family:var(--font-mono);font-size:var(--editor-font-size, 16px);line-height:1.7}#uf-editor-wrap .cm-content{padding:18px 0 40vh}#uf-editor-wrap .cm-line{padding:0 var(--editor-pad-x, 24px);position:relative}#uf-editor-wrap .cm-cursor,#uf-editor-wrap .cm-dropCursor{border-left:2px solid var(--accent);margin-left:-1px;box-sizing:content-box;padding:.18em 0;margin-top:-.18em}#uf-editor-wrap .cm-selectionBackground{background:color-mix(in srgb,var(--accent) 22%,transparent)!important}#uf-editor-wrap .cm-editor.cm-focused .cm-selectionBackground{background:color-mix(in srgb,var(--accent) 30%,transparent)!important}#uf-editor-wrap .cm-selectionMatch{background:color-mix(in srgb,var(--text) 10%,transparent)}#uf-editor-wrap .cm-matchingBracket{background:var(--bg-surface);color:var(--accent)!important}#uf-editor-wrap .cm-nonmatchingBracket{color:var(--error)!important}#uf-editor-wrap .cm-searchMatch{background:color-mix(in srgb,var(--warning) 25%,transparent);outline:1px solid color-mix(in srgb,var(--warning) 50%,transparent)}#uf-editor-wrap .cm-searchMatch.cm-searchMatch-selected{background:color-mix(in srgb,var(--warning) 45%,transparent)}.cm-tooltip{background:var(--bg-alt);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);box-shadow:var(--shadow)}.cm-tooltip-autocomplete>ul>li[aria-selected]{background:var(--bg-surface);color:var(--accent)}.cm-completionDetail,.cm-placeholder{color:var(--text-muted)}.cm-line.cm-voice-line{box-shadow:inset 3px 0 0 var(--vc)}.cm-voice-tag{color:var(--vc);font-weight:600}.cm-line.cm-voice-muted{opacity:.38}.cm-line.cm-voice-M:before,.cm-line.cm-voice-S:before{position:absolute;left:6px;top:0;font:700 .62em/inherit var(--font-mono);user-select:none;pointer-events:none}.cm-line.cm-voice-M:before{content:"M";color:var(--error)}.cm-line.cm-voice-S:before{content:"S";color:var(--success)}.cm-comment-range{background:var(--comment-range);border-bottom:1.5px solid var(--comment-range-line);cursor:pointer}.cm-comment-range-active{background:var(--comment-range-active);border-bottom-color:var(--comment-range-line-active)}.cm-dsl-highlight{background:color-mix(in srgb,var(--accent) 18%,transparent);border-radius:2px;outline:1px solid color-mix(in srgb,var(--accent) 45%,transparent)}.cm-lintRange-error{background-image:none!important;text-decoration:underline wavy var(--error) 1px;text-underline-offset:3px}.cm-lintRange-warning{background-image:none!important;text-decoration:underline wavy var(--warning) 1px;text-underline-offset:3px}.cm-lintRange-info{background-image:none!important;text-decoration:underline wavy var(--accent) 1px;text-underline-offset:3px}.cm-lintRange-hint{background-image:none!important;text-decoration:underline wavy var(--text-muted) 1px;text-underline-offset:3px}.cm-tooltip .cm-diagnostic{padding:5px 9px;border-left:3px solid var(--text-muted);font-size:12px;line-height:1.4}.cm-tooltip .cm-diagnostic-error{border-left-color:var(--error)}.cm-tooltip .cm-diagnostic-warning{border-left-color:var(--warning)}.cm-tooltip .cm-diagnostic-info{border-left-color:var(--accent)}.cm-doc-tooltip{padding:6px 9px;max-width:340px;font-size:12px;line-height:1.45}.cm-doc-tooltip strong{color:var(--accent)}.cm-tooltip.cm-completionInfo{max-width:320px;padding:6px 9px;font-size:12px;line-height:1.45}.cm-play-note{color:var(--success)!important}.cm-fm-fence{color:var(--text-muted)}.cm-fm-key{color:var(--accent-2)}.cm-fm-comment{color:var(--text-muted);font-style:italic}.cm-shebang-line{color:var(--accent)!important;opacity:.55;font-style:italic}[data-theme=light] .cm-shebang-line{color:var(--accent)!important;opacity:.6}@media (prefers-color-scheme: light){:root:not([data-theme]) .cm-shebang-line{opacity:.6}}*,*:before,*:after{box-sizing:border-box}html,body{height:100vh;margin:0;overflow:hidden;overscroll-behavior:none;background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:14px;line-height:1.5}#unifile-app{position:fixed;left:0;top:var(--app-vv-top, 0px);width:100%;display:flex;flex-direction:column;height:100vh;height:100dvh;height:var(--app-height, 100dvh);overflow:hidden}#uf-pane-switch{display:none}#uf-bottom{display:contents}#uf-commit-bar{display:none}#uf-site-nav{flex-shrink:0;display:flex;align-items:center;gap:8px;height:32px;padding:0 12px;background:var(--bg);border-bottom:1px solid var(--border);font-family:var(--font-ui);z-index:120}#uf-site-nav:empty{display:none}.usn-glyph{color:var(--accent);font-size:13px;flex-shrink:0;user-select:none}.usn-wrap{position:relative;flex:1;max-width:560px}.usn-input{width:100%;background:transparent;border:none;outline:none;color:var(--text);font-family:var(--font-ui);font-size:13px;padding:0;caret-color:var(--accent)}.usn-input::placeholder{color:var(--text-muted)}.usn-home{margin-left:auto;flex-shrink:0;color:var(--text-muted);font-size:12px;text-decoration:none}.usn-home:hover{color:var(--text)}.usn-dropdown{position:absolute;top:calc(100% + 6px);left:-20px;right:0;background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;display:none;z-index:200;box-shadow:0 6px 20px #00000059}.usn-dropdown.open{display:block;max-height:320px;overflow-y:auto}.usn-item{display:flex;align-items:baseline;gap:10px;padding:8px 12px;cursor:pointer;border-bottom:1px solid var(--border)}.usn-item:last-child{border-bottom:none}.usn-item:hover,.usn-item.active{background:color-mix(in srgb,var(--accent) 14%,transparent)}.usn-title{font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55%;flex-shrink:0}.usn-url{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.usn-badge{margin-left:auto;flex-shrink:0;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);border:1px solid currentColor;border-radius:3px;padding:1px 5px}#uf-topbar{position:relative;flex-shrink:0;z-index:100}.topbar{position:relative;display:flex;align-items:center;gap:8px;height:var(--topbar-h);padding:0 12px;background:var(--bg-alt);border-bottom:1px solid var(--border);overflow:hidden}.topbar-title{flex:1;min-width:0;max-width:260px;font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:2px 6px;border-radius:var(--radius-sm);outline:none;cursor:text}.topbar-title:empty:before{content:attr(data-placeholder);color:var(--text-muted)}.topbar-title:focus{background:var(--bg-surface);box-shadow:0 0 0 2px var(--accent);overflow:visible;text-overflow:clip}.dsl-icon{flex-shrink:0;display:flex;align-items:center;color:var(--text-muted);opacity:.55;user-select:none}.tb-hamburger{flex-shrink:0;display:flex;align-items:center;background:none;border:1px solid transparent;border-radius:var(--radius);color:var(--text-muted);padding:5px 6px;cursor:pointer;transition:color .15s,border-color .15s,background .15s;user-select:none}.tb-hamburger:hover{color:var(--text);border-color:var(--border);background:var(--bg-surface)}.tb-hamburger.active{color:var(--text);border-color:var(--border);background:var(--bg-overlay)}.plugin-mgr-body{padding:12px 0}.plugin-mgr-list{display:flex;flex-direction:column}.plugin-mgr-row{display:flex;flex-direction:column;align-items:stretch;border-bottom:1px solid var(--border)}.plugin-mgr-row:last-child{border-bottom:none}.plugin-mgr-shebang{font-family:var(--font-mono);font-size:12px;background:var(--bg-overlay);color:var(--accent);padding:2px 6px;border-radius:4px;flex-shrink:0}.plugin-mgr-name{flex:1;font-size:13px;color:var(--text)}.plugin-mgr-remove{padding:3px 10px;font-size:11px;border-radius:var(--radius);border:1px solid var(--text-muted);background:none;color:var(--text-muted);cursor:pointer;transition:border-color .12s,color .12s}.plugin-mgr-remove:hover{border-color:#f38ba8;color:#f38ba8}.plugin-mgr-empty{padding:16px 20px;color:var(--text-muted);font-size:13px;margin:0}.plugin-mgr-footer{padding:12px 20px;border-top:1px solid var(--border)}.plugin-mgr-install-btn{padding:6px 14px;font-size:12px;border-radius:var(--radius);border:1.5px solid var(--accent);background:none;color:var(--accent);cursor:pointer;font-weight:600;transition:background .12s,color .12s}.plugin-mgr-install-btn:hover{background:var(--accent);color:var(--bg)}.plugin-mgr-builtin-badge{font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--border);border-radius:3px;padding:1px 5px;flex-shrink:0}.plugin-mgr-row-header{display:flex;align-items:center;gap:10px;width:100%;padding:8px 20px}.plugin-ext-summary{padding:6px 20px;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;user-select:none;list-style:none;display:flex;align-items:center;gap:6px}.plugin-ext-summary::-webkit-details-marker{display:none}.plugin-ext-summary:before{content:"\25b6";font-size:8px;transition:transform .15s;display:inline-block}details[open]>.plugin-ext-summary:before{transform:rotate(90deg)}.plugin-ext-summary:hover{color:var(--text)}.plugin-ext-body{padding:4px 20px 12px;display:flex;flex-direction:column;gap:12px}.plugin-ext-slot-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.plugin-ext-label{font-size:12px;font-weight:600;color:var(--text);flex:1}.plugin-ext-clear{padding:2px 8px;font-size:11px;border-radius:var(--radius);border:1px solid var(--text-muted);background:none;color:var(--text-muted);cursor:pointer;transition:border-color .12s,color .12s;flex-shrink:0}.plugin-ext-clear:hover{border-color:#f38ba8;color:#f38ba8}.plugin-ext-desc{font-size:11px;color:var(--text-muted);margin:0 0 6px;line-height:1.5}.plugin-ext-text-input{width:100%;padding:5px 8px;font-size:12px;font-family:var(--font-mono);background:var(--bg-overlay);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);outline:none;box-sizing:border-box;transition:border-color .12s}.plugin-ext-text-input:focus{border-color:var(--accent)}.plugin-ext-file-value{font-size:12px;color:var(--text-muted)}.plugin-ext-filename{font-family:var(--font-mono);color:var(--text)}.plugin-ext-no-file{color:var(--text-muted)}.abc-soundfont-error{background:color-mix(in srgb,var(--warning) 15%,transparent);border:1px solid var(--warning);color:var(--text);font-size:12px;padding:6px 10px;border-radius:var(--radius);margin-bottom:8px;line-height:1.4}.topbar-extras{display:flex;align-items:center;gap:4px;flex-shrink:0}.topbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}.topbar-btn{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-sub);border-radius:var(--radius);padding:4px 10px;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;transition:background .12s,color .12s}.topbar-btn:hover{background:var(--bg-overlay);color:var(--text)}.topbar-btn:disabled{opacity:.4;cursor:default}.topbar-btn--icon{padding:4px 6px;color:var(--text-muted)}.topbar-btn--icon:hover{color:var(--text)}.commit-btn{padding:4px 6px;background:none;border-color:transparent;color:var(--text-muted);opacity:.25;transition:opacity .15s,color .15s,border-color .15s,background .15s}.commit-btn.dirty{opacity:1;color:var(--accent);border-color:var(--accent)}.commit-btn.dirty:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);filter:brightness(1.05)}.commit-btn:disabled{cursor:default}.hash-pill{display:flex;align-items:center;background:var(--bg-surface);border:1px solid var(--border);border-radius:20px;overflow:hidden;font-size:11px}.hash-pill.dirty{border-color:var(--warning)}.hash-pill.detached{border-color:var(--warning);border-style:dashed}.branch-label{padding:3px 8px;background:var(--bg-overlay);color:var(--accent-2);font-size:11px;font-weight:500;white-space:nowrap}.branch-label--detached{color:var(--warning);background:color-mix(in srgb,var(--warning) 15%,transparent)}.hash-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:3px 8px;font-size:11px;font-family:var(--font-mono);display:flex;align-items:center;gap:3px}.hash-btn:hover{color:var(--text)}.dirty-dot{color:var(--warning);font-size:9px}.vcs-pill-group{display:inline-flex;align-items:stretch}.vcs-pill-group .vcs-pill{border-radius:0}.vcs-pill-group .vcs-pill:first-child{border-radius:20px 0 0 20px}.vcs-pill-group .vcs-pill:last-child{border-radius:0 20px 20px 0}.vcs-pill-group .vcs-pill:not(:last-child){border-right-width:0}.vcs-pill{display:inline-flex;align-items:center;gap:5px;background:var(--bg-surface);border:1px solid var(--border);border-radius:20px;padding:3px 8px;font-size:11px;cursor:pointer;color:var(--text-sub);transition:border-color .15s,color .15s,background .15s,filter .15s;white-space:nowrap}.vcs-pill:hover{border-color:var(--text-muted);color:var(--text)}.vcs-pill.dirty{border-color:var(--warning)}.vcs-pill.commit-pill.saved{color:var(--success);border-color:color-mix(in srgb,var(--success) 45%,transparent);gap:5px}.vcs-pill.commit-pill.saved svg{flex-shrink:0}.commit-action-pill .vcs-pill-mono{opacity:.85}.tools-menu-ver{font-family:var(--font-mono);color:var(--text-sub);font-size:12px;margin-left:4px}.tb-library{flex-shrink:0;display:flex;align-items:center;background:none;border:1px solid transparent;border-radius:var(--radius);color:var(--text-muted);padding:5px;cursor:pointer;transition:color .15s,border-color .15s,background .15s;user-select:none}.tb-library:hover{color:var(--text);border-color:var(--border);background:var(--bg-surface)}#unifile-app[data-library] .tb-library{color:var(--accent)}.vcs-pill.commit-action-pill{color:var(--accent);border-color:var(--accent);border-right:1px solid color-mix(in srgb,var(--accent) 35%,transparent)!important}.vcs-pill.commit-action-pill:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);filter:brightness(1.05)}.vcs-pill.commit-caret-pill{color:var(--accent);border-color:var(--accent);padding:3px 7px}.vcs-pill.commit-caret-pill:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);filter:brightness(1.05)}.vcs-pill-text{max-width:120px;overflow:hidden;text-overflow:ellipsis}.vcs-pill-mono{font-family:var(--font-mono);letter-spacing:.02em}.vcs-pill-caret{color:var(--text-muted);font-size:9px;line-height:1}.vcs-dropdown{display:none;position:absolute;top:var(--topbar-h);width:320px;max-height:480px;background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow-y:auto;z-index:200;padding:8px 0}.vcs-dropdown.open{display:block}#tb-commit-dd{right:12px}.history-dropdown{display:none;position:absolute;top:var(--topbar-h);right:12px;width:340px;max-height:480px;background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow-y:auto;z-index:200;padding:8px 0}.history-dropdown.open{display:block}.dd-section-label{padding:6px 12px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.dd-commit-list{list-style:none;margin:0;padding:0}.dd-commit-item{padding:8px 12px;cursor:pointer;border-top:1px solid var(--border);transition:background .1s}.dd-commit-item:hover{background:var(--bg-surface)}.dd-commit-item.current{border-left:3px solid var(--accent)}.dd-commit-item.selected{background:var(--bg-surface);box-shadow:inset 3px 0 0 var(--warning, #f9e2af)}.dd-commit-meta{display:flex;align-items:center;gap:6px;margin-bottom:2px}.dd-commit-hash{font-family:var(--font-mono);font-size:11px;color:var(--accent)}.dd-commit-tag{background:var(--success);color:var(--bg);font-size:10px;padding:0 4px;border-radius:3px;font-weight:600}.dd-commit-date{font-size:11px;color:var(--text-muted);margin-left:auto}.dd-commit-msg{font-size:13px;color:var(--text)}.dd-commit-nomsg{color:var(--text-muted);font-style:italic}.dd-commit-author{font-size:11px;color:var(--text-muted);margin-top:2px}.dd-empty{padding:12px;color:var(--text-muted);font-style:italic;font-size:13px}.dd-commit-exported{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--success);border:1px solid color-mix(in srgb,var(--success) 55%,transparent);border-radius:3px;padding:0 4px}.dd-commit-exported svg{width:11px;height:11px}.dd-commit-item.exported{box-shadow:inset 3px 0 0 var(--success)}.dd-commit-item.exported.current{box-shadow:inset 3px 0 0 var(--accent)}#uf-main{display:flex;flex:1;overflow:hidden;position:relative}#uf-editor-wrap,#uf-preview-wrap{display:flex;flex-direction:column;overflow:hidden;flex:1 1 50%;min-width:0;position:relative}.uf-fab,.uf-fab-targets,.uf-fab-grid,.uf-fab-scrim,.uf-fab-tip,#uf-commit-log,#uf-library{display:none}#unifile-app[data-library]:not([data-mobile-pane]) #uf-main{padding-left:var(--uf-library-w, 300px)}#unifile-app[data-library]:not([data-mobile-pane]) #uf-library{display:flex;flex-direction:column;position:absolute;top:0;bottom:0;left:0;width:var(--uf-library-w, 300px);z-index:30;background:var(--bg);border-right:1px solid var(--border);overflow:hidden}.lib{display:flex;flex-direction:column;min-height:0;flex:1;font-family:var(--font-ui)}.lib-head{display:flex;align-items:center;gap:8px;padding:10px 12px 8px;border-bottom:1px solid var(--border);flex-shrink:0}.lib-back{width:34px;height:34px;border-radius:999px;border:none;padding:0;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);color:var(--text-sub);cursor:pointer;-webkit-tap-highlight-color:transparent}.lib-back svg{width:18px;height:18px}.lib-title{flex:1;min-width:0;font-weight:600;font-size:15px;color:var(--text);display:flex;align-items:center;gap:8px}.lib-mark{font-family:var(--font-mono);color:var(--text-sub);white-space:pre;font-weight:500}.lib-new{border:1px solid var(--accent);background:var(--accent);color:var(--bg);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;cursor:pointer;font-family:var(--font-ui)}.lib-new:active{filter:brightness(.92)}.lib-search{position:relative;display:flex;align-items:center;flex-shrink:0;margin:0 10px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg)}.lib-search:focus-within{border-color:var(--accent)}.lib-search-icon{display:flex;padding:0 0 0 9px;color:var(--text-muted)}.lib-search-icon svg{width:14px;height:14px}.lib-search-input{flex:1;min-width:0;border:none;background:none;outline:none;font-family:var(--font-ui);font-size:16px;color:var(--text);padding:7px 8px;-webkit-appearance:none;appearance:none}.lib-search-input::-webkit-search-cancel-button{display:none}.lib-search-input::placeholder{color:var(--text-muted)}.lib-search-clear{display:none;border:none;background:none;color:var(--text-muted);font-size:18px;line-height:1;padding:0 10px;cursor:pointer;align-self:stretch}.lib-search.has-query .lib-search-clear{display:block}.lib-search-clear:hover{color:var(--text)}.lib-list{list-style:none;margin:0;padding:4px 0;overflow-y:auto;overscroll-behavior:contain;flex:1;min-height:0}.lib-item{position:relative;display:flex;align-items:stretch;border-bottom:1px solid var(--border)}.lib-item.current{background:color-mix(in srgb,var(--accent) 9%,transparent);box-shadow:inset 3px 0 0 var(--accent)}.lib-open{flex:1;min-width:0;text-align:left;background:none;border:none;color:inherit;padding:10px 6px 10px 14px;cursor:pointer;display:flex;flex-direction:column;gap:3px;font-family:var(--font-ui);-webkit-tap-highlight-color:transparent}.lib-open:active{background:var(--bg-surface)}.lib-item-title{font-size:15px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:6px}.lib-dot{flex:0 0 auto;width:8px;height:8px;border-radius:999px;background:var(--pending)}.lib-item-excerpt{font-size:13px;color:var(--text-sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono)}.lib-item-meta{display:flex;flex-wrap:wrap;gap:5px;font-size:11px;color:var(--text-muted)}.lib-file{font-family:var(--font-mono);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-file.saved{color:var(--success)}.lib-file.stale{color:var(--warning)}.lib-file.none{color:var(--text-muted);font-style:italic}.lib-item{flex-wrap:wrap}.lib-hits{list-style:none;margin:0;padding:0 0 6px;flex:1 1 100%}.lib-hit{display:flex;gap:8px;align-items:baseline;padding:3px 14px 3px 22px;cursor:pointer;font-family:var(--font-mono);font-size:12px;color:var(--text-sub);line-height:1.4}.lib-hit:hover,.lib-hit:focus-visible{background:var(--bg-surface);color:var(--text);outline:none}.lib-hit-line{flex:0 0 auto;min-width:2ch;text-align:right;color:var(--text-muted);font-size:11px}.lib-hit-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-hit mark{background:color-mix(in srgb,var(--accent) 28%,transparent);color:var(--text);border-radius:2px;padding:0 1px}.lib-more{flex:0 0 44px;border:none;background:none;color:var(--text-muted);font-size:20px;cursor:pointer;-webkit-tap-highlight-color:transparent}.lib-more:hover,.lib-more[aria-expanded=true]{color:var(--text)}.lib-item-menu{position:absolute;right:10px;top:42px;z-index:5;display:flex;flex-direction:column;min-width:160px;background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:4px 0}.lib-item-menu button{text-align:left;background:none;border:none;color:var(--text);font-size:13px;padding:8px 14px;cursor:pointer;font-family:var(--font-ui)}.lib-item-menu button:hover{background:var(--bg-surface)}.lib-item-menu button.danger{color:var(--error, #e5484d)}.lib-empty{padding:24px 14px;color:var(--text-muted);font-style:italic;font-size:13px}.lib-foot{flex-shrink:0;padding:10px 14px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border)}.lib-link{background:none;border:none;color:var(--accent);font-size:13px;cursor:pointer;padding:4px 0;font-family:var(--font-ui)}.lib-note{margin:6px 0 0;font-size:11px;line-height:1.45;color:var(--text-muted)}.lib-note code{font-family:var(--font-mono);font-size:10.5px}@media (max-width: 640px),(orientation: landscape) and (max-height: 500px) and (pointer: coarse){#uf-main{overflow:hidden;position:relative}#uf-transport{display:none!important}#uf-library,#uf-commit-log,#uf-editor-wrap,#uf-preview-wrap{display:none!important;flex:1 1 100%!important;width:100%;min-width:0}#unifile-app[data-mobile-pane=library] #uf-library,#unifile-app[data-mobile-pane=history] #uf-commit-log,#unifile-app[data-mobile-pane=editor] #uf-editor-wrap,#unifile-app[data-mobile-pane=render] #uf-preview-wrap{display:flex!important}#uf-library{position:static;flex-direction:column;border:none;box-shadow:none;animation:none;overflow:hidden;background:var(--bg)}#uf-library .lib-back{display:none}#uf-commit-log{flex-direction:column;overflow-y:auto;overscroll-behavior:contain;background:var(--bg)}#uf-divider{display:none!important}#uf-pane-switch{display:flex;align-items:center;gap:10px;flex-shrink:0;order:-1;height:56px;padding:0 10px;position:relative;z-index:60;background:var(--bg);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#unifile-app[data-editing] #uf-pane-switch{display:none}.ps-circle{flex:0 0 auto;position:relative;width:42px;height:42px;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:999px;background:var(--bg-surface);color:var(--text-sub);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s ease,color .15s ease,transform .1s ease}.ps-circle svg{width:20px;height:20px;display:block}.ps-circle:active{transform:scale(.94)}.ps-circle.active{background:var(--accent);border-color:var(--accent);color:var(--bg)}.ps-dirty-dot{flex:0 0 auto;width:8px;height:8px;border-radius:999px;background:var(--pending)}.ps-dirty-dot[hidden]{display:none}.ps-title-btn{flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:center;gap:7px;height:42px;padding:0 4px;background:none;border:none;color:var(--text);font-family:var(--font-ui);font-size:16px;font-weight:500;cursor:pointer;-webkit-tap-highlight-color:transparent}.ps-mark{flex:0 0 auto;font-family:var(--font-mono);font-size:15px;color:var(--text-sub);white-space:pre}.ps-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ps-caret{flex:0 0 auto;width:24px;height:24px;border-radius:999px;background:var(--bg-surface);color:var(--text-sub);display:inline-flex;align-items:center;justify-content:center;transition:transform .15s ease}.ps-caret svg{width:14px;height:14px;display:block}.ps-title-btn.open .ps-caret{transform:rotate(180deg)}.ps-diff-title{font-family:var(--font-mono);font-size:13px;font-weight:500}.ps-diff-role{color:var(--accent);font-weight:700}.ps-diff-arrow{color:var(--text-muted)}.ps-menu{display:none;position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:2px;width:min(92vw,380px);background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 8px 26px #0006;padding:4px;z-index:60;max-height:min(72vh,calc(var(--app-height, 100vh) - 80px));overflow-y:auto;overscroll-behavior:contain}.ps-menu.open{display:block}.ps-menu-label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:8px 10px 3px}.ps-menu-label:not(:first-child){border-top:1px solid var(--border);margin-top:4px}.ps-menu-sublabel{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);padding:5px 10px 2px}.ps-menu-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;color:var(--text);font-family:var(--font-ui);font-size:15px;padding:10px;border-radius:var(--radius-sm);cursor:pointer;-webkit-tap-highlight-color:transparent}.ps-menu-item:active,.ps-menu-item.current{background:color-mix(in srgb,var(--accent) 14%,transparent)}.ps-menu-item.disabled{opacity:.4;pointer-events:none}.ps-menu-ic{flex:0 0 auto;width:20px;text-align:center;color:var(--accent);font-family:var(--font-mono);font-size:13px;white-space:pre}.ps-menu-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ps-menu-hash{flex:0 0 auto;font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.ps-menu-empty{padding:10px;color:var(--text-muted);font-size:13px;font-style:italic}.uf-fab{display:flex;align-items:center;justify-content:center;position:absolute;z-index:70;width:50px;height:50px;padding:0;border:none;border-radius:999px;background:var(--accent);color:var(--bg);font-family:var(--font-mono);font-size:16px;font-weight:600;letter-spacing:-.02em;box-shadow:0 3px 12px #0006;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.uf-fab-mark{white-space:pre}.uf-fab[hidden]{display:none}.uf-fab.pressed{transform:scale(.94)}.uf-fab.playing{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 30%,transparent),0 3px 12px #0006}.uf-fab.dragging{cursor:grabbing;transform:scale(1.08);box-shadow:0 8px 24px #00000080;right:auto!important;bottom:auto!important}.uf-fab.snapped{animation:uf-fab-snap .28s ease}@keyframes uf-fab-snap{0%{transform:scale(1.12)}60%{transform:scale(.96)}to{transform:scale(1)}}.uf-fab[data-corner=br],.uf-fab-target[data-corner=br]{right:calc(12px + env(safe-area-inset-right,0px));bottom:calc(12px + env(safe-area-inset-bottom,0px))}.uf-fab[data-corner=bl],.uf-fab-target[data-corner=bl]{left:calc(12px + env(safe-area-inset-left,0px));bottom:calc(12px + env(safe-area-inset-bottom,0px))}.uf-fab[data-corner=tr],.uf-fab-target[data-corner=tr]{right:calc(12px + env(safe-area-inset-right,0px));top:calc(var(--uf-fab-top, 0px) + 10px)}.uf-fab[data-corner=tl],.uf-fab-target[data-corner=tl]{left:calc(12px + env(safe-area-inset-left,0px));top:calc(var(--uf-fab-top, 0px) + 10px)}.uf-fab-targets{display:none;position:absolute;inset:0;pointer-events:none;z-index:69}#unifile-app[data-fab-drag] .uf-fab-targets{display:block}.uf-fab-target{position:absolute;width:50px;height:50px;border-radius:999px;border:2px dashed color-mix(in srgb,var(--accent) 60%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent);transition:transform .12s ease,background .12s ease}.uf-fab-target.near{transform:scale(1.25);border-style:solid;background:color-mix(in srgb,var(--accent) 28%,transparent)}.uf-fab-scrim{display:none;position:absolute;inset:0;z-index:71;background:#00000047}#unifile-app[data-fab-open] .uf-fab-scrim{display:block}#unifile-app[data-fab-open] .uf-fab{z-index:73}.uf-fab-grid{display:none;position:absolute;z-index:72;width:min(calc(100% - 24px),400px);max-height:calc(var(--app-height, 100vh) - 150px);overflow-y:auto;overscroll-behavior:contain;background:var(--bg-alt);border:1px solid var(--border);border-radius:14px;box-shadow:0 12px 36px #00000073;padding:10px}#unifile-app[data-fab-open] .uf-fab-grid{display:block}.uf-fab-grid[data-corner=br]{right:12px;bottom:calc(72px + env(safe-area-inset-bottom,0px))}.uf-fab-grid[data-corner=bl]{left:12px;bottom:calc(72px + env(safe-area-inset-bottom,0px))}.uf-fab-grid[data-corner=tr]{right:12px;top:calc(var(--uf-fab-top, 0px) + 70px)}.uf-fab-grid[data-corner=tl]{left:12px;top:calc(var(--uf-fab-top, 0px) + 70px)}.uf-fab-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.uf-fab-tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;min-height:78px;padding:9px 4px 6px;border-radius:10px;background:var(--bg-surface);border:1px solid transparent;color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.uf-fab-tile:active{background:color-mix(in srgb,var(--accent) 14%,transparent)}.uf-fab-tile.primary{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.uf-fab-tile.disabled{opacity:.4;pointer-events:none}.t-mark{font-family:var(--font-mono);font-size:17px;font-weight:600;color:var(--accent);white-space:pre;line-height:1.2}.t-label{font-family:var(--font-ui);font-size:11px;line-height:1.2;text-align:center;color:var(--text-sub);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.t-star{position:absolute;top:0;right:0;width:26px;height:26px;padding:0;border:none;background:none;color:var(--text-muted);font-size:13px;cursor:pointer;-webkit-tap-highlight-color:transparent}.uf-fab-tile.primary .t-star{color:var(--accent)}.uf-fab-tile.current{border-color:var(--accent)}.uf-fab-tile.current .t-mark{color:var(--accent)}.uf-fab-glabel{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:0 2px 6px}.uf-fab-hint{margin-top:10px;padding-top:8px;border-top:1px solid var(--border);display:flex;align-items:center;gap:10px}.uf-fab-hint-text{flex:1;font-size:12px;line-height:1.35;color:var(--text-muted)}.uf-fab-hint-text b{color:var(--text-sub);font-weight:600}.uf-fab-corners{flex:0 0 auto;display:grid;grid-template-columns:1fr 1fr;gap:3px;width:46px;height:46px;padding:3px;border-radius:8px;background:var(--bg-surface)}.uf-fab-cbtn{padding:0;border:1px dashed var(--text-muted);border-radius:4px;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.uf-fab-cbtn.current{background:var(--accent);border-color:var(--accent)}.uf-fab-tip{display:block;position:absolute;z-index:70;right:calc(70px + env(safe-area-inset-right,0px));bottom:calc(22px + env(safe-area-inset-bottom,0px));padding:6px 10px;border-radius:8px;background:var(--bg-alt);border:1px solid var(--border);color:var(--text-sub);font-family:var(--font-ui);font-size:12px;white-space:nowrap;box-shadow:0 2px 8px #0000004d;pointer-events:none;animation:uf-fab-tip-in .3s ease}@keyframes uf-fab-tip-in{0%{opacity:0;transform:translate(6px)}to{opacity:1;transform:none}}#unifile-app[data-diff] #uf-diff{display:none!important}#unifile-app[data-diff][data-mobile-pane=history] #uf-commit-log,#unifile-app[data-diff][data-mobile-pane=editor] #uf-diff-mid,#unifile-app[data-diff][data-mobile-pane=render] #uf-diff-right{display:flex!important;flex-direction:column;flex:1 1 100%;width:100%;min-width:0}#unifile-app{padding-top:env(safe-area-inset-top,0px);background:var(--bg)}#uf-site-nav{order:-3}#uf-topbar{display:none}#uf-editor-wrap{--editor-font-size: 17px;--editor-pad-x: 18px}#uf-main{min-height:0}#uf-bottom{display:none;flex-shrink:0;background:var(--bg-alt);box-shadow:0 -1px 0 var(--border);padding-bottom:env(safe-area-inset-bottom,0px)}#unifile-app[data-diff] #uf-bottom{display:block}.topbar-title,.pf-midi-select,.usn-input,input,select,textarea{font-size:16px}}@media (orientation: landscape) and (max-height: 500px) and (pointer: coarse){#uf-main{padding-right:0}#uf-pane-switch{height:46px;padding:0 calc(8px + env(safe-area-inset-right,0px)) 0 calc(8px + env(safe-area-inset-left,0px))}.ps-circle{width:36px;height:36px}.ps-circle svg{width:18px;height:18px}.ps-title-btn{height:36px;font-size:15px}#unifile-app[data-piano-roll] #uf-pane-switch{display:none}.uf-fab-grid{width:min(calc(100% - 24px),640px);max-height:calc(var(--app-height, 100vh) - 84px);padding:8px}.uf-fab-grid[data-corner=br],.uf-fab-grid[data-corner=bl]{bottom:calc(66px + env(safe-area-inset-bottom,0px))}.uf-fab-grid[data-corner=tr],.uf-fab-grid[data-corner=tl]{top:calc(var(--uf-fab-top, 0px) + 64px)}.uf-fab-tiles{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.uf-fab-tile{min-height:62px;padding:6px 3px 4px;gap:2px}.t-mark{font-size:15px}.uf-fab-hint{margin-top:6px;padding-top:6px}}.commit-log-pane{padding:10px 12px 28px}.commit-log-pane .dd-commit-item{cursor:pointer}.commit-log-pending{display:flex;gap:10px;padding:10px 10px 14px;margin-bottom:4px;border:1px solid color-mix(in srgb,var(--pending) 45%,transparent);border-left:3px solid var(--pending);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--pending) 9%,transparent)}.commit-log-pending .clp-graph{flex:0 0 auto;display:flex;justify-content:center;width:14px;padding-top:4px}.commit-log-pending .clp-node{width:11px;height:11px;border-radius:999px;border:2px dashed var(--pending);background:transparent}.commit-log-pending .clp-body{flex:1;min-width:0}.commit-log-pending .clp-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--pending);margin-bottom:6px}.clp-msg{width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-ui);font-size:16px;line-height:1.4;padding:7px 9px;resize:none;overflow:hidden;max-height:140px;white-space:pre-wrap;overflow-wrap:anywhere}.clp-row{display:flex;align-items:center;gap:10px;margin-top:6px}.clp-version{flex:1;min-width:0;font-size:13px;color:var(--text-sub);white-space:nowrap}.clp-version b{font-family:var(--font-mono);color:var(--text);font-weight:600}.clp-major-label{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text-sub);cursor:pointer;user-select:none;white-space:nowrap}.clp-major-label input{margin:0;accent-color:var(--accent)}.clp-commit{flex:0 0 auto;background:var(--accent);border:none;border-radius:var(--radius-sm);color:var(--bg);font-family:var(--font-ui);font-size:14px;font-weight:600;padding:8px 16px;cursor:pointer;-webkit-tap-highlight-color:transparent}.clp-commit:active{filter:brightness(.92)}.clp-commit:disabled{opacity:.5;cursor:default}.pane-divider{flex-shrink:0;width:8px;position:relative;z-index:10;cursor:default;overflow:visible}.pane-divider:before{content:"";position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);width:6px;background:var(--border);transition:width .15s ease,background .15s ease;pointer-events:none}.pane-divider:hover:before{width:18px;background:var(--bg-surface)}.pane-divider:after{content:"";position:absolute;inset:0 -4px}.pane-divider[data-mode=split]{cursor:col-resize}.pane-divider[data-mode=editor],.pane-divider[data-mode=preview]{cursor:pointer}.divider-btn{position:absolute;left:50%;transform:translate(-50%);width:20px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);border:1px solid var(--border);border-radius:3px;color:var(--text-sub);padding:0;cursor:pointer;opacity:0;transition:opacity .15s,color .12s,background .12s,border-color .12s;pointer-events:none;z-index:1}.divider-btn:hover{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--bg-surface))}.pane-divider:hover .divider-btn{opacity:1;pointer-events:auto}.divider-to-preview{top:10px}.divider-grip{top:50%;transform:translate(-50%) translateY(-50%)}.divider-to-editor{bottom:10px}.divider-to-split{top:50%;transform:translate(-50%) translateY(-50%)}.divider-grip{position:absolute;left:50%;display:flex;flex-direction:column;gap:4px;pointer-events:none;opacity:0;transition:opacity .15s}.pane-divider:hover .divider-grip{opacity:1}.divider-grip span{display:block;width:3px;height:3px;background:var(--text-muted);border-radius:50%}.pane-divider[data-mode=split] .divider-to-split{display:none}.pane-divider:not([data-mode=split]) .divider-to-preview,.pane-divider:not([data-mode=split]) .divider-grip,.pane-divider:not([data-mode=split]) .divider-to-editor{display:none}.divider-to-preview svg{transform:scaleX(-1)}.pane-divider[data-mode=editor] .divider-to-split svg{transform:scaleX(-1)}.divider-orient{top:40px}.pane-divider:not([data-mode=split]) .divider-orient{display:none}#unifile-app[data-split-orientation=horizontal] #uf-main{flex-direction:column}#unifile-app[data-split-orientation=horizontal] #uf-preview-wrap{order:1;min-height:0}#unifile-app[data-split-orientation=horizontal] #uf-divider{order:2}#unifile-app[data-split-orientation=horizontal] #uf-editor-wrap{order:3;min-height:0}#unifile-app[data-split-orientation=horizontal] .preview-pane{border-left:none}#unifile-app[data-split-orientation=horizontal] .pane-divider{width:auto;height:8px}#unifile-app[data-split-orientation=horizontal] .pane-divider:before{inset:50% 0 auto;width:auto;height:6px;transform:translateY(-50%);transition:height .15s ease,background .15s ease}#unifile-app[data-split-orientation=horizontal] .pane-divider:hover:before{width:auto;height:18px}#unifile-app[data-split-orientation=horizontal] .pane-divider:after{inset:-4px 0}#unifile-app[data-split-orientation=horizontal] .pane-divider[data-mode=split]{cursor:row-resize}#unifile-app[data-split-orientation=horizontal] .divider-btn{left:auto;top:50%;bottom:auto;transform:translateY(-50%)}#unifile-app[data-split-orientation=horizontal] .divider-to-preview{left:10px}#unifile-app[data-split-orientation=horizontal] .divider-orient{left:40px}#unifile-app[data-split-orientation=horizontal] .divider-to-editor{right:10px}#unifile-app[data-split-orientation=horizontal] .divider-grip,#unifile-app[data-split-orientation=horizontal] .divider-to-split{left:50%;top:50%;transform:translate(-50%,-50%)}#unifile-app[data-split-orientation=horizontal] .divider-grip{flex-direction:row}#unifile-app[data-split-orientation=horizontal] .divider-to-preview svg{transform:rotate(90deg)}#unifile-app[data-split-orientation=horizontal] .divider-to-editor svg{transform:rotate(-90deg)}#unifile-app[data-split-orientation=horizontal] .pane-divider[data-mode=editor] .divider-to-split svg{transform:rotate(90deg)}#unifile-app[data-split-orientation=horizontal] .pane-divider[data-mode=preview] .divider-to-split svg{transform:rotate(-90deg)}@media (max-width: 640px){.pane-divider[data-mode=split] .divider-to-preview,.pane-divider[data-mode=split] .divider-grip,.pane-divider[data-mode=split] .divider-to-editor{display:none}.pane-divider[data-mode=split] .divider-to-split{display:flex!important}.pane-divider[data-mode=split]{cursor:pointer}}#uf-editor-wrap .cm-editor{flex:1;min-height:0;overflow:hidden;outline:none}#uf-editor-wrap .cm-scroller{overflow:auto;height:100%;overscroll-behavior:contain}.preview-pane{position:relative;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;background:var(--bg);border-left:1px solid var(--border);container-type:size}.preview-content{padding:24px 32px;max-width:800px;margin:0 auto}.preview-content .abc2svg-wrap,.preview-content .abc-preview-wrap{width:clamp(100%,100cqw - 64px,1100px);margin-left:calc((100% - clamp(100%,100cqw - 64px,1100px))/2)}@media (max-width: 640px),(orientation: landscape) and (max-height: 500px) and (pointer: coarse){.preview-content .abc2svg-wrap,.preview-content .abc-preview-wrap{width:clamp(100%,100cqw - 24px,1100px);margin-left:calc((100% - clamp(100%,100cqw - 24px,1100px))/2)}}.preview-empty{color:var(--text-muted);font-style:italic;margin-top:2rem;text-align:center}.abc-derived-title{text-align:center;font-family:var(--font-ui);font-size:20px;font-weight:600;color:var(--text);padding:8px 12px 0}.abc-preview-wrap{padding:16px;border-radius:var(--radius);position:relative}.abc-preview-wrap svg{max-width:100%}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .abc-preview-wrap svg:not(.uf-abc-overlay-svg){color:#000;filter:invert(1) hue-rotate(180deg)}}[data-theme=dark] .abc-preview-wrap svg:not(.uf-abc-overlay-svg){color:#000;filter:invert(1) hue-rotate(180deg)}[data-theme=light] .abc-preview-wrap svg:not(.uf-abc-overlay-svg){filter:none}.uf-abc-overlay-svg{position:absolute;pointer-events:none;overflow:visible}.uf-abc-cursor{stroke:var(--accent);stroke-width:1.25;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.uf-abc-range-band{fill:var(--accent);opacity:.13}.uf-abc-range-edge{fill:none;stroke:var(--accent);stroke-width:2;opacity:.85;vector-effect:non-scaling-stroke}.abc2svg-wrap{position:relative;color:var(--fg)}.abc2svg-wrap svg{max-width:100%}.abc2svg-wrap rect.abcr{fill:var(--accent);fill-opacity:0;cursor:pointer}.abc2svg-wrap rect.abcd{fill-opacity:0;pointer-events:none}.abc2svg-wrap rect.abcr.uf-range{fill-opacity:.13}.abc2svg-wrap{--uf-hl: #ff0000;--uf-play: #00c800}[data-theme=light] .abc2svg-wrap{--uf-hl: #d20f39;--uf-play: #40a02b}.abc2svg-wrap svg .uf-hl{fill:var(--uf-hl)!important;color:var(--uf-hl);filter:drop-shadow(0 0 2px var(--uf-hl)) drop-shadow(0 0 6px var(--uf-hl))}.abc2svg-wrap svg .uf-play{fill:var(--uf-play)!important;color:var(--uf-play);filter:drop-shadow(0 0 2px var(--uf-play)) drop-shadow(0 0 6px var(--uf-play))}.abc2svg-wrap svg :is(tspan,text).uf-hl{paint-order:stroke;stroke:var(--uf-hl);stroke-opacity:.5;stroke-width:3px;stroke-linejoin:round}.abc2svg-wrap svg :is(tspan,text).uf-play{paint-order:stroke;stroke:var(--uf-play);stroke-opacity:.5;stroke-width:3px;stroke-linejoin:round}.abc2svg-wrap svg rect.abcr.uf-hl{fill-opacity:.3;filter:none}.abc2svg-wrap svg rect.abcr.uf-play{fill-opacity:.45;filter:none}.abc2svg-wrap svg .uf-muted{opacity:.3}.abc2svg-wrap svg rect.abcr.uf-muted{fill:var(--bg);fill-opacity:.65;opacity:1}.abc2svg-wrap svg .uf-staff-veil{fill:var(--bg);fill-opacity:.72;pointer-events:none}.abc2svg-wrap feFlood{flood-color:var(--bg)}.uf-a2s-cursor{position:absolute;width:2px;border-radius:1px;background:var(--accent);opacity:.8;pointer-events:none;z-index:2}.abc-preview-wrap svg g[class*=abcjs-note],.abc-preview-wrap svg g[class*=abcjs-rest],.abc-preview-wrap svg g[class*=abcjs-chord]{cursor:pointer}.abc-preview-wrap svg g.abcjs-note_selected{filter:drop-shadow(0 0 5px #ff0000)}.abc-preview-wrap svg g.abc-voice-muted{opacity:.3}.abc-playing.abc-preview-wrap svg g.abcjs-note_playing path,.abc-playing.abc-preview-wrap svg g.abcjs-note_playing rect{fill:#00c800!important}.abc-playing.abc-preview-wrap svg g.abcjs-note_playing{filter:drop-shadow(0 0 5px #00c800)}[data-theme=light] .abc-playing.abc-preview-wrap svg g.abcjs-note_playing path,[data-theme=light] .abc-playing.abc-preview-wrap svg g.abcjs-note_playing rect{fill:#40a02b!important}[data-theme=light] .abc-playing.abc-preview-wrap svg g.abcjs-note_playing{filter:drop-shadow(0 0 5px #40a02b)}@media (prefers-color-scheme: light){:root:not([data-theme]) .abc-playing.abc-preview-wrap svg g.abcjs-note_playing path,:root:not([data-theme]) .abc-playing.abc-preview-wrap svg g.abcjs-note_playing rect{fill:#40a02b!important}:root:not([data-theme]) .abc-playing.abc-preview-wrap svg g.abcjs-note_playing{filter:drop-shadow(0 0 5px #40a02b)}}.preview-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;margin:3rem auto}@keyframes spin{to{transform:rotate(360deg)}}.preview-version-warn{padding:5px 10px;margin-bottom:8px;background:#f9e2af1f;border-left:3px solid var(--warning, #f9e2af);border-radius:0 4px 4px 0;font-size:12px;color:var(--warning, #f9e2af);font-family:ui-monospace,monospace}.preview-content.slides-mode{padding:28px 20px;max-width:none}.uf-slide-deck{display:flex;flex-direction:column;align-items:center;gap:28px}.uf-slide{position:relative;background:#fff;color:#1e1e2e;border-radius:4px;box-shadow:0 4px 28px #0006,0 1px 4px #00000026;overflow:hidden;transform-origin:top center}.uf-slide-frame{position:absolute;inset:0;padding:48px 56px;box-sizing:border-box;overflow:hidden;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:clamp(13px,1.6vw,18px);line-height:1.55;display:flex;flex-direction:column}.uf-slide-frame h1,.uf-slide-frame h2,.uf-slide-frame h3,.uf-slide-frame h4{color:#1e1e2e;margin-top:0;line-height:1.2}.uf-slide-frame h1{font-size:2em;margin-bottom:.3em}.uf-slide-frame h2{font-size:1.5em;margin-bottom:.25em}.uf-slide-frame h3{font-size:1.2em;margin-bottom:.2em}.uf-slide-frame p{color:#2d2d44;margin:.5em 0}.uf-slide-frame a{color:#4a86e8}.uf-slide-frame ul,.uf-slide-frame ol{padding-left:1.4em;margin:.4em 0}.uf-slide-frame li{margin:.25em 0;color:#2d2d44}.uf-slide-frame code{background:#f0f0f0;border-radius:3px;padding:.1em .35em;font-size:.85em;color:#1e1e2e}.uf-slide-frame pre{background:#f5f5f5;border:1px solid #e0e0e0;border-radius:4px;padding:.6em .8em;overflow:auto}.uf-slide-frame pre code{background:none;padding:0}.uf-slide-frame blockquote{border-left:3px solid #89b4fa;margin-left:0;padding-left:1em;color:#555}.uf-slide-frame table{border-collapse:collapse;width:100%}.uf-slide-frame th,.uf-slide-frame td{border:1px solid #ddd;padding:.4em .6em}.uf-slide-frame th{background:#f0f0f0;font-weight:600}.uf-slide-frame img{display:block;max-width:100%}.uf-slide-frame img:not([style]){max-height:380px;object-fit:contain}.uf-slide-frame .uf-slide-part.uf-dsl-markdown:only-child:has(>h1:first-child){flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.uf-slide-frame .uf-slide-part.uf-dsl-markdown:only-child:has(>h1:first-child) img:not([style]){max-height:100%}.uf-slide-frame .uf-slide-part.uf-dsl-markdown:only-child:not(:has(h1,h2,h3,h4)){flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center}.uf-slide-frame .uf-slide-part.uf-dsl-markdown:only-child:not(:has(h1,h2,h3,h4)) img:not([style]){max-height:100%}.uf-slide-frame h2:first-child{padding-bottom:.3em;border-bottom:2px solid currentColor;opacity:.85;margin-bottom:.5em}.uf-slide-part{margin:.6em 0;flex:0 1 auto;min-height:0}.uf-slide-part:first-child{margin-top:0}.uf-slide-part:last-child{margin-bottom:0}.uf-slide-part:not(.uf-dsl-markdown){flex:1 1 0;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.uf-slide-part:not(.uf-dsl-markdown) svg{max-width:100%;max-height:100%;width:100%;height:auto;display:block}.uf-slide-part:not(.uf-dsl-markdown)>:not(svg){max-width:100%;max-height:100%;width:100%;overflow:hidden}.uf-doc-part svg{max-width:100%;width:100%;height:auto;display:block}.uf-webpage{padding:0}.uf-webpage-section{padding:2em 0}.uf-webpage-section:first-child{padding-top:0}.uf-webpage-section-break{position:relative;margin:0;height:3px;background:linear-gradient(90deg,transparent 0%,var(--accent, #89b4fa) 20%,var(--accent, #89b4fa) 80%,transparent 100%);opacity:.45}.uf-webpage-section-break:before{content:"\a7";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--bg-base, #1e1e2e);color:var(--accent, #89b4fa);font-size:.75em;padding:0 .5em;opacity:.8}.uf-web-part{margin:1em 0}.uf-web-part:first-child{margin-top:0}.uf-web-part:last-child{margin-bottom:0}.uf-mmd-stage{position:relative;overflow:hidden;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;border-radius:var(--radius);height:60vh}.uf-mmd-stage.is-dragging{cursor:grabbing}.uf-mmd-stage>svg{display:block;width:100%!important;height:100%!important;max-width:none!important}.uf-mmd-stage.is-sole{height:calc(100cqh - 48px);width:max(100%,100cqw - 64px);margin-left:calc((100% - max(100%,100cqw - 64px))/2)}.uf-mmd-zoomctl{position:absolute;right:10px;bottom:10px;display:flex;align-items:stretch;gap:1px;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--border);opacity:.6;transition:opacity .15s;z-index:1}.uf-mmd-stage:hover .uf-mmd-zoomctl,.uf-mmd-zoomctl:focus-within{opacity:1}.uf-mmd-zoomctl button,.uf-mmd-zoomctl .uf-mmd-zoom{appearance:none;border:0;margin:0;min-width:30px;height:28px;padding:0 6px;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);color:var(--text-sub);font:500 13px/1 var(--font-mono);cursor:pointer;-webkit-tap-highlight-color:transparent}.uf-mmd-zoomctl .uf-mmd-zoom{cursor:default;font-size:11px;min-width:42px}.uf-mmd-zoomctl button:hover{color:var(--accent)}.uf-mmd-zoomctl button:active{background:var(--bg-overlay)}@media (pointer: coarse){.uf-mmd-zoomctl{opacity:1}.uf-mmd-zoomctl button,.uf-mmd-zoomctl .uf-mmd-zoom{height:36px;min-width:38px}}@media (max-width: 640px),(orientation: landscape) and (max-height: 500px) and (pointer: coarse){.uf-mmd-zoomctl{inset:10px auto auto 10px}}.uf-slide-frame .uf-dsl-mermaid svg rect.background,.uf-doc-page .uf-dsl-mermaid svg rect.background{fill:transparent!important}.uf-slide-frame .abc-preview-wrap svg,.uf-doc-page .abc-preview-wrap svg{filter:none!important}.uf-slide-num{position:absolute;bottom:8px;right:12px;font-size:10px;font-family:var(--font-mono);color:#00000040;pointer-events:none;user-select:none}.uf-slide-deck.theme-dark .uf-slide{background:#1e1e2e;color:#cdd6f4}.uf-slide-deck.theme-dark .uf-slide-frame h1,.uf-slide-deck.theme-dark .uf-slide-frame h2,.uf-slide-deck.theme-dark .uf-slide-frame h3,.uf-slide-deck.theme-dark .uf-slide-frame h4{color:#cdd6f4}.uf-slide-deck.theme-dark .uf-slide-frame p,.uf-slide-deck.theme-dark .uf-slide-frame li{color:#a6adc8}.uf-slide-deck.theme-dark .uf-slide-frame a{color:#89b4fa}.uf-slide-deck.theme-dark .uf-slide-frame code{background:#313244;color:#cdd6f4}.uf-slide-deck.theme-dark .uf-slide-frame pre{background:#181825;border-color:#45475a}.uf-slide-deck.theme-dark .uf-slide-frame blockquote{border-left-color:#89b4fa;color:#a6adc8}.uf-slide-deck.theme-dark .uf-slide-frame th{background:#313244;color:#cdd6f4}.uf-slide-deck.theme-dark .uf-slide-frame td{border-color:#45475a}.uf-slide-deck.theme-dark .uf-slide-num{color:#ffffff40}.uf-slide-deck.theme-dark .uf-slide{color-scheme:dark}.uf-slide-deck.theme-ocean .uf-slide{background:#eff6ff;color:#1e3a5f}.uf-slide-deck.theme-ocean .uf-slide-frame h1,.uf-slide-deck.theme-ocean .uf-slide-frame h2,.uf-slide-deck.theme-ocean .uf-slide-frame h3,.uf-slide-deck.theme-ocean .uf-slide-frame h4{color:#1e40af}.uf-slide-deck.theme-ocean .uf-slide-frame p,.uf-slide-deck.theme-ocean .uf-slide-frame li{color:#1e3a5f}.uf-slide-deck.theme-ocean .uf-slide-frame a{color:#2563eb}.uf-slide-deck.theme-ocean .uf-slide-frame code{background:#dbeafe;color:#1e40af}.uf-slide-deck.theme-ocean .uf-slide-frame pre{background:#dbeafe;border-color:#93c5fd}.uf-slide-deck.theme-ocean .uf-slide-frame blockquote{border-left-color:#3b82f6;color:#1e40af}.uf-slide-deck.theme-ocean .uf-slide-frame th{background:#bfdbfe;color:#1e3a8a}.uf-slide-deck.theme-ocean .uf-slide-frame td{border-color:#93c5fd}.uf-slide-deck.theme-warm .uf-slide{background:#fffbeb;color:#451a03}.uf-slide-deck.theme-warm .uf-slide-frame h1,.uf-slide-deck.theme-warm .uf-slide-frame h2,.uf-slide-deck.theme-warm .uf-slide-frame h3,.uf-slide-deck.theme-warm .uf-slide-frame h4{color:#92400e}.uf-slide-deck.theme-warm .uf-slide-frame p,.uf-slide-deck.theme-warm .uf-slide-frame li{color:#451a03}.uf-slide-deck.theme-warm .uf-slide-frame a{color:#b45309}.uf-slide-deck.theme-warm .uf-slide-frame code{background:#fef3c7;color:#92400e}.uf-slide-deck.theme-warm .uf-slide-frame pre{background:#fef3c7;border-color:#fcd34d}.uf-slide-deck.theme-warm .uf-slide-frame blockquote{border-left-color:#f59e0b;color:#92400e}.uf-slide-deck.theme-warm .uf-slide-frame th{background:#fde68a;color:#78350f}.uf-slide-deck.theme-warm .uf-slide-frame td{border-color:#fcd34d}.preview-content.document-mode{padding:28px 20px;max-width:none;background:var(--bg-overlay)}.uf-doc{display:flex;flex-direction:column;align-items:center;gap:24px}.uf-doc-page{background:#fff;color:#1e1e2e;box-shadow:0 4px 24px #00000059,0 1px 4px #0000001f;border-radius:2px;font-family:Georgia,Times New Roman,serif;position:relative;cursor:pointer;transform-origin:top center}.uf-doc-header,.uf-doc-footer{font-size:9pt;color:#888}.uf-doc-header{border-bottom:1px solid #ddd}.uf-doc-footer{border-top:1px solid #ddd}.uf-doc-body{color:#1e1e2e}.uf-doc-page .uf-doc-body h1,.uf-doc-page .uf-doc-body h2,.uf-doc-page .uf-doc-body h3,.uf-doc-page .uf-doc-body h4,.uf-doc-tape h1,.uf-doc-tape h2,.uf-doc-tape h3,.uf-doc-tape h4{color:#1e1e2e;margin-top:1em}.uf-doc-body p,.uf-doc-tape p{margin:.6em 0;line-height:inherit}.uf-doc-body a,.uf-doc-tape a{color:#4a86e8}.uf-doc-body ul,.uf-doc-body ol,.uf-doc-tape ul,.uf-doc-tape ol{padding-left:1.4em}.uf-doc-body code,.uf-doc-tape code{background:#f5f5f5;border-radius:3px;padding:.1em .35em;font-size:.85em}.uf-doc-body pre,.uf-doc-tape pre{background:#f5f5f5;border:1px solid #e0e0e0;padding:.6em .8em;border-radius:4px;overflow:auto}.uf-doc-body table,.uf-doc-tape table{border-collapse:collapse;width:100%}.uf-doc-body th,.uf-doc-body td,.uf-doc-tape th,.uf-doc-tape td{border:1px solid #ddd;padding:.3em .6em}.uf-doc-body th,.uf-doc-tape th{background:#f0f0f0}.uf-slide,.uf-doc-page{color-scheme:light;--bg: #eff1f5;--bg-alt: #e6e9ef;--bg-surface: #dce0e8;--bg-overlay: #ccd0da;--text: #4c4f69;--text-sub: #6c6f85;--text-muted: #9ca0b0;--border: #ccd0da;--accent: #1e66f5;--accent-2: #8839ef;--success: #40a02b;--warning: #df8e1d;--pending: #fe640b;--error: #d20f39;--hl-heading: #1e66f5;--hl-link: #04a5e5;--hl-code: #40a02b;--hl-fence: #fe640b;--hl-quote: #df8e1d;--hl-meta: #8c8fa1;--hl-punct: #9ca0b0;--hl-keyword: #8839ef;--hl-operator: #04a5e5;--hl-atom: #d20f39;--hl-number: #fe640b;--hl-string: #40a02b;--hl-comment: #8c8fa1;--hl-name: #4c4f69;--hl-type: #df8e1d;--hl-class: #1e66f5;--hl-property: #1e66f5;--hl-variable: #4c4f69;--hl-function: #1e66f5;--hl-strike: #9ca0b0;--hl-sep: #ccd0da;--hl-code-bg: #e6e9ef}.uf-doc-pagenum{position:absolute;bottom:8px;font-size:10px;font-family:var(--font-mono);color:#00000040;pointer-events:none;user-select:none}.uf-doc-pagenum-left{left:12px}.uf-doc-pagenum-center{left:50%;transform:translate(-50%)}.uf-doc-pagenum-right{right:12px}.uf-doc-commit{position:absolute;bottom:8px;left:50%;transform:translate(-50%);font-size:9px;font-family:var(--font-mono, monospace);color:#0003;pointer-events:none;user-select:none;white-space:nowrap}.preview-rendering-badge{position:absolute;top:8px;right:12px;z-index:20;display:flex;align-items:center;gap:6px;padding:3px 10px 3px 8px;border-radius:20px;background:#282840d1;color:#cdd6f4b3;font-size:11px;font-family:var(--font-ui, system-ui, sans-serif);letter-spacing:.02em;backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .25s ease}.preview-rendering-badge--visible{opacity:1}.preview-rendering-dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:uf-render-pulse 1s ease-in-out infinite alternate}@keyframes uf-render-pulse{0%{opacity:.3}to{opacity:1}}.uf-doc-page-stub:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(200,200,210,.18) 50%,transparent 70%);background-size:200% 100%;animation:uf-stub-shimmer 1.6s ease-in-out infinite;pointer-events:none}@keyframes uf-stub-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.preview-content.grid-model-mode{padding:0;max-width:none;overflow:auto}.uf-grid-wrap{overflow:auto;padding:12px}.uf-grid-table{border-collapse:collapse;font-size:13px;font-family:var(--font-mono);white-space:nowrap;cursor:cell}.uf-grid-table td,.uf-grid-table th{border:1px solid var(--border);padding:4px 10px;min-width:80px;height:26px;box-sizing:border-box}.uf-grid-col-hdr,.uf-grid-row-hdr,.uf-grid-corner{background:var(--bg-surface);color:var(--text-muted);font-weight:600;font-size:11px;text-align:center;user-select:none;position:sticky}.uf-grid-col-hdr{top:0}.uf-grid-row-hdr{left:0}.uf-grid-corner{top:0;left:0;z-index:2;min-width:36px}.uf-grid-cell{color:var(--text);background:var(--bg);text-align:left}.uf-grid-cell.numeric{text-align:right}.uf-grid-cell.frozen-row,.uf-grid-col-hdr.frozen-col{background:var(--bg-overlay);color:var(--text);font-weight:600}.uf-grid-cell:hover{background:var(--bg-surface)}.no-grid-lines .uf-grid-table td,.no-grid-lines .uf-grid-table th{border-color:transparent}.preview-content.spatial-model-mode{padding:20px;max-width:none;overflow:auto;background:var(--bg-overlay)}.uf-spatial-svg{display:block;border-radius:var(--radius);overflow:hidden;box-shadow:0 2px 12px #0000004d;cursor:crosshair;background:var(--bg)}.uf-spatial-svg rect:hover,.uf-spatial-svg circle:hover,.uf-spatial-svg ellipse:hover{opacity:.8;cursor:pointer}.preview-content.timeline-model-mode{padding:16px;max-width:none;overflow:auto}.uf-tl-wrap{min-width:500px;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.uf-tl-header{display:flex;background:var(--bg-surface);border-bottom:2px solid var(--border)}.uf-tl-corner{width:120px;flex-shrink:0;padding:6px 10px;font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-right:1px solid var(--border)}.uf-tl-time-label{flex:1;padding:6px 4px;font-size:11px;font-weight:600;color:var(--text-sub);text-align:center;border-left:1px solid var(--border)}.uf-tl-row{display:flex;border-bottom:1px solid var(--border);min-height:52px}.uf-tl-row:last-child{border-bottom:none}.uf-tl-track-label{width:120px;flex-shrink:0;padding:8px 10px;font-size:12px;font-weight:600;color:var(--text);display:flex;align-items:center;border-right:2px solid var(--accent);background:var(--bg-surface)}.uf-tl-cells{flex:1;display:grid;position:relative;align-items:center;padding:4px;gap:3px;grid-auto-rows:auto}.uf-tl-slot{border-left:1px dashed var(--border);min-height:44px;align-self:stretch}.uf-tl-event{background:var(--bg-surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);padding:5px 8px;font-size:12px;cursor:pointer;z-index:1;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:border-color .15s,background .15s}.uf-tl-event:hover{background:var(--bg-overlay);border-left-color:var(--accent)}.preview-content.graph-model-mode{padding:20px;max-width:none;overflow:auto}.uf-graph-scene{position:relative;min-width:600px;min-height:400px}.uf-graph-entity{position:absolute;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 2px 8px #00000026;cursor:pointer;box-sizing:border-box;overflow:hidden;transition:box-shadow .15s}.uf-graph-entity:hover{box-shadow:0 4px 16px #00000040}.uf-graph-entity-hdr{background:var(--bg-overlay);border-bottom:2px solid var(--accent);padding:5px 10px;font-size:12px;font-weight:700;color:var(--text);letter-spacing:.02em}.uf-graph-field{display:flex;align-items:center;gap:6px;padding:3px 10px;font-size:11px;border-bottom:1px solid var(--border);font-family:var(--font-mono)}.uf-graph-field:last-child{border-bottom:none}.uf-graph-field-name{color:var(--text);flex-shrink:0}.uf-graph-field-type{color:var(--accent);flex:1}.uf-graph-field-badges{font-size:9px;color:var(--text-muted);background:var(--bg);border-radius:3px;padding:1px 4px;font-family:var(--font-mono)}.uf-graph-edges{overflow:visible}#uf-editor-footer,#uf-preview-footer{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:0 12px;height:36px;background:var(--bg-alt);border-top:1px solid var(--border)}#uf-editor-footer:empty,#uf-preview-footer:empty{display:none}#uf-transport{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:0 12px;min-height:40px;background:var(--bg-alt);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0px);z-index:90}#uf-transport:empty{display:none}#uf-diff,#uf-diff-bar,#uf-diff-mid,#uf-diff-right{display:none}#unifile-app[data-diff] #uf-diff{display:flex;flex-direction:column;position:absolute;inset:0;z-index:60;background:var(--bg)}#unifile-app[data-diff] #uf-editor-wrap,#unifile-app[data-diff] #uf-preview-wrap,#unifile-app[data-diff] #uf-divider,#unifile-app[data-diff] #uf-commit-log,#unifile-app[data-diff] #uf-library{display:none!important}#unifile-app[data-diff] #uf-diff-bar{display:block}#unifile-app[data-diff] #uf-transport,#unifile-app[data-diff] #uf-commit-bar,#unifile-app[data-diff] .uf-fab,#unifile-app[data-diff] .uf-fab-grid,#unifile-app[data-diff] .uf-fab-scrim{display:none!important}.dv-head{display:flex;flex-shrink:0;border-bottom:1px solid var(--border)}.dv-head-label{flex:1 1 50%;min-width:0;padding:6px 10px;font-family:var(--font-ui);font-size:12px;font-weight:600;color:var(--text-sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dv-head-r{border-left:1px solid var(--border)}.dv-scroll{flex:1;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.dv-table{width:100%;border-collapse:collapse;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12.5px;line-height:1.5}.dv-no{width:1%;text-align:right;padding:0 6px;vertical-align:top;white-space:nowrap;color:var(--text-muted);user-select:none}.dv-code{width:49%;padding:0 8px;vertical-align:top;white-space:pre-wrap;word-break:break-word;color:var(--text)}.dv-code.dv-r{border-left:1px solid var(--border)}.dv-del .dv-l{background:#f38ba82e}.dv-add .dv-r{background:#a6e3a12e}.dv-change .dv-l{background:#f38ba821}.dv-change .dv-r{background:#a6e3a121}.dv-del .dv-r,.dv-add .dv-l{background:repeating-linear-gradient(45deg,transparent,transparent 6px,var(--bg-alt) 6px,var(--bg-alt) 7px)}.db{display:flex;align-items:center;gap:8px;padding:6px 10px;flex-wrap:wrap;font-family:var(--font-ui)}.db-label{font-size:12px;color:var(--text-muted);flex-shrink:0}.db-pick{flex:1 1 0;min-width:0;max-width:40vw;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-ui);font-size:13px;padding:4px 6px}.db-swap{color:var(--text-muted);flex-shrink:0}.db-return{flex-shrink:0;margin-left:auto;background:var(--accent);border:none;border-radius:var(--radius-sm);color:var(--bg);font-family:var(--font-ui);font-size:13px;padding:5px 12px;cursor:pointer}.dvp-head{flex-shrink:0;padding:6px 10px;border-bottom:1px solid var(--border);font-family:var(--font-ui);font-size:12px;font-weight:600;color:var(--text-sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--bg-alt)}.dvp-scroll{flex:1;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12.5px;line-height:1.5}.dvp-line{display:flex;white-space:pre}.dvp-no{flex:0 0 auto;min-width:34px;padding:0 8px;text-align:right;color:var(--text-muted);user-select:none}.dvp-code{flex:1;padding:0 8px;color:var(--text)}#uf-diff-mid .dvp-del{background:#f38ba82e}#uf-diff-mid .dvp-change{background:#f38ba821}#uf-diff-right .dvp-add{background:#a6e3a12e}#uf-diff-right .dvp-change{background:#a6e3a121}.db-mobile{gap:8px}.db-btn{flex:0 0 auto;border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:13px;padding:6px 14px;cursor:pointer;border:1px solid var(--border);background:var(--bg);color:var(--text)}.db-btn.db-restore{border-color:var(--accent);color:var(--accent)}.db-btn.db-exit{margin-left:auto}.pf-btn{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-muted);font-size:12px;font-family:var(--font-ui);cursor:pointer;opacity:.35;transition:opacity .15s,color .15s,border-color .15s,background .15s,filter .15s}.pf-btn.play-btn.has-tune{opacity:1;color:var(--accent);border-color:var(--accent)}.pf-btn.play-btn.has-tune:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);filter:brightness(1.05)}.pf-btn.play-btn.playing{opacity:1;background:var(--accent);border-color:transparent;color:var(--bg)}.pf-btn.play-btn.playing:hover{filter:brightness(1.1)}.pf-row{display:inline-flex;align-items:center;gap:8px}.pf-transport{display:flex;align-items:center;gap:10px;width:100%}.pf-transport .play-btn{padding:3px 8px}.pf-time{font-size:11px;font-variant-numeric:tabular-nums;color:var(--text-muted);flex-shrink:0;min-width:30px}.pf-time-total{text-align:right}.pf-scrub-wrap{position:relative;flex:1;min-width:60px;display:flex;align-items:center}.pf-track{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:4px;border-radius:2px;background:var(--border);pointer-events:none;z-index:0}.pf-range-band{position:absolute;top:50%;transform:translateY(-50%);height:4px;border-radius:2px;pointer-events:none;z-index:1;background:color-mix(in srgb,var(--accent-2) 60%,transparent)}.pf-scrub{position:relative;z-index:2;flex:1;min-width:0;height:4px;cursor:pointer;-webkit-appearance:none;appearance:none;background:transparent;border-radius:2px;outline:none}.pf-scrub::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent);cursor:pointer;border:none}.pf-scrub::-moz-range-thumb{width:12px;height:12px;border:none;border-radius:50%;background:var(--accent);cursor:pointer}.pf-scrub::-moz-range-progress{background:var(--accent);height:4px;border-radius:2px}.pf-midi-select{height:24px;max-width:220px;padding:0 6px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-size:12px;font-family:var(--font-ui);cursor:pointer}.pf-midi-select:hover{color:var(--text);border-color:var(--text-muted)}.pf-midi-note{font-size:12px;color:var(--text-muted);opacity:.6}.preview-content h1,.preview-content h2,.preview-content h3,.preview-content h4{color:var(--text);line-height:1.3;margin-top:1.5em}.preview-content h1{font-size:2em;border-bottom:1px solid var(--border);padding-bottom:.3em}.preview-content h2{font-size:1.5em;border-bottom:1px solid var(--border);padding-bottom:.2em}.preview-content a{color:var(--accent)}.preview-content code{background:var(--bg-surface);padding:.1em .3em;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.9em}.preview-content pre{background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius);padding:1em;overflow-x:auto;position:relative}.preview-content pre code{background:none;padding:0}.preview-content blockquote{border-left:4px solid var(--accent-2);margin-left:0;padding-left:1em;color:var(--text-sub)}.preview-content table{border-collapse:collapse;width:100%}.preview-content th,.preview-content td{border:1px solid var(--border);padding:.4em .8em}.preview-content th{background:var(--bg-surface)}.preview-content img{max-width:100%;height:auto;border-radius:var(--radius);display:block}.preview-content img.img-left{float:left;margin:0 1.2em .8em 0;display:inline-block}.preview-content img.img-right{float:right;margin:0 0 .8em 1.2em;display:inline-block}.preview-content img.img-center{margin-left:auto;margin-right:auto}.preview-content p:after{content:"";display:table;clear:both}.preview-content hr{border:none;border-top:1px solid var(--border)}.fm-header{text-align:center;margin:1.5em 0 2.5em;padding-bottom:1.5em;border-bottom:1px solid var(--border)}.fm-title{font-size:2.2em;font-weight:700;line-height:1.2;margin:0 0 .25em;border:none!important;padding:0!important;color:var(--text)}.fm-subtitle{font-size:1.15em;color:var(--text-sub);font-style:italic;margin:0 0 .5em}.fm-author{font-size:.95em;color:var(--text-sub);margin:0}.fm-date{font-size:.85em;color:var(--text-muted);margin:.25em 0 0}.preview-content .md-align-center{text-align:center}.preview-content .md-align-right{text-align:right}.preview-content .md-align-left{text-align:left}.preview-content h1.md-align-center,.preview-content h2.md-align-center,.preview-content h1.md-align-right,.preview-content h2.md-align-right{border-bottom:none}.cm-tooltip-autocomplete .cm-emoji-glyph{display:inline-block;width:1.6em;margin-right:.35em;text-align:center;font-size:1.15em;line-height:1}.cm-tooltip-autocomplete .cm-completionIcon-emoji{display:none}.preview-content .page-break{display:flex;align-items:center;gap:10px;margin:2em 0;color:var(--text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em;user-select:none}.preview-content .page-break:before,.preview-content .page-break:after{content:"";flex:1;border-top:1px dashed var(--border)}@media print{.page-break{break-after:page;page-break-after:always;display:block!important;height:0;margin:0}.page-break span,.page-break:before,.page-break:after{display:none}}.page-ruler-line{position:absolute;left:0;right:0;height:0;border-top:1px dashed color-mix(in srgb,var(--text-muted) 35%,transparent);pointer-events:none;z-index:4}.page-ruler-label{position:absolute;right:0;top:-10px;font-size:9px;font-family:var(--font-mono);font-weight:500;line-height:1.4;color:var(--text-muted);background:var(--bg-surface);border:1px solid var(--border);padding:1px 5px;border-radius:3px;user-select:none;opacity:.75}@media print{.page-ruler-line{display:none}}.copy-btn{position:absolute;top:6px;right:6px;padding:2px 8px;font-size:11px;background:var(--bg-surface);border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;opacity:0;transition:opacity .15s}.preview-content pre:hover .copy-btn{opacity:1}.copy-btn:hover{background:var(--bg-overlay);color:var(--text)}.error{color:var(--error);background:#f38ba81a;border:1px solid rgba(243,139,168,.3);padding:1em;border-radius:var(--radius);font-family:var(--font-mono);font-size:12px;white-space:pre-wrap}#uf-panels{position:fixed;inset:var(--topbar-h) 0 0 0;pointer-events:none;z-index:150}#uf-panels>div{pointer-events:auto}.dialog-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200;backdrop-filter:blur(2px)}.dialog{background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);width:480px;max-width:95vw;max-height:90vh;display:flex;flex-direction:column}.dialog-wide{width:800px}.dialog-header{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.dialog-title{margin:0;font-size:16px;font-weight:600;flex:1}.dialog-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:18px;line-height:1;padding:2px 6px;border-radius:var(--radius-sm)}.dialog-close:hover{background:var(--bg-surface);color:var(--text)}.dialog-body{flex:1;padding:20px;overflow-y:auto}.dialog-footer{padding:12px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}.form-row{margin-bottom:14px}.form-label{display:block;font-size:12px;font-weight:600;color:var(--text-sub);margin-bottom:4px}.form-hint{font-weight:400;color:var(--text-muted);margin-left:4px}.required{color:var(--error)}.form-input{width:100%;padding:7px 10px;background:var(--bg-surface);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);font-size:13px;font-family:var(--font-ui);outline:none;transition:border-color .12s}.form-input:focus{border-color:var(--accent)}.form-textarea{resize:vertical;min-height:72px;font-family:var(--font-ui)}.form-error{color:var(--error);font-size:12px;margin-top:8px}.form-success{color:var(--success);font-size:12px;margin-top:8px}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid transparent;border-radius:var(--radius);font-size:13px;font-weight:500;cursor:pointer;transition:filter .12s,background .12s;text-decoration:none}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);color:var(--bg);font-weight:600}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.btn-secondary{background:var(--bg-surface);border-color:var(--border);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--bg-overlay)}.btn-ghost{background:none;border-color:var(--border);color:var(--text-sub)}.btn-ghost:hover:not(:disabled){background:var(--bg-surface);color:var(--text)}.btn-sm{padding:4px 10px;font-size:12px}.diff-summary{margin-bottom:16px}.diff-stats{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--bg-surface);border-radius:var(--radius);font-size:12px}.diff-added{color:var(--success);font-weight:600}.diff-removed{color:var(--error);font-weight:600}.diff-from{color:var(--text-muted);margin-left:auto;font-family:var(--font-mono)}.diff-none{color:var(--text-muted);font-style:italic;font-size:13px}.commit-identity-row{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--bg-surface);border-radius:var(--radius);margin-bottom:14px}.commit-identity-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent);color:var(--bg);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.commit-identity-info{display:flex;flex-direction:column;gap:1px;font-size:12px;overflow:hidden}.commit-identity-info strong{color:var(--text);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.commit-identity-info span{color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detached-commit-notice{display:flex;align-items:flex-start;gap:8px;padding:9px 12px;margin-bottom:14px;background:color-mix(in srgb,var(--warning) 12%,transparent);border:1px solid color-mix(in srgb,var(--warning) 35%,transparent);border-radius:var(--radius);font-size:12px;color:var(--warning);line-height:1.45}.detached-commit-icon{font-size:14px;flex-shrink:0;margin-top:1px}.settings-dialog{width:420px}.settings-intro{font-size:13px;color:var(--text-sub);margin:0 0 16px;line-height:1.5}.settings-section-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:20px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--border)}.settings-check{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:var(--text);cursor:pointer;margin:2px 0 12px}.settings-check input{margin-top:2px;flex:0 0 auto}.settings-check small{display:block;color:var(--text-muted);font-size:12px;margin-top:2px}.settings-update-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.settings-update-status{font-size:12px;color:var(--text-muted)}.settings-update-status.is-update{color:var(--accent)}.settings-about{font-size:13px;color:var(--text-sub);margin:0}.settings-version{font-family:var(--font-mono, monospace);color:var(--text)}.settings-channel{color:var(--accent)}.settings-credit{margin-top:4px}.settings-credit a{color:inherit}.theme-toggle-group{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.theme-toggle-btn{background:none;border:none;border-right:1px solid var(--border);color:var(--text-sub);font-size:12px;padding:5px 14px;cursor:pointer;transition:background .12s,color .12s;white-space:nowrap}.theme-toggle-btn:last-child{border-right:none}.theme-toggle-btn:hover{background:var(--bg-surface);color:var(--text)}.theme-toggle-btn.active{background:var(--accent);color:var(--bg);font-weight:600}.blame-view{display:flex;flex-direction:column;height:100%;background:var(--bg)}.blame-header{display:flex;align-items:center;padding:0 16px;height:var(--topbar-h);background:var(--bg-alt);border-bottom:1px solid var(--border);flex-shrink:0}.blame-title{font-weight:600;flex:1}.blame-body{display:flex;flex:1;overflow:hidden}.blame-sidebar{width:var(--panel-w);flex-shrink:0;border-right:1px solid var(--border);overflow-y:auto;background:var(--bg-alt)}.blame-commit-detail{padding:16px}.blame-hint{color:var(--text-muted);font-style:italic;font-size:13px}.blame-lines{flex:1;overflow-y:auto;font-family:var(--font-mono);font-size:12px}.blame-line{display:flex;align-items:baseline;gap:0;border-bottom:1px solid transparent;cursor:pointer;transition:background .08s}.blame-line:hover,.blame-line.selected{background:var(--bg-surface)}.blame-lineno{width:40px;text-align:right;padding:2px 8px;color:var(--text-muted);flex-shrink:0;background:var(--bg-alt);border-right:1px solid var(--border)}.blame-meta{display:flex;gap:6px;padding:2px 8px;width:220px;flex-shrink:0;border-right:1px solid var(--border);overflow:hidden}.blame-hash{color:var(--accent);font-size:10px;width:72px;flex-shrink:0}.blame-author{color:var(--text-sub);font-size:11px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.blame-date{color:var(--text-muted);font-size:10px;flex-shrink:0}.blame-content{flex:1;padding:2px 8px;white-space:pre;overflow:hidden;text-overflow:ellipsis}.blame-empty{color:var(--text-muted);text-align:center;padding:2rem;font-style:italic}.blame-group,.blame-detail-dismiss{display:none}.blame-line.color-0.selected,.blame-line.color-0:hover{background:#89b4fa14}.blame-line.color-1.selected,.blame-line.color-1:hover{background:#cba6f714}.blame-line.color-2.selected,.blame-line.color-2:hover{background:#a6e3a114}.blame-line.color-3.selected,.blame-line.color-3:hover{background:#f9e2af14}.blame-line.color-4.selected,.blame-line.color-4:hover{background:#f38ba814}.blame-line.color-5.selected,.blame-line.color-5:hover{background:#94e2d514}.blame-line.color-6.selected,.blame-line.color-6:hover{background:#fab38714}.blame-line.color-7.selected,.blame-line.color-7:hover{background:#74c7ec14}.blame-detail-card{background:var(--bg-surface);border-radius:var(--radius);padding:12px;font-size:13px}.blame-detail-hash{font-family:var(--font-mono);color:var(--accent);font-size:11px;margin-bottom:4px}.blame-detail-tag{display:inline-block;background:var(--success);color:var(--bg);font-size:10px;padding:1px 5px;border-radius:3px;margin-bottom:6px;font-weight:600}.blame-detail-msg{font-weight:600;margin-bottom:6px;color:var(--text)}.blame-detail-author{color:var(--text-sub);margin-bottom:2px}.blame-detail-email{color:var(--text-muted);font-size:12px}.blame-detail-date{color:var(--text-muted);font-size:11px;margin-top:4px}.blame-detail-line{font-size:11px;color:var(--text-muted);margin-top:4px}.blame-detail-actions{margin-top:10px}#uf-editor-wrap .uf-comment-card{width:min(380px,calc(100vw - 24px));background:var(--bg-alt);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 28px #00000047,0 1px 3px #0000002e;color:var(--text);font-family:var(--font-ui);font-size:13px;line-height:1.45;overflow:hidden}.ucc-head{display:flex;align-items:center;gap:8px;padding:7px 8px 7px 12px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--comment-range) 60%,transparent)}.ucc-excerpt{flex:1;min-width:0;font-family:var(--font-mono);font-size:11.5px;color:var(--text-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ucc-close{flex:0 0 auto;width:26px;height:26px;border:none;border-radius:6px;background:none;color:var(--text-muted);font-size:18px;line-height:1;cursor:pointer}.ucc-close:hover{background:var(--bg-surface);color:var(--text)}.ucc-body{padding:10px 12px;display:flex;flex-direction:column;gap:8px}.ucc-messages{display:flex;flex-direction:column;gap:10px;max-height:40vh;overflow-y:auto}.ucc-msg-meta{display:flex;align-items:baseline;gap:8px;margin-bottom:2px}.ucc-author{font-weight:600;color:var(--text)}.ucc-when{font-size:11px;color:var(--text-muted)}.ucc-text{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text)}.ucc-reply{display:flex;flex-direction:column;gap:6px;padding-top:8px;border-top:1px solid var(--border)}.ucc-input{width:100%;resize:none;overflow:hidden;box-sizing:border-box;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:7px 9px;font:inherit;font-size:14px;line-height:1.4}.ucc-input:focus{outline:none;border-color:var(--accent)}.ucc-input::placeholder{color:var(--text-muted)}.ucc-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.ucc-hint{margin-right:auto;font-size:11px;color:var(--text-muted)}.ucc-btn{border:1px solid var(--border);border-radius:999px;background:none;color:var(--text-sub);font:inherit;font-size:12.5px;padding:4px 12px;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.ucc-btn:hover{color:var(--text);background:var(--bg-surface)}.ucc-btn.ucc-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.ucc-btn.ucc-primary:hover{filter:brightness(1.08)}.ucc-btn.ucc-resolve:hover{border-color:var(--success);color:var(--success)}.cm-comment-point{display:inline-block;padding:0 3px;margin-right:2px;border-radius:3px;color:color-mix(in srgb,var(--warning) 80%,var(--text));background:var(--comment-range);font-size:.85em;cursor:pointer;user-select:none}.uf-ctx-menu{position:fixed;z-index:9999;min-width:170px;padding:4px;background:var(--bg-alt);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 28px #00000047,0 1px 3px #0000002e;font-family:var(--font-ui)}.uf-ctx-item{display:flex;align-items:center;gap:10px;width:100%;padding:7px 10px;background:none;border:none;border-radius:7px;color:var(--text);font:inherit;font-size:13.5px;text-align:left;cursor:pointer}.uf-ctx-item:hover,.uf-ctx-item:focus-visible{background:var(--bg-surface);outline:none}.uf-ctx-glyph{flex:0 0 18px;text-align:center;font-family:var(--font-mono);font-size:12px;color:var(--accent)}.uf-ctx-sep{height:1px;margin:4px 6px;background:var(--border)}@media (pointer: coarse){.uf-ctx-item{padding:11px 12px;font-size:15px}.uf-ctx-menu{min-width:200px}}.ath-overlay{position:fixed;inset:0;z-index:10000;background:#0000008c;display:flex;align-items:center;justify-content:center}.ath-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:calc(var(--radius) * 2);box-shadow:0 8px 32px #00000080;width:min(520px,90vw);max-height:70vh;display:flex;flex-direction:column;overflow:hidden}.ath-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.ath-title{font-size:14px;font-weight:600;margin:0}.ath-close{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:18px;line-height:1;padding:2px 6px;border-radius:var(--radius)}.ath-close:hover{background:var(--bg-overlay);color:var(--text)}.ath-body{overflow-y:auto;padding:12px 16px;flex:1}.ath-empty{color:var(--text-muted);font-size:13px;text-align:center;padding:24px 0}.ath-thread{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;display:flex;align-items:flex-start;gap:10px}.ath-thread-info{flex:1;min-width:0}.ath-thread-meta{font-size:10px;color:var(--text-muted);margin-bottom:3px}.ath-thread-preview{font-size:12px;color:var(--text-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ath-restore{background:var(--bg-overlay);border:1px solid var(--border);color:var(--text-sub);font-size:11px;padding:3px 10px;border-radius:var(--radius);cursor:pointer;flex-shrink:0;transition:border-color .15s,color .15s}.ath-restore:hover{border-color:var(--accent);color:var(--accent)}.dsl-menu-dropdown{width:220px;left:8px;right:auto;padding:6px 0}.tools-dropdown{width:220px;right:52px;padding:6px 0}.tools-menu-list{list-style:none;margin:0;padding:0}.tools-menu-item{display:flex;align-items:center;gap:8px;padding:7px 14px;font-size:13px;cursor:pointer;color:var(--text-sub);transition:background .1s,color .1s;user-select:none}.tools-menu-item:hover{background:var(--bg-surface);color:var(--text)}.tools-menu-item.disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.tools-menu-item kbd{margin-left:auto;font-size:10px;color:var(--text-muted);font-family:var(--font-mono);background:none;border:none;padding:0}.tools-menu-sep{height:1px;background:var(--border);margin:4px 0}.export-section{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--border)}.export-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.export-section-title{margin:0 0 6px;font-size:14px;font-weight:600}.export-section-desc{margin:0 0 12px;font-size:12px;color:var(--text-muted)}.export-option-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--bg-surface);border-radius:var(--radius);margin-bottom:6px}.export-option-info{display:flex;flex-direction:column;gap:2px}.export-option-info strong{font-size:13px}.export-option-sub{font-size:11px;color:var(--text-muted);font-family:var(--font-mono)}.export-empty{color:var(--text-muted);font-style:italic;font-size:13px}.export-dirty-notice{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;margin-bottom:10px;background:color-mix(in srgb,var(--warning) 12%,transparent);border:1px solid color-mix(in srgb,var(--warning) 40%,transparent);border-radius:var(--radius);font-size:12px;color:var(--warning);line-height:1.4}.export-dirty-icon{font-size:14px;flex-shrink:0;margin-top:1px}.export-option-row.disabled{opacity:.45;pointer-events:none}.merge-intro{font-size:13px;color:var(--text-sub);margin-bottom:16px}.merge-dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:32px;text-align:center;color:var(--text-muted);transition:border-color .15s,background .15s;margin-top:12px}.merge-dropzone.dragover{border-color:var(--accent);background:#89b4fa0d}.merge-dropzone p{margin:0 0 12px;font-size:13px}.merge-info{background:var(--bg-surface);border-radius:var(--radius);padding:12px;margin-bottom:16px;display:flex;flex-direction:column;gap:6px}.merge-info-row{display:flex;align-items:baseline;gap:8px;font-size:12px}.merge-label{font-weight:600;color:var(--text-sub);min-width:140px}.merge-val{font-family:var(--font-mono);color:var(--text)}.merge-diff-cols{display:flex;gap:8px;margin-bottom:16px;max-height:300px;overflow:hidden}.merge-col{flex:1;overflow:hidden;display:flex;flex-direction:column}.merge-col-header{padding:4px 8px;font-size:11px;font-weight:600;border-radius:var(--radius-sm) var(--radius-sm) 0 0;flex-shrink:0}.merge-col-header.ours{background:#89b4fa26;color:var(--accent)}.merge-col-header.theirs{background:#a6e3a126;color:var(--success)}.merge-diff-text{flex:1;overflow-y:auto;background:var(--bg-alt);border:1px solid var(--border);padding:8px;font-size:11px;margin:0;font-family:var(--font-mono);border-radius:0 0 var(--radius-sm) var(--radius-sm)}.merge-radio-group{display:flex;flex-direction:column;gap:6px;margin-top:4px}.merge-radio{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.panel-sidebar{position:absolute;right:0;top:0;bottom:0}noscript .noscript-wrap{padding:2rem;max-width:800px;margin:0 auto;font-family:system-ui,sans-serif;line-height:1.6}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-overlay);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@media (max-width: 640px){.topbar{gap:4px;padding:0 8px}.vcs-pill .vcs-pill-text{display:none}.dialog-overlay{padding:0}.dialog,.dialog-wide{width:100%;max-width:100%;height:100%;max-height:100%;border:none;border-radius:0}.dialog-header{padding-top:calc(16px + env(safe-area-inset-top))}.dialog-footer{padding-bottom:calc(12px + env(safe-area-inset-bottom))}.dialog-close{font-size:26px;padding:6px 10px;margin:-4px -4px -4px 0}#uf-panels{top:0}.blame-header{height:auto;padding-top:calc(12px + env(safe-area-inset-top));padding-bottom:12px}.blame-close{font-size:15px;padding:6px 10px}#uf-blame-panel{position:absolute;inset:0}.blame-lines{font-size:13px}.blame-meta{display:none}.blame-line{align-items:flex-start;border-left:3px solid var(--border)}.blame-lineno{width:32px;padding:3px 6px;font-size:11px}.blame-content{white-space:pre-wrap;overflow-wrap:anywhere;padding:3px 8px}.blame-group{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;padding:6px 10px;margin-top:4px;background:var(--bg-alt);border:none;border-left:3px solid var(--accent);cursor:pointer;font-family:var(--font-mono)}.blame-group:first-child{margin-top:0}.blame-group .blame-hash{width:auto}.blame-group .blame-msg{flex:1;min-width:0;color:var(--text-sub);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.blame-sidebar{position:absolute;left:0;right:0;bottom:0;width:auto;max-height:55%;border-right:none;border-top:1px solid var(--border);box-shadow:0 -6px 24px #00000059;transform:translateY(100%);transition:transform .18s ease;z-index:5}.blame-body{position:relative}.blame-view.has-detail .blame-sidebar{transform:translateY(0)}.blame-hint{display:none}.blame-detail-card{position:relative}.blame-detail-dismiss{display:block;position:absolute;top:6px;right:6px;background:none;border:none;color:var(--text-muted);font-size:16px;cursor:pointer;padding:4px 8px}}@media print{#uf-topbar,#uf-divider,#uf-panels,.draft-banner,#uf-editor-wrap{display:none!important}#uf-main{display:block!important}#uf-preview-wrap{width:100%!important;flex:none!important}.preview-pane{border:none!important;overflow:visible!important}.preview-content.document-mode{overflow:visible!important;height:auto!important;background:none!important;padding:0!important}.preview-content.document-mode .uf-doc{display:block!important;gap:0!important;padding:0!important}.uf-doc-page{break-after:page!important;page-break-after:always!important;box-shadow:none!important;border-radius:0!important;margin:0!important}.uf-doc-page:last-child{break-after:auto!important;page-break-after:auto!important}.uf-doc-page-stub:after{display:none!important}.uf-doc-commit{display:none!important}.preview-content.slides-mode{overflow:visible!important;height:auto!important;background:none!important;padding:0!important}.uf-slide-deck{display:block!important;gap:0!important;padding:0!important}.uf-slide{break-after:page!important;page-break-after:always!important;box-shadow:none!important;margin:0!important}.uf-slide:last-child{break-after:auto!important;page-break-after:auto!important}.uf-slide-num{display:none!important}.preview-content{print-color-adjust:exact;-webkit-print-color-adjust:exact}}.dsl-help-overlay{position:fixed;inset:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:9000;padding:24px 16px}.dsl-help-modal{background:var(--bg-alt);border:1px solid var(--border);border-radius:10px;box-shadow:0 24px 64px #0000008c;width:min(680px,100%);max-height:min(85vh,760px);display:flex;flex-direction:column;overflow:hidden}.dsl-help-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);flex-shrink:0}.dsl-help-title{font-size:15px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:10px}.dsl-help-badge{background:var(--accent);color:var(--bg);font-size:11px;font-weight:700;padding:2px 8px;border-radius:12px;letter-spacing:.04em;text-transform:uppercase}.dsl-help-close{background:none;border:none;color:var(--text-muted);font-size:20px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:4px;transition:color .1s,background .1s}.dsl-help-close:hover{color:var(--text);background:var(--bg-surface)}.dsl-help-body{overflow-y:auto;padding:16px 20px;flex:1;display:flex;flex-direction:column;gap:20px}.dsl-help-modal--nav{width:min(920px,100%)}.dsl-help-main{flex:1;min-height:0;display:flex;flex-direction:row;overflow:hidden}.dsl-help-nav{flex:0 0 200px;overflow-y:auto;padding:12px 8px;border-right:1px solid var(--border);background:var(--bg);display:flex;flex-direction:column;gap:1px;scrollbar-width:thin}.dsl-help-nav-group{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:12px 10px 4px}.dsl-help-nav-group:first-child{padding-top:2px}.dsl-help-nav-item{text-align:left;background:none;border:none;border-radius:6px;padding:6px 10px;font:inherit;font-size:12.5px;color:var(--text-sub);cursor:pointer;border-left:2px solid transparent;transition:background .1s,color .1s}.dsl-help-nav-item:hover{background:var(--bg-surface);color:var(--text)}.dsl-help-nav-item.active{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--text);border-left-color:var(--accent);font-weight:600}.dsl-help-group-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--accent);padding-bottom:4px;border-bottom:1px solid var(--border)}.dsl-help-group-title:not(:first-child){margin-top:8px}.dsl-help-section{scroll-margin-top:8px}.dsl-help-section-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin:0 0 8px}.dsl-help-section-body pre{background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;padding:10px 14px;margin:0;overflow-x:auto}.dsl-help-section-body pre code{font-family:var(--font-mono);font-size:12px;color:var(--text-sub);line-height:1.6;background:none;padding:0}.dsl-help-section-body table.help-keys{border-collapse:collapse;width:100%;font-size:12px;line-height:1.5}.dsl-help-section-body table.help-keys td{padding:3px 10px 3px 0;vertical-align:top;border-bottom:1px solid var(--border)}.dsl-help-section-body table.help-keys td:first-child{white-space:nowrap;width:1%}.dsl-help-section-body kbd{font-family:var(--font-mono);font-size:11px;color:var(--text);background:var(--bg-surface);border:1px solid var(--border);border-radius:3px;padding:0 5px}.dsl-help-section-body table.help-keys code{font-family:var(--font-mono);font-size:11px}.dsl-help-section-body p.help-note{margin:6px 0 0;font-size:12px;color:var(--text-muted);line-height:1.5}.dsl-help-section-body p.help-note code{font-family:var(--font-mono);font-size:11px;background:var(--bg-surface);border:1px solid var(--border);padding:1px 4px;border-radius:3px;color:var(--accent)}.dsl-help-footer{padding:12px 20px;border-top:1px solid var(--border);flex-shrink:0;display:flex;align-items:center}.dsl-help-docs-link{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--accent);text-decoration:none;font-weight:500;padding:6px 12px;border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:6px;transition:background .1s,color .1s}.dsl-help-docs-link:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.newdoc-modal{width:min(460px,100%)}.newdoc-body{gap:12px;font-size:13px;line-height:1.5;color:var(--text)}.newdoc-warn{margin:0}.newdoc-warn strong{color:var(--text)}.newdoc-dirty{margin:0;color:var(--error, #f38ba8);font-weight:600}.newdoc-hint{margin:0;color:var(--text-muted)}.newdoc-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}.newdoc-status{margin:0;font-size:12px;color:var(--text-muted);min-height:1em}.newdoc-status.ok{color:#40a02b}[data-theme=dark] .newdoc-status.ok{color:#a6e3a1}.newdoc-footer{justify-content:flex-end;gap:10px}.newdoc-btn{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-sub);cursor:pointer;font-size:13px;padding:6px 14px;border-radius:6px;transition:background .1s,color .1s,border-color .1s,filter .1s}.newdoc-btn:hover{border-color:var(--accent);color:var(--text)}.newdoc-danger{background:var(--error, #f38ba8);border-color:var(--error, #f38ba8);color:var(--bg);font-weight:600}.newdoc-danger:hover{filter:brightness(1.08);color:var(--bg)}.draft-banner{display:flex;align-items:center;gap:10px;padding:7px 14px;background:color-mix(in srgb,var(--accent) 14%,var(--bg-alt));border-bottom:1px solid color-mix(in srgb,var(--accent) 30%,transparent);font-size:13px;color:var(--text);z-index:10}.draft-banner-msg{flex:1}.draft-banner-btn{background:none;border:none;cursor:pointer;font-size:13px;padding:3px 10px;border-radius:4px;color:var(--text-sub);transition:background .1s,color .1s,filter .1s}.draft-banner-btn:hover{background:var(--bg-overlay);color:var(--text)}.draft-banner-primary{background:var(--accent);color:var(--bg);font-weight:600}.draft-banner-primary:hover{background:var(--accent);color:var(--bg);filter:brightness(1.08)}.draft-banner-discard{color:var(--text-sub);font-weight:400}.draft-banner-close{font-size:16px;line-height:1;padding:2px 6px}@media (max-width: 640px){.dsl-help-overlay{padding:0}.dsl-help-modal,.newdoc-modal{width:100%;max-width:100%;height:100%;max-height:100%;border:none;border-radius:0}.dsl-help-header{padding-top:calc(16px + env(safe-area-inset-top))}.dsl-help-footer{padding-bottom:calc(12px + env(safe-area-inset-bottom))}.dsl-help-close{font-size:26px;padding:6px 10px;margin:-4px -4px -4px 0}.dsl-help-modal--nav{width:100%}.dsl-help-main{flex-direction:column}.dsl-help-nav{flex:0 0 auto;flex-direction:row;align-items:center;overflow-x:auto;overflow-y:hidden;border-right:none;border-bottom:1px solid var(--border);padding:8px 10px;gap:6px}.dsl-help-nav-group{display:none}.dsl-help-nav-item{flex:0 0 auto;white-space:nowrap;border-left:none;border-bottom:2px solid transparent;border-radius:14px;background:var(--bg-surface)}.dsl-help-nav-item.active{border-left-color:transparent;border-bottom-color:transparent}}:root,[data-theme=dark]{--voice-0: #89b4fa;--voice-1: #fab387;--voice-2: #a6e3a1;--voice-3: #cba6f7;--voice-4: #94e2d5;--voice-5: #f9e2af;--voice-6: #f38ba8;--voice-7: #89dceb}@media (prefers-color-scheme: light){:root:not([data-theme]){--voice-0: #1e66f5;--voice-1: #fe640b;--voice-2: #40a02b;--voice-3: #8839ef;--voice-4: #179299;--voice-5: #df8e1d;--voice-6: #d20f39;--voice-7: #04a5e5}}[data-theme=light]{--voice-0: #1e66f5;--voice-1: #fe640b;--voice-2: #40a02b;--voice-3: #8839ef;--voice-4: #179299;--voice-5: #df8e1d;--voice-6: #d20f39;--voice-7: #04a5e5}#uf-piano-roll{display:none}#unifile-app[data-piano-roll] #uf-piano-roll{display:flex;flex-direction:column;flex-shrink:0;height:var(--uf-roll-h, clamp(180px, 34vh, 340px));min-height:160px;max-height:calc(100% - 120px);background:var(--bg);border-top:1px solid var(--border);z-index:90}.pr-grip{flex-shrink:0;height:7px;margin-bottom:-3px;cursor:ns-resize;touch-action:none;position:relative;z-index:1}.pr-grip:after{content:"";position:absolute;left:50%;top:2px;width:36px;height:3px;transform:translate(-50%);border-radius:2px;background:var(--border);transition:background .15s}.pr-grip:hover:after,.pr-grip.dragging:after{background:var(--text-muted)}#unifile-app[data-piano-roll] #uf-transport{display:none}#unifile-app[data-diff] #uf-piano-roll{display:none!important}.pf-btn.pf-roll{opacity:1;color:var(--text-muted);padding:3px 7px;margin-left:-4px}.pf-btn.pf-roll:hover{color:var(--accent);background:var(--bg-surface)}.pf-btn.pf-roll svg{width:14px;height:14px;display:block}.pr-head{display:flex;align-items:center;gap:10px;min-height:34px;padding:3px 10px;background:var(--bg-alt);border-bottom:1px solid var(--border);flex-shrink:0;overflow:hidden}.pr-btn{display:inline-flex;align-items:center;justify-content:center;padding:4px 9px;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-sub);cursor:pointer;transition:color .15s,background .15s,border-color .15s}.pr-btn:hover{color:var(--text);background:var(--bg-surface)}.pr-play{color:var(--accent);border-color:var(--accent)}.pr-play.playing{background:var(--accent);color:var(--bg);border-color:transparent}.pr-pencil.on{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.pr-time{font-family:var(--font-mono);font-size:11px;color:var(--text-sub);white-space:nowrap}.pr-voices{display:flex;gap:6px;min-width:0;overflow-x:auto;scrollbar-width:none}.pr-voices::-webkit-scrollbar{display:none}.pr-chip{display:inline-flex;align-items:center;gap:1px;padding:1px 4px 1px 7px;border:1px solid var(--border);border-radius:999px;background:transparent;white-space:nowrap}.pr-chip.active{border-color:var(--vc);background:color-mix(in srgb,var(--vc) 16%,transparent)}.pr-chip.faded{opacity:.45}.pr-chip-dot{width:8px;height:8px;border-radius:50%;background:var(--vc);flex-shrink:0}.pr-chip-name{display:inline-flex;align-items:center;gap:5px;background:none;border:none;padding:1px 3px 1px 0;color:var(--text-sub);font-family:var(--font-ui);font-size:11px;cursor:pointer}.pr-chip.active .pr-chip-name{color:var(--text);font-weight:600}.pr-chip-m,.pr-chip-s{background:none;border:none;padding:1px 3px;border-radius:3px;font-family:var(--font-ui);font-size:9px;font-weight:700;color:var(--text-muted);opacity:.6;cursor:pointer}.pr-chip-m:hover,.pr-chip-s:hover{opacity:1;background:var(--bg-surface)}.pr-chip-m.on{color:var(--error);opacity:1}.pr-chip-s.on{color:var(--success);opacity:1}.pr-flash{margin-left:auto;font-family:var(--font-ui);font-size:11px;color:var(--warning);opacity:0;transition:opacity .2s;white-space:nowrap}.pr-flash.show{opacity:1}.pr-hint{font-family:var(--font-ui);font-size:10px;color:var(--text-muted);white-space:nowrap}@media (max-width: 900px){.pr-hint{display:none}}.pr-body{flex:1;min-height:0;position:relative}.pr-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;outline:none;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}@media (max-width: 640px) and (orientation: portrait){#uf-piano-roll{display:none!important}}@media (orientation: landscape) and (max-height: 500px) and (pointer: coarse){#unifile-app[data-piano-roll] #uf-bottom{display:block;background:none;box-shadow:none;padding-bottom:0}#unifile-app[data-piano-roll] #uf-piano-roll{position:fixed;left:0;right:0;bottom:0;height:var(--app-height, 100vh);min-height:0;max-height:none;z-index:120;border-top:none;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}#unifile-app[data-piano-roll] #uf-piano-roll .pr-hint,#unifile-app[data-piano-roll] #uf-piano-roll .pr-grip{display:none}#unifile-app[data-piano-roll] #uf-piano-roll .pr-head{min-height:34px;padding-top:env(safe-area-inset-top,0px)}}.preview-content .uf-deck{width:clamp(100%,100cqw - 64px,1100px);margin-left:calc((100% - clamp(100%,100cqw - 64px,1100px))/2)}.uf-deck div.marpit>svg[data-marpit-svg]{display:block;width:100%;height:auto;margin:0 0 20px;border-radius:6px;box-shadow:0 4px 22px #00000073;cursor:pointer;background:#fff}.uf-deck div.marpit>svg[data-marpit-svg]:last-child{margin-bottom:0}@media (max-width: 640px){.uf-deck div.marpit>svg[data-marpit-svg]{border-radius:4px;margin-bottom:12px}}.cm-slide-img{padding:4px 0 6px 2ch;line-height:0;user-select:none;-webkit-user-select:none}.cm-slide-img img{display:block;max-height:120px;max-width:min(320px,100%);border:1px solid var(--border);border-radius:4px;background:#fff}.cm-slide-img.missing{line-height:1.5;font-size:12px;color:var(--text-muted);font-style:italic}.tools-menu-glyph{display:inline-block;width:16px;text-align:center;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.uf-sheet-block{margin:1em 0}.uf-sheet-scroll{overflow:auto;max-width:100%}.preview-content table.uf-sheet{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.preview-content .uf-sheet th,.preview-content .uf-sheet td{vertical-align:top}.preview-content .uf-sheet th.uf-cell{text-align:left}.preview-content .uf-sheet .al-right{text-align:right}.preview-content .uf-sheet .al-center{text-align:center}.preview-content .uf-sheet .al-left{text-align:left}.preview-content .uf-sheet .uf-cell{cursor:pointer}.preview-content .uf-sheet .uf-cell.is-error{color:var(--error)}.preview-content .uf-sheet .uf-cell.is-bool{color:var(--accent-2)}.preview-content .uf-sheet .uf-cell.is-active{box-shadow:inset 0 0 0 2px var(--accent)}.preview-content .uf-sheet .uf-cell p{margin:0}.preview-content .uf-sheet.has-rulers{width:auto;min-width:100%;border-collapse:separate;border-spacing:0}.preview-content .uf-sheet.has-rulers th,.preview-content .uf-sheet.has-rulers td{border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg)}.preview-content .uf-sheet.has-rulers tr.uf-sheet-header th.uf-cell{background:var(--bg-surface)}.preview-content .uf-sheet .uf-sheet-corner,.preview-content .uf-sheet .uf-sheet-col,.preview-content .uf-sheet .uf-sheet-row{background:var(--bg-alt);color:var(--text-muted);font-family:var(--font-mono);font-weight:500;font-size:11px;text-align:center;user-select:none;-webkit-user-select:none;padding:2px 8px;min-width:0}.preview-content .uf-sheet .uf-sheet-row{text-align:right}.preview-content .uf-sheet .uf-sheet-col.is-active,.preview-content .uf-sheet .uf-sheet-row.is-active{color:var(--accent);background:var(--bg-surface)}.preview-content .uf-sheet .uf-cell[colspan],.preview-content .uf-sheet .uf-cell[rowspan]{background:color-mix(in srgb,var(--text) 3%,var(--bg))}.preview-content .uf-sheet.has-rulers .uf-cell.is-active{background:color-mix(in srgb,var(--accent) 10%,var(--bg))}.cm-sheet-pipe{color:var(--hl-meta)}.cm-sheet-formula{color:var(--accent);font-weight:600}.cm-sheet-ref{color:var(--hl-property)}.cm-sheet-fn{color:var(--hl-keyword)}.cm-sheet-str{color:var(--hl-string)}.cm-sheet-span{color:var(--accent-2);font-weight:600}.cm-sheet-hover{padding:6px 9px;font-family:var(--font-mono);font-size:12.5px}.cm-sheet-hover b{color:var(--accent);margin-right:8px}.cm-sheet-hover-detail{color:var(--text-muted);font-size:11.5px;margin-top:2px}.preview-content .uf-ss{width:100cqw;height:100cqh;margin:-24px 0 -24px calc((100% - 100cqw)/2);display:flex;flex-direction:column;min-height:0;outline:none;background:var(--bg);color:var(--text);font-size:13px;position:relative;overflow:hidden;user-select:none;-webkit-user-select:none}.uf-ss-bar{display:flex;align-items:center;gap:2px;flex:none;padding:4px 8px;border-bottom:1px solid var(--border);background:var(--bg);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;white-space:nowrap}.uf-ss-bar::-webkit-scrollbar{display:none}.uf-ss-bar button{flex:none;min-width:28px;height:26px;padding:0 6px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--text);font:inherit;font-size:13px;line-height:1;cursor:pointer;font-family:var(--font-mono)}.uf-ss-bar button:hover{background:var(--bg-surface)}.uf-ss-bar button.is-on{background:color-mix(in srgb,var(--accent) 18%,var(--bg));border-color:color-mix(in srgb,var(--accent) 40%,transparent);color:var(--accent)}.uf-ss-sep{flex:none;width:1px;height:18px;background:var(--border);margin:0 3px}.uf-ss-ico-a{text-decoration:underline;text-decoration-thickness:3px;text-decoration-color:#c0392b}.uf-ss-fx{display:flex;align-items:center;gap:6px;flex:none;padding:3px 8px;border-bottom:1px solid var(--border);background:var(--bg)}.uf-ss-name{flex:none;min-width:64px;height:24px;padding:0 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text);font-family:var(--font-mono);font-size:12px;cursor:pointer;text-align:left}.uf-ss-fxlabel{color:var(--text-muted);font-style:italic;font-family:var(--font-mono);font-size:12px}.uf-ss-fxinput{flex:1;min-width:0;height:24px;padding:0 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text);font-family:var(--font-mono);font-size:13px}.uf-ss-fxinput:focus{outline:none;border-color:var(--accent)}.uf-ss-scroll{flex:1;min-height:0;overflow:auto;position:relative;overscroll-behavior:contain}.uf-ss-tablewrap{position:relative;display:inline-block;min-width:100%}.uf-ss-grid{border-collapse:separate;border-spacing:0;table-layout:fixed;font-variant-numeric:tabular-nums;font-size:13px;width:max-content}.uf-ss-grid col.uf-ss-rulercol{width:40px}.uf-ss-grid th,.uf-ss-grid td{box-sizing:border-box;height:26px;padding:2px 6px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;vertical-align:middle;background:var(--bg)}.uf-ss-grid .uf-ss-corner,.uf-ss-grid .uf-ss-col,.uf-ss-grid .uf-ss-row{position:sticky;z-index:3;background:var(--bg-alt);color:var(--text-muted);font-family:var(--font-mono);font-weight:500;font-size:11px;text-align:center;cursor:pointer}.uf-ss-grid .uf-ss-corner{top:0;left:0;z-index:5}.uf-ss-grid .uf-ss-col{top:0}.uf-ss-grid .uf-ss-row{left:0;text-align:right}.uf-ss-grid .uf-ss-col.is-sel,.uf-ss-grid .uf-ss-row.is-sel{background:color-mix(in srgb,var(--accent) 22%,var(--bg-alt));color:var(--accent)}.uf-ss-grid .uf-ss-col.is-frozen-col,.uf-ss-grid td.is-frozen-col{position:sticky;z-index:2}.uf-ss-grid .uf-ss-col.is-frozen-col{z-index:4}.uf-ss-grid tr.is-frozen-row th,.uf-ss-grid tr.is-frozen-row td{position:sticky;z-index:2}.uf-ss-grid tr.is-frozen-row th.uf-ss-row{z-index:4}.uf-ss-grid tr.is-frozen-row td.is-frozen-col{z-index:3}.uf-ss-grid tr.is-frozen-row td{box-shadow:0 1px 0 var(--border)}.uf-ss-grid .uf-ss-cell{cursor:cell}.uf-ss-grid .al-right{text-align:right}.uf-ss-grid .al-center{text-align:center}.uf-ss-grid .al-left{text-align:left}.uf-ss-grid .is-error{color:var(--error)}.uf-ss-grid .is-bool{color:var(--accent-2)}.uf-ss-grid tr.uf-ss-header td{font-weight:600;background:var(--bg-surface)}.uf-ss-grid td.is-sel{background-image:linear-gradient(color-mix(in srgb,var(--accent) 14%,transparent),color-mix(in srgb,var(--accent) 14%,transparent))}.uf-ss-grid td.is-active{box-shadow:inset 0 0 0 2px var(--accent);background-image:none}.uf-ss-grid td.has-comment{background-image:linear-gradient(225deg,#e67e22 0 5px,transparent 5px)}.uf-ss-grid td.has-comment.is-sel{background-image:linear-gradient(225deg,#e67e22 0 5px,transparent 5px),linear-gradient(color-mix(in srgb,var(--accent) 14%,transparent),color-mix(in srgb,var(--accent) 14%,transparent))}.uf-ss-colgrip{position:absolute;top:0;right:-3px;width:7px;height:100%;cursor:col-resize;z-index:1}.uf-ss-filterbtn{display:inline-block;margin-left:4px;padding:0 3px;border-radius:3px;font-size:9px;opacity:.55;cursor:pointer}.uf-ss-filterbtn:hover{opacity:1;background:var(--bg-surface)}.uf-ss-filterbtn.is-on{opacity:1;color:var(--accent)}.uf-ss-grid th.uf-ss-col{position:sticky}.uf-ss-rowgrip{display:none}.uf-ss-editor{position:absolute;z-index:6;display:none;box-sizing:border-box;margin:0;padding:2px 6px;resize:none;border:2px solid var(--accent);border-radius:0;background:var(--bg);color:var(--text);font:inherit;font-size:13px;line-height:20px;outline:none;white-space:pre;overflow:hidden}.uf-ss-editor.is-open{display:block}.uf-ss-tabs{display:flex;align-items:center;gap:2px;flex:none;padding:3px 8px;border-top:1px solid var(--border);background:var(--bg-alt);overflow-x:auto;scrollbar-width:none}.uf-ss-tabs::-webkit-scrollbar{display:none}.uf-ss-tab,.uf-ss-addtab{flex:none;height:24px;padding:0 12px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--text-muted);font:inherit;font-size:12.5px;cursor:pointer;white-space:nowrap}.uf-ss-tab.is-active{background:var(--bg);color:var(--text);border-color:var(--border);font-weight:600}.uf-ss-tab:hover,.uf-ss-addtab:hover{color:var(--text)}.uf-ss-addtab{font-family:var(--font-mono);padding:0 8px}.uf-ss-ac{position:absolute;z-index:41;max-width:min(360px,calc(100% - 16px));max-height:220px;overflow:auto;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;box-shadow:0 6px 22px #0000003d;padding:3px;font-size:12.5px;user-select:none;-webkit-user-select:none}.uf-ss-ac-list{display:flex;flex-direction:column;min-width:220px}.uf-ss-ac-item{display:flex;align-items:baseline;gap:10px;padding:4px 8px;border:0;border-radius:4px;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer;white-space:nowrap}.uf-ss-ac-item b{font-family:var(--font-mono);font-weight:600}.uf-ss-ac-item span{color:var(--text-muted);overflow:hidden;text-overflow:ellipsis}.uf-ss-ac-item:hover{background:var(--bg-surface)}.uf-ss-ac-item.is-on{background:color-mix(in srgb,var(--accent) 18%,var(--bg))}.uf-ss-ac-sig{padding:4px 8px;font-family:var(--font-mono);white-space:nowrap;color:var(--text-muted)}.uf-ss-ac-sig b{color:var(--text);font-weight:600}.uf-ss-ac-param.is-on{color:var(--text);font-weight:700}.uf-ss-refs{position:absolute;left:0;top:0;z-index:5;pointer-events:none}.uf-ss-ref{position:absolute;box-sizing:border-box;border:2px solid var(--ref, var(--accent));background:color-mix(in srgb,var(--ref, var(--accent)) 8%,transparent)}.uf-ss-ref.is-live{border-style:dashed;animation:uf-ss-ants .6s linear infinite}@keyframes uf-ss-ants{to{outline-offset:0;border-color:color-mix(in srgb,var(--ref, var(--accent)) 60%,transparent)}}.uf-ss-pop{position:absolute;z-index:40;min-width:160px;max-width:min(420px,calc(100% - 16px));max-height:calc(100% - 16px);overflow:auto;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 28px #00000047;padding:6px;font-size:13px;user-select:text;-webkit-user-select:text}.uf-ss-menu{display:flex;flex-direction:column}.uf-ss-menu button{text-align:left;padding:6px 10px;border:0;border-radius:5px;background:transparent;color:var(--text);font:inherit;cursor:pointer;white-space:nowrap}.uf-ss-menu button:hover{background:var(--bg-surface)}.uf-ss-menu button:disabled{opacity:.45;cursor:default}.uf-ss-menu button.is-on{color:var(--accent);font-weight:600}.uf-ss-menu-sep{height:1px;background:var(--border);margin:4px 0}.uf-ss-form{display:flex;flex-direction:column;gap:8px;padding:4px}.uf-ss-form.uf-ss-inline{flex-direction:row;align-items:center;padding:4px 6px}.uf-ss-form-title{font-weight:600;font-size:12.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.uf-ss-form-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.uf-ss-form label{display:inline-flex;align-items:center;gap:4px;font-size:12.5px}.uf-ss-form input[type=text],.uf-ss-form input:not([type]),.uf-ss-form select,.uf-ss-form textarea{padding:4px 6px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text);font:inherit;font-size:13px;min-width:0}.uf-ss-form input:not([type]){width:110px}.uf-ss-form textarea{width:240px;max-width:100%;resize:vertical}.uf-ss-form input[type=color]{width:28px;height:22px;padding:0;border:1px solid var(--border);border-radius:4px;background:none}.uf-ss-form button{padding:4px 10px;border:1px solid var(--border);border-radius:5px;background:var(--bg-surface);color:var(--text);font:inherit;font-size:12.5px;cursor:pointer}.uf-ss-form button[type=submit]{background:var(--accent);color:#fff;border-color:transparent}.uf-ss-cond [hidden]{display:none}.uf-ss-rules{min-width:300px}.uf-ss-rule-list{display:flex;flex-direction:column;gap:4px;max-height:160px;overflow:auto}.uf-ss-rule{display:flex;align-items:center;gap:6px;font-size:12.5px;padding:3px 4px;border-radius:4px;background:var(--bg-surface)}.uf-ss-rule code{font-family:var(--font-mono);font-size:11.5px}.uf-ss-rule button{margin-left:auto;padding:0 6px;border:0;background:none;color:var(--text-muted);cursor:pointer;font-size:14px}.uf-ss-dot{display:inline-block;width:12px;height:12px;border-radius:50%;border:1px solid var(--border)}.uf-ss-muted{color:var(--text-muted);font-size:12.5px}.uf-ss-swatches{display:grid;grid-template-columns:repeat(7,24px);gap:4px;padding:2px}.uf-ss-swatch{width:24px;height:24px;border:1px solid var(--border);border-radius:4px;cursor:pointer;padding:0;font:inherit}.uf-ss-swatch.is-on{outline:2px solid var(--accent);outline-offset:1px}.uf-ss-swatch.is-none{background:var(--bg);color:var(--text-muted)}.uf-ss-swatch.is-custom{display:inline-flex;align-items:center;justify-content:center;background:var(--bg-surface);color:var(--text-muted);position:relative;overflow:hidden}.uf-ss-swatch.is-custom input{position:absolute;inset:0;opacity:0;cursor:pointer}.uf-ss-static .uf-ss-sheet{margin:0 0 24px}.uf-ss-static .uf-ss-name{position:static;display:block;min-width:0;height:auto;border:0;padding:0;margin:0 0 8px;font:inherit;font-weight:600;font-size:15px;cursor:default}.uf-ss-static .uf-ss-scroll{overflow:auto}.uf-ss-static .uf-ss-notes{color:var(--text-muted);font-size:14px}@media (max-width: 640px){.preview-content .uf-ss{font-size:14px}.uf-ss-bar button{min-width:34px;height:32px;font-size:15px}.uf-ss-grid th,.uf-ss-grid td{height:32px;font-size:14px}.uf-ss-editor{font-size:16px;line-height:24px}.uf-ss-fxinput{font-size:16px}.uf-ss-pop,.uf-ss-ac{max-width:calc(100% - 8px)}}.uf-ss-grid td.is-multiline{white-space:pre-wrap;vertical-align:top;line-height:1.35}.uf-ss-grid tr.is-spacer td{padding:0;border:0;background:transparent}.uf-ss-grid td.is-fill{box-shadow:inset 0 0 0 1px var(--accent);background-image:linear-gradient(color-mix(in srgb,var(--accent) 8%,transparent),color-mix(in srgb,var(--accent) 8%,transparent))}.uf-ss-fill{position:absolute;z-index:7;width:8px;height:8px;background:var(--accent);border:1px solid var(--bg);cursor:crosshair;border-radius:1px}.uf-ss-charts-layer{position:absolute;left:0;top:0;z-index:5;pointer-events:none}.uf-ss-chart{position:absolute;pointer-events:auto;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--bg);box-shadow:0 2px 12px #00000024}.uf-ss-chart svg{display:block}.uf-ss-chart-bar{position:absolute;top:4px;right:4px;display:flex;gap:2px;align-items:center;opacity:0;transition:opacity .12s}.uf-ss-chart:hover .uf-ss-chart-bar{opacity:1}.uf-ss-chart-range{font-family:var(--font-mono);font-size:10.5px;color:var(--text-muted);margin-right:4px}.uf-ss-chart-bar button{width:22px;height:22px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text);cursor:pointer;font-size:12px;padding:0}.uf-ss-chart-bar button[data-chart-move]{cursor:move}.uf-ss-editor.is-open{white-space:pre-wrap;overflow:hidden}
