*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--oi-color-background,#fff);height:100%;color:var(--oi-color-text,#1f2328);font-family:var(--oi-font-body,system-ui, sans-serif);-webkit-text-size-adjust:100%;margin:0;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--oi-color-accent);outline-offset:1px}::selection{background:var(--oi-color-selection)}kbd{font-family:var(--oi-font-code);color:var(--oi-color-text-muted);background:var(--oi-color-surface1);border:1px solid var(--oi-color-border);white-space:nowrap;border-bottom-width:2px;border-radius:4px;padding:0 5px;font-size:11px;line-height:1.5;display:inline-block}code{font-family:var(--oi-font-code);font-size:.9em}.dialog-input,.hotkey-search,.macro-field input,.macro-step select,.macro-step input,.setting-control select,.setting-control input:not([type=checkbox]){border:1px solid var(--oi-color-border);background:var(--oi-color-surface1);color:var(--oi-color-text);border-radius:6px;outline:none;padding:5px 9px;font-size:13.5px}.dialog-input:focus,.hotkey-search:focus,.macro-field input:focus,.macro-step select:focus,.macro-step input:focus,.setting-control select:focus,.setting-control input:focus{border-color:var(--oi-color-accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--oi-color-accent) 20%, transparent)}.app{height:100vh;height:100dvh;display:flex}.ribbon{background:var(--oi-color-surface1);border-inline-end:1px solid var(--oi-color-border);flex-direction:column;flex:none;align-items:center;gap:2px;width:44px;padding:8px 0 10px;display:flex}.ribbon-space{flex:1}body:not(.in-vault) .vault-only{display:none}.ribbon-button,.icon-button{width:32px;height:32px;color:var(--oi-color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;place-items:center;padding:0;display:grid}.ribbon-button svg,.icon-button svg{width:18px;height:18px}.ribbon-button:hover,.icon-button:hover:not(:disabled){background:var(--oi-color-surface2);color:var(--oi-color-text)}.ribbon-button.active{color:var(--oi-color-accent)}.icon-button:disabled{opacity:.35;cursor:default}.sidebar{background:var(--oi-color-surface1);border-inline-end:1px solid var(--oi-color-border);flex-direction:column;flex:none;width:260px;min-width:180px;max-width:520px;font-size:13.5px;display:flex;position:relative}.sidebar-backdrop{display:none}.sidebar-tab-row{border-bottom:1px solid var(--oi-color-border);gap:2px;padding:6px 8px;display:flex}.sidebar-tab{width:32px;height:28px;color:var(--oi-color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;display:grid}.sidebar-tab svg{width:17px;height:17px}.sidebar-tab:hover{background:var(--oi-color-surface2);color:var(--oi-color-text)}.sidebar-tab.active{background:var(--oi-color-surface3);color:var(--oi-color-text)}.sidebar-pane{flex-direction:column;flex:1;min-height:0;display:flex}.sidebar-tool-row{justify-content:center;gap:2px;padding:6px 8px 2px;display:flex}.sidebar-tool-row .icon-button{width:28px;height:28px}.sidebar-tool-row .icon-button svg{width:16px;height:16px}.file-tree{outline:none;flex:1;padding:4px 8px 16px;overflow:auto}.file-tree.drop-target{background:color-mix(in srgb, var(--oi-color-accent) 7%, transparent)}.tree-item{min-height:28px;padding:3px 8px 3px calc(var(--depth,0) * 17px + 2px);color:var(--oi-color-text-muted);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:5px;align-items:center;gap:2px;display:flex;position:relative}.tree-item:before{content:"";width:calc(var(--depth,0) * 17px);background:repeating-linear-gradient(to right, color-mix(in srgb, var(--oi-color-border) 80%, transparent) 0 1px, transparent 1px 17px);pointer-events:none;position:absolute;top:0;bottom:0;left:10px}.tree-item:hover{background:var(--oi-color-surface2);color:var(--oi-color-text)}.tree-item.active{background:var(--oi-color-surface3);color:var(--oi-color-text);font-weight:500}.tree-folder{color:var(--oi-color-text)}.tree-item.pending .tree-name{opacity:.75;font-style:italic}.tree-item.other{opacity:.6}.tree-item.drop-target{background:var(--oi-color-accent-soft);outline:1px solid var(--oi-color-accent);color:var(--oi-color-text)}.tree-chevron{width:16px;height:16px;color:var(--oi-color-text-muted);flex:none;place-items:center;display:grid}.tree-chevron svg{width:12px;height:12px}.tree-name{text-overflow:ellipsis;overflow:hidden}.tree-rename{border:1px solid var(--oi-color-accent);background:var(--oi-color-background);min-width:0;color:var(--oi-color-text);border-radius:4px;outline:none;flex:1;padding:1px 5px}.tree-empty{color:var(--oi-color-text-muted);text-align:center;padding:18px 10px;font-size:13px;line-height:1.5}.search-box{border:1px solid var(--oi-color-border);background:var(--oi-color-background);border-radius:6px;align-items:center;gap:2px;margin:8px 8px 4px;padding:0 4px 0 9px;display:flex}.search-box:focus-within{border-color:var(--oi-color-accent)}.search-input{min-width:0;color:var(--oi-color-text);background:0 0;border:none;outline:none;flex:1;padding:6px 0}.find-toggle{min-width:24px;height:22px;color:var(--oi-color-text-muted);font:600 12px/1 var(--oi-font-code);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:0 3px}.find-toggle:hover{background:var(--oi-color-surface2);color:var(--oi-color-text)}.find-toggle.active{background:var(--oi-color-accent-soft);color:var(--oi-color-accent)}.search-hint{color:var(--oi-color-text-muted);padding:0 12px 6px;font-size:11.5px}.search-result{flex:1;padding:0 8px 16px;font-size:13px;overflow:auto}.search-summary{color:var(--oi-color-text-muted);padding:4px 4px 6px;font-size:12px}.search-file{cursor:pointer;border-radius:5px;justify-content:space-between;align-items:center;gap:8px;margin-top:4px;padding:4px 6px;font-weight:600;display:flex}.search-file:hover,.search-line:hover{background:var(--oi-color-surface2);color:var(--oi-color-text)}.search-count{background:var(--oi-color-surface3);color:var(--oi-color-text-muted);border-radius:999px;padding:0 6px;font-size:11px;font-weight:500}.search-line{color:var(--oi-color-text-muted);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-radius:5px;padding:3px 6px 3px 14px;font-size:12.5px;overflow:hidden}.search-line mark{background:var(--oi-color-highlight);color:var(--oi-color-text);border-radius:2px}.search-none{color:var(--oi-color-text-muted);padding:12px 6px}.vault-button{color:var(--oi-color-text);text-align:start;cursor:pointer;background:0 0;border:none;border-top:1px solid #0000;border-radius:6px;align-items:center;gap:7px;margin:4px 8px 8px;padding:6px 8px;font-size:13px;font-weight:600;display:flex}.vault-button:hover{background:var(--oi-color-surface2)}.vault-button svg{width:15px;height:15px;color:var(--oi-color-text-muted);flex:none}.vault-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.sidebar-resize{top:0;bottom:0;z-index:5;cursor:col-resize;touch-action:none;width:6px;position:absolute;inset-inline-end:-3px}.sidebar-resize:hover,.sidebar-resize:active{background:color-mix(in srgb, var(--oi-color-accent) 45%, transparent)}.workspace{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.view-header{flex:none;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;height:40px;padding:0 8px;display:grid}.view-nav,.view-action{align-items:center;gap:2px;display:flex}.view-action{justify-content:flex-end}.view-nav .icon-button,.view-action>.icon-button{width:28px;height:28px}.view-header.empty .view-title,.view-header.empty .view-action{visibility:hidden}.view-title{max-width:min(60vw,560px);color:var(--oi-color-text-muted);white-space:nowrap;text-overflow:ellipsis;text-align:center;padding:3px 10px;font-size:13px;overflow:hidden}.view-crumb{opacity:.8}.view-crumb-name{color:var(--oi-color-text)}.view-badge{background:color-mix(in srgb, var(--oi-color-warning) 14%, transparent);color:var(--oi-color-warning);border-radius:999px;margin-inline-start:8px;padding:1px 7px;font-size:11px}.view-header.no-mode .view-mode{display:none}.view-mode{background:var(--oi-color-surface1);border-radius:7px;gap:1px;margin-inline-end:4px;padding:2px;display:flex}.view-mode .icon-button{border-radius:5px;width:28px;height:24px}.view-mode .icon-button svg{width:16px;height:16px}.view-mode .icon-button.active{background:var(--oi-color-background);color:var(--oi-color-accent);box-shadow:0 1px 2px #0000001f}.view-content{overscroll-behavior:contain;flex:1;min-height:0;overflow:auto}.page{--page-start:64px;padding:28px 48px 42vh var(--page-start);cursor:text;margin:0 auto}.page.readable{max-width:832px}body[data-view=Read] .page{cursor:auto}#note.oi-note,.note-head{font-size:var(--app-note-size,16px)}.note-head{margin-bottom:14px}.inline-title{resize:none;width:100%;color:var(--oi-color-text);font:700 1.8em/1.25 var(--oi-font-body);letter-spacing:-.012em;background:0 0;border:none;outline:none;margin:0 0 10px;padding:0;display:block;overflow:hidden}.inline-title:read-only{cursor:default}.note-head-action{flex-direction:column;align-items:flex-start;gap:6px;margin:-4px 0 12px;font-size:.85em;display:flex}.note-head-add{color:var(--oi-color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:3px 9px 3px 6px;display:inline-flex}.note-head-add:hover{background:var(--oi-color-surface1);color:var(--oi-color-text)}.note-head-notice{border-inline-start:2px solid var(--oi-color-accent);background:var(--oi-color-surface1);color:var(--oi-color-text-muted);border-radius:6px;padding:7px 11px;line-height:1.5}.note-head-link{color:var(--oi-color-accent);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.tab-bar{background:var(--oi-color-surface1);border-bottom:1px solid var(--oi-color-border);flex:none;align-items:flex-end;gap:4px;height:38px;padding:6px 8px 0;display:flex}.tab-list{scrollbar-width:none;align-items:flex-end;gap:2px;min-width:0;display:flex;overflow-x:auto}.tab-list::-webkit-scrollbar{display:none}.tab{width:200px;min-width:72px;height:32px;color:var(--oi-color-text-muted);-webkit-user-select:none;user-select:none;border-radius:7px 7px 0 0;flex:0 auto;align-items:center;gap:6px;padding:0 6px 0 12px;font-size:12.5px;display:flex;position:relative}.tab:hover{background:color-mix(in srgb, var(--oi-color-surface3) 55%, transparent);color:var(--oi-color-text)}.tab.active{background:var(--oi-color-background);color:var(--oi-color-text);box-shadow:0 0 0 1px var(--oi-color-border), 0 1px 0 0 var(--oi-color-background)}.tab.active:before{content:"";background:var(--oi-color-accent);border-radius:0 0 2px 2px;height:2px;position:absolute;top:0;left:12px;right:12px}.tab-icon{flex:none;display:grid}.tab-icon svg{width:14px;height:14px}.tab-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.tab.pending .tab-title{font-style:italic}.tab-dirty{background:var(--oi-color-text-muted);border-radius:50%;flex:none;width:7px;height:7px;margin:0 6px;display:none}.tab-close{width:20px;height:20px;color:inherit;cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;flex:none;place-items:center;padding:0;display:grid}.tab-close svg{width:12px;height:12px}.tab:hover .tab-close,.tab.active .tab-close{opacity:.75}.tab-close:hover{background:var(--oi-color-surface3);opacity:1}.tab.dirty:not(:hover) .tab-dirty{display:block}.tab.dirty:not(:hover) .tab-close{display:none}.tab.dragging{opacity:.45}.tab.drop-before{box-shadow:inset 2px 0 0 var(--oi-color-accent)}.tab.drop-after{box-shadow:inset -2px 0 0 var(--oi-color-accent)}.tab-new{width:28px;height:28px;color:var(--oi-color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;place-items:center;margin-bottom:2px;padding:0;display:grid}.tab-new:hover{background:var(--oi-color-surface2);color:var(--oi-color-text)}.tab-new svg{width:15px;height:15px}.hover-character{z-index:4;background:var(--oi-hover);pointer-events:none;border-radius:2px;position:fixed}body.no-block-outline #note .oi-frame[data-oi-editing]{outline:none}body.no-block-outline #note .oi-frame[data-oi-editing]:after{content:none}#note .oi-frame.oi-gutter-target{outline:1.5px dashed color-mix(in srgb, var(--oi-color-accent) 60%, transparent);outline-offset:4px;border-radius:4px}body.dragging #note .oi-frame{outline:1px dashed color-mix(in srgb, var(--oi-color-text-muted) 32%, transparent);outline-offset:2px;border-radius:4px}body.dragging #note .oi-frame.oi-dragging{opacity:.35;outline:1.5px dashed var(--oi-color-accent)}body.dragging #note .oi-frame.oi-drop-into{outline:2px solid var(--oi-color-accent);outline-offset:4px;background:color-mix(in srgb, var(--oi-color-accent) 6%, transparent)}body.dragging,body.dragging *{-webkit-user-select:none;user-select:none;cursor:grabbing!important}.drag-ghost{z-index:70;border:1px solid var(--oi-color-border);background:var(--oi-color-background);max-height:160px;color:var(--oi-color-text);opacity:.9;pointer-events:none;border-radius:8px;padding:6px 12px;font-size:14px;line-height:1.5;position:fixed;top:0;left:0;overflow:hidden;box-shadow:0 12px 32px #00000038;-webkit-mask-image:linear-gradient(#000 70%,#0000);mask-image:linear-gradient(#000 70%,#0000)}.gutter{z-index:20;display:flex;position:fixed}.gutter.gutter-dragging{opacity:0}.gutter-button{width:22px;height:24px;color:var(--oi-color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;place-items:center;padding:0;display:grid}.gutter-button svg{width:16px;height:16px}.gutter-button:hover{background:var(--oi-color-surface2);color:var(--oi-color-text)}.gutter-handle{cursor:grab;touch-action:none}.drop-line{z-index:30;background:var(--oi-color-accent);height:3px;box-shadow:0 0 0 2px color-mix(in srgb, var(--oi-color-accent) 22%, transparent);pointer-events:none;border-radius:2px;position:fixed}.drop-line:before{content:"";background:var(--oi-color-accent);border-radius:50%;width:9px;height:9px;position:absolute;top:-3px;left:-4px}::highlight(oi-find){background-color:color-mix(in srgb, var(--oi-color-highlight) 85%, transparent)}::highlight(oi-find-current){color:#1f2328;background-color:#ff9632}#note .oi-find-hit{background:color-mix(in srgb, var(--oi-color-highlight) 45%, transparent);border-radius:4px}#note .oi-find-current-block{outline-offset:3px;border-radius:4px;outline:1px solid #ff963299}.find-bar{top:44px;z-index:30;border:1px solid var(--oi-color-border);background:var(--oi-color-background);border-radius:8px;flex-direction:column;gap:4px;padding:6px;font-size:13px;display:flex;position:absolute;inset-inline-end:22px;box-shadow:0 8px 24px #00000024}.find-row{align-items:center;gap:2px;display:flex}.find-input{border:1px solid var(--oi-color-border);background:var(--oi-color-surface1);width:230px;min-width:0;color:var(--oi-color-text);border-radius:5px;outline:none;padding:5px 8px}.find-input:focus{border-color:var(--oi-color-accent)}.find-count{min-width:74px;color:var(--oi-color-text-muted);text-align:center;white-space:nowrap;padding:0 6px;font-size:12px}.find-button{width:26px;height:26px;color:var(--oi-color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;place-items:center;padding:0;display:grid}.find-button svg{width:16px;height:16px}.find-button:hover{background:var(--oi-color-surface2);color:var(--oi-color-text)}.find-text-button{border:1px solid var(--oi-color-border);background:var(--oi-color-surface1);height:26px;color:var(--oi-color-text);cursor:pointer;border-radius:5px;margin-inline-start:4px;padding:0 10px;font-size:12.5px}.find-text-button:hover{background:var(--oi-color-surface2)}.source-editor{--source-gutter:min(52px, var(--page-start,52px));font-family:var(--oi-font-code);font-size:calc(var(--app-note-size,16px) * .875);tab-size:4;counter-reset:source-line;margin-inline-start:calc(var(--source-gutter) * -1);line-height:1.65;position:relative}.source-lines,.source-input{padding:0 0 0 var(--source-gutter);font:inherit;line-height:inherit;letter-spacing:0;tab-size:inherit;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;border:none;margin:0}.source-lines{color:var(--oi-color-text);pointer-events:none}.source-line{min-height:1.65em;counter-increment:source-line;margin-inline-start:calc(var(--source-gutter) * -1);padding-inline-start:var(--source-gutter);position:relative}.source-line:before{content:counter(source-line);width:calc(var(--source-gutter) - 10px);color:var(--oi-color-text-muted);opacity:.55;text-align:right;-webkit-user-select:none;user-select:none;font-size:.85em;line-height:1.94118em;position:absolute;top:0;left:0}.source-editor:focus-within .source-line.current{background:color-mix(in srgb, var(--oi-color-text) 4.5%, transparent)}.source-line.current:before{opacity:1;color:var(--oi-color-text)}.source-input{resize:none;color:#0000;-webkit-text-fill-color:transparent;width:100%;min-height:100%;caret-color:var(--oi-color-text);background:0 0;outline:none;display:block;position:absolute;top:0;left:0;overflow:hidden}.source-input::selection{background:color-mix(in srgb, var(--oi-color-selection) 70%, transparent);-webkit-text-fill-color:transparent}.s-fence,.s-id,.s-comment{color:var(--oi-color-text-muted)}.s-comment{font-style:italic}.s-key,.s-type,.s-marker,.s-heading,.s-tag{color:var(--oi-color-accent)}.s-prop,.s-language,.s-inline-block,.s-span{color:var(--oi-color-warning)}.s-code-inline{color:var(--oi-color-success)}.s-body{color:var(--oi-color-text)}.s-mark{background:color-mix(in srgb, var(--oi-color-highlight) 70%, transparent)}.s-strike{text-decoration:line-through}.s-link{color:var(--oi-color-accent);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--oi-color-accent) 45%, transparent);text-decoration-color:color-mix(in srgb, var(--oi-color-accent) 45%, transparent)}mark.s-find{background:color-mix(in srgb, var(--oi-color-highlight) 85%, transparent);color:inherit;border-radius:2px}mark.s-find-current{color:#1f2328;background:#ff9632}mark.s-find-current span{color:inherit}.start-screen{justify-content:center;align-items:flex-start;min-height:100%;padding:11vh 32px 48px;display:flex}.start{width:min(780px,100%)}.start-brand{align-items:center;gap:18px;margin-bottom:34px;display:flex}.start-logo{border-radius:13px;flex:none;place-items:center;width:58px;height:58px;display:grid;box-shadow:0 6px 22px #c8a03247}.start-logo svg{display:block}.start-brand h1{font:600 25px/1.2 "Courier New", Courier, var(--oi-font-code);letter-spacing:.22em;text-transform:uppercase;margin:0}.start-brand p{color:var(--oi-color-text-muted);margin:4px 0 0;font-size:15px}.start-message{background:var(--oi-color-accent-soft);border-radius:8px;margin:0 0 24px;padding:10px 14px;font-size:14px;line-height:1.5}.start-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;display:grid}.start-column h2{margin:0 0 10px;font-size:15px;font-weight:600}.start-link{width:calc(100% + 16px);color:var(--oi-color-accent);text-align:start;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;margin-inline-start:-8px;padding:5px 8px;font-size:14px;display:flex}.start-link:hover:not(:disabled){background:var(--oi-color-surface1)}.start-link:disabled{color:var(--oi-color-text-muted);cursor:default;opacity:.7}.start-link svg{flex:none;width:18px;height:18px}.start-link span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.start-link small{color:var(--oi-color-text-muted);white-space:nowrap;font-size:12px}.start-note{color:var(--oi-color-text-muted);margin:2px 0 10px;font-size:12.5px;line-height:1.5}.start-recent-item{align-items:center;gap:2px;display:flex}.start-recent-item .start-link{flex:1;width:auto;min-width:0}.start-remove{width:26px;height:26px;color:var(--oi-color-text-muted);opacity:0;cursor:pointer;background:0 0;border:none;border-radius:5px;flex:none;font-size:16px}.start-recent-item:hover .start-remove,.start-remove:focus-visible{opacity:1}.start-remove:hover{background:var(--oi-color-surface2);color:var(--oi-color-text)}.empty-view{height:100%}.empty-state{flex-direction:column;justify-content:center;align-items:center;gap:2px;height:100%;padding:24px;display:flex}.empty-title{color:var(--oi-color-text-muted);margin-bottom:12px;font-size:17px;font-weight:600}.empty-link{color:var(--oi-color-accent);cursor:pointer;background:0 0;border:none;border-radius:5px;align-items:center;gap:10px;padding:4px 10px;font-size:14px;display:flex}.empty-link:hover{background:var(--oi-color-surface1)}.file-view{flex-direction:column;height:100%;display:flex}.file-view-stage{flex:1;place-items:center;min-height:0;padding:24px;display:grid;overflow:auto}.file-view-media{border-radius:6px;max-width:100%;max-height:100%}.file-view-image{cursor:zoom-in;background:repeating-conic-gradient(var(--oi-color-surface2) 0 25%, var(--oi-color-background) 0 50%) 0 0 / 16px 16px}.file-view-stage.actual{place-items:start center}.file-view-stage.actual .file-view-image{cursor:zoom-out;max-width:none;max-height:none}.file-view-video{background:#000;width:min(100%,960px)}.file-view-audio{width:min(100%,520px)}.file-view-message{color:var(--oi-color-text-muted);font-size:14px}.file-view-meta{color:var(--oi-color-text-muted);flex:none;justify-content:center;gap:14px;padding:6px 12px 10px;font-size:12.5px;display:flex}.file-view-name{color:var(--oi-color-text)}.graph-host{height:100%}.graph-view{background:var(--oi-color-background);height:100%;position:relative}.graph-canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block}.graph-tool{border:1px solid var(--oi-color-border);background:color-mix(in srgb, var(--oi-color-background) 90%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px 12px;max-width:calc(100% - 20px);padding:6px 8px;font-size:12.5px;display:flex;position:absolute;top:10px;left:10px}.graph-filter{border:1px solid var(--oi-color-border);background:var(--oi-color-background);width:170px;color:var(--oi-color-text);border-radius:5px;outline:none;padding:4px 8px}.graph-filter:focus{border-color:var(--oi-color-accent)}.graph-tool label{color:var(--oi-color-text-muted);white-space:nowrap;cursor:pointer;align-items:center;gap:5px;display:flex}.graph-tool input[type=checkbox]{accent-color:var(--oi-color-accent)}.graph-tool .icon-button{width:28px;height:28px}.graph-empty{color:var(--oi-color-text-muted);text-align:center;pointer-events:none;place-items:center;padding:24px;font-size:14px;display:grid;position:absolute;inset:0}.status-bar{z-index:25;border:1px solid var(--oi-color-border);border-inline-end:none;background:var(--oi-color-surface1);color:var(--oi-color-text-muted);-webkit-user-select:none;user-select:none;border-bottom:none;border-start-start-radius:7px;gap:14px;padding:3px 12px;font-size:12px;display:flex;position:fixed;bottom:0;right:0}.status-bar:empty{display:none}.status-item{white-space:nowrap}.status-save{cursor:pointer}.status-save:hover{color:var(--oi-color-text)}.status-unsaved,.status-download{color:var(--oi-color-warning)}.status-failed{color:var(--oi-color-danger);font-weight:600}.menu{z-index:50;border:1px solid var(--oi-color-border);background:var(--oi-color-background);border-radius:8px;outline:none;flex-direction:column;min-width:220px;max-width:340px;max-height:min(460px,70vh);padding:4px;font-size:13.5px;display:flex;position:fixed;box-shadow:0 8px 28px #0000002e}.menu-search{border:1px solid var(--oi-color-border);background:var(--oi-color-surface1);color:var(--oi-color-text);border-radius:6px;outline:none;margin:2px 2px 4px;padding:6px 8px}.menu-list{overflow:auto}.menu-item{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:5px;align-items:center;gap:8px;padding:5px 8px;display:flex}.menu-item.active{background:var(--oi-color-surface2)}.menu-item.danger{color:var(--oi-color-danger)}.menu-glyph{text-align:center;width:22px;color:var(--oi-color-text-muted);flex:none;font-size:12px;font-weight:600}.menu-item>svg{width:16px;height:16px;color:var(--oi-color-text-muted);flex:none;margin:0 3px}.menu-title{flex:1;min-width:0}.menu-explain{color:var(--oi-color-text-muted);white-space:normal;margin-top:1px;font-size:11.5px;line-height:1.35;display:block}.menu-hint{color:var(--oi-color-text-muted);white-space:nowrap;font-size:11.5px}.menu-chevron svg{width:14px;height:14px;color:var(--oi-color-text-muted)}.menu-separator{background:var(--oi-color-border);height:1px;margin:4px 6px}.menu-empty{color:var(--oi-color-text-muted);padding:8px}.format-bar{z-index:40;border:1px solid var(--oi-color-border);background:var(--oi-color-background);border-radius:8px;gap:2px;padding:3px;display:flex;position:fixed;box-shadow:0 6px 20px #00000029}.format-bar button{min-width:30px;height:28px;color:var(--oi-color-text);cursor:pointer;background:0 0;border:none;border-radius:5px;font-size:14px}.format-bar button:hover{background:var(--oi-color-surface2)}.format-bar mark{background:var(--oi-color-highlight);color:inherit}.format-bar code{font-size:12px}.format-color{color:var(--oi-color-accent);font-weight:700;text-decoration:underline}.modal-backdrop{z-index:60;background:#00000061;place-items:center;padding:16px;animation:.12s ease-out dim-in;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--oi-color-border);background:var(--oi-color-background);max-width:100%;max-height:88vh;color:var(--oi-color-text);border-radius:10px;position:relative;overflow:hidden;box-shadow:0 18px 50px #00000047}.modal h2{margin:0 0 10px;font-size:18px;font-weight:650}.modal-close{top:8px;z-index:1;width:28px;height:28px;color:var(--oi-color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;font-size:20px;line-height:1;position:absolute;inset-inline-end:10px}.modal-close:hover{background:var(--oi-color-surface2);color:var(--oi-color-text)}.dialog-modal{width:min(430px,100%);padding:18px 20px 16px}.dialog-text{margin:0 0 14px;font-size:14px;line-height:1.5}.dialog-input{width:100%}.dialog-row{justify-content:flex-end;align-items:center;gap:8px;margin-top:16px;display:flex}.dialog-space{flex:1}.dialog-button{border:1px solid var(--oi-color-border);background:var(--oi-color-surface1);color:var(--oi-color-text);cursor:pointer;border-radius:6px;padding:6px 14px;font-size:13.5px}.dialog-button:hover{background:var(--oi-color-surface2)}.dialog-button.danger{color:var(--oi-color-danger)}.dialog-button.primary{border-color:var(--oi-color-accent);background:var(--oi-color-accent);color:#fff}.dialog-button.primary.danger{border-color:var(--oi-color-danger);background:var(--oi-color-danger);color:#fff}.dialog-button.primary:hover{filter:brightness(1.08)}.trash-modal{flex-direction:column;width:min(560px,100%);padding:18px 20px 16px;display:flex}.trash-list{border-top:1px solid var(--oi-color-border);min-height:0;max-height:50vh;margin-top:10px;overflow:auto}.trash-row{border-bottom:1px solid var(--oi-color-border);align-items:center;gap:8px;padding:7px 0;font-size:13.5px;display:flex}.trash-row span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.empty-trash{color:var(--oi-color-text-muted)}.toast-stack{z-index:90;pointer-events:none;flex-direction:column;align-items:center;gap:6px;width:max-content;max-width:min(560px,100vw - 32px);display:flex;position:fixed;bottom:34px;left:50%;transform:translate(-50%)}.toast{background:color-mix(in srgb, var(--oi-color-text) 92%, transparent);color:var(--oi-color-background);border-radius:8px;padding:9px 16px;font-size:13.5px;line-height:1.45;transition:opacity .3s,transform .3s;animation:.18s ease-out toast-in;box-shadow:0 8px 24px #0003}.toast-out{opacity:0;transform:translateY(8px)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@keyframes dim-in{0%{background-color:#0000}}.setting-modal{grid-template-columns:190px minmax(0,1fr);width:min(900px,100%);height:min(640px,88vh);display:grid}.setting-nav{background:var(--oi-color-surface1);border-inline-end:1px solid var(--oi-color-border);flex-direction:column;gap:2px;padding:14px 8px;display:flex}.setting-nav button{color:var(--oi-color-text);text-align:start;cursor:pointer;background:0 0;border:none;border-radius:5px;padding:6px 10px;font-size:13.5px}.setting-nav button:hover,.setting-nav button.active{background:var(--oi-color-surface3)}.setting-body{padding:18px 28px 32px;font-size:14px;overflow:auto}.setting-body h2{margin:0 40px 10px 0;font-size:18px}.setting-body h3{margin:22px 0 4px;font-size:14.5px}.setting-row{border-top:1px solid var(--oi-color-border);align-items:center;gap:18px;padding:12px 0;display:flex}.setting-text{flex:1;min-width:0}.setting-open{color:inherit;text-align:start;cursor:pointer;background:0 0;border:none;padding:0}.setting-open:hover .setting-name{color:var(--oi-color-accent)}.setting-more{color:var(--oi-color-accent);margin-top:4px;font-size:12px}.setting-name{font-weight:560}.setting-explain{color:var(--oi-color-text-muted);margin-top:2px;font-size:12.5px;line-height:1.45}.setting-meta{color:var(--oi-color-text-muted);margin-top:18px;font-size:12px}.setting-back{color:var(--oi-color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;margin:0 0 8px -6px;padding:2px 6px;font-size:13px}.setting-back:hover{background:var(--oi-color-surface2);color:var(--oi-color-text)}.setting-problem{border-inline-start:3px solid var(--oi-color-warning);background:color-mix(in srgb, var(--oi-color-warning) 10%, transparent);border-radius:6px;margin:0 0 12px;padding:8px 12px;font-size:13px;line-height:1.45}.color-control{align-items:center;gap:6px;display:inline-flex}.color-control input[type=color]{border:1px solid var(--oi-color-border);background:var(--oi-color-surface1);cursor:pointer;border-radius:6px;width:32px;height:30px;padding:3px}.color-control input[type=color]::-webkit-color-swatch-wrapper{padding:0}.color-control input[type=color]::-webkit-color-swatch{border:none;border-radius:4px}.color-control input[type=color]::-moz-color-swatch{border:none;border-radius:4px}.color-control .color-hex{width:96px;font-family:var(--oi-font-code)}.color-dialog{margin:2px 0 16px;display:flex}.color-dialog .color-hex{flex:1;width:auto}.setting-badge{background:var(--oi-color-surface3);color:var(--oi-color-text-muted);border-radius:999px;margin-inline-start:8px;padding:0 6px;font-size:11px;font-weight:500}.setting-control{flex:none}.setting-control select{max-width:220px}.setting-button{border:1px solid var(--oi-color-border);background:var(--oi-color-surface1);color:var(--oi-color-text);white-space:nowrap;cursor:pointer;border-radius:6px;padding:4px 10px;font-size:12.5px}.setting-button:hover{background:var(--oi-color-surface2)}.setting-button.danger{color:var(--oi-color-danger)}.setting-subhead{justify-content:space-between;align-items:center;gap:8px;display:flex}.setting-subhead h3{margin:0}.switch{width:38px;height:22px;display:inline-block;position:relative}.switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute}.switch span{background:var(--oi-color-surface3);pointer-events:none;border-radius:999px;transition:background .15s;position:absolute;inset:0}.switch span:after{content:"";top:3px;background:var(--oi-color-background);border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;inset-inline-start:3px;box-shadow:0 1px 2px #0003}.switch input:checked+span{background:var(--oi-color-accent)}.switch input:checked+span:after{transform:translate(16px)}.switch input:disabled+span{opacity:.55}.switch input:focus-visible+span{outline:2px solid var(--oi-color-accent);outline-offset:2px}.hotkey-head{align-items:center;gap:8px;margin-bottom:6px;display:flex}.hotkey-search{flex:1;min-width:0}.macro-section{border:1px solid var(--oi-color-border);background:var(--oi-color-surface1);border-radius:8px;margin:12px 0 18px;padding:10px 12px}.macro-row{border-top:1px solid var(--oi-color-border);justify-content:space-between;align-items:center;gap:12px;margin-top:8px;padding-top:8px;display:flex}.macro-row small{color:var(--oi-color-text-muted);margin-top:2px;font-size:12px;display:block}.hotkey-table{flex-direction:column;display:flex}.hotkey-row{border-top:1px solid var(--oi-color-border);grid-template-columns:minmax(0,1fr) auto 28px;align-items:center;gap:12px;padding:7px 0;display:grid}.hotkey-command{flex-direction:column;min-width:0;display:flex}.hotkey-command small{text-overflow:ellipsis;color:var(--oi-color-text-muted);font-family:var(--oi-font-code);font-size:11px;overflow:hidden}.hotkey-key-list{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;display:flex}.key-chip{background:var(--oi-color-surface2);border-radius:5px;align-items:center;display:inline-flex}.key-chip kbd{color:var(--oi-color-text);background:0 0;border:none;font-size:12px}.key-chip button{color:var(--oi-color-text-muted);cursor:pointer;background:0 0;border:none;padding:0 6px 0 0;font-size:14px;line-height:1}.key-chip button:hover{color:var(--oi-color-danger)}.key-chip.conflict{background:color-mix(in srgb, var(--oi-color-danger) 15%, transparent)}.key-chip.conflict kbd{color:var(--oi-color-danger)}.key-add{border:1px dashed var(--oi-color-border);min-width:26px;height:24px;color:var(--oi-color-text-muted);cursor:pointer;background:0 0;border-radius:5px;padding:0 7px;font-size:13px}.key-add:hover{border-color:var(--oi-color-text-muted);color:var(--oi-color-text)}.key-add.recording{border-style:solid;border-color:var(--oi-color-accent);background:var(--oi-color-accent-soft);color:var(--oi-color-accent);animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{box-shadow:0 0 0 3px color-mix(in srgb, var(--oi-color-accent) 25%, transparent)}}.key-reset{width:26px;height:24px;color:var(--oi-color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:5px}.key-reset:hover{background:var(--oi-color-surface2);color:var(--oi-color-text)}.macro-modal{width:min(640px,100%);padding:20px 22px 16px;overflow:auto}.macro-field{color:var(--oi-color-text-muted);flex-direction:column;gap:4px;margin-bottom:14px;font-size:13px;display:flex}.macro-step-list{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.macro-step{grid-template-columns:22px minmax(0,1fr) minmax(0,1fr) 28px;align-items:center;gap:6px;display:grid}.macro-number{color:var(--oi-color-text-muted);text-align:center;font-size:12px}.macro-step select,.macro-step input{width:100%;min-width:0}.macro-step button{width:28px;height:28px;color:var(--oi-color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;font-size:16px}.macro-step button:hover{background:var(--oi-color-surface2);color:var(--oi-color-danger)}.palette-modal{flex-direction:column;align-self:start;width:min(580px,100%);margin-top:12vh;display:flex}.palette-input{border:none;border-bottom:1px solid var(--oi-color-border);color:var(--oi-color-text);background:0 0;outline:none;padding:14px 16px;font-size:15px}.palette-list{max-height:52vh;padding:4px;overflow:auto}.palette-item{cursor:pointer;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;font-size:14px;display:flex}.palette-item span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.palette-item.active{background:var(--oi-color-surface2)}@media (hover:none){.page{--page-start:36px}.start-remove,.tab-close{opacity:1}}@media (max-width:640px){.app{flex-direction:column-reverse}.workspace{min-height:0}.ribbon{width:auto;padding:4px 6px calc(4px + env(safe-area-inset-bottom));border-inline-end:none;border-top:1px solid var(--oi-color-border);flex-direction:row;justify-content:space-around}.ribbon-space{display:none}.sidebar{z-index:45;padding-top:env(safe-area-inset-top);position:fixed;top:0;bottom:0;left:0;box-shadow:0 0 40px #0000004d;width:min(320px,86vw)!important}.sidebar-resize{display:none}body.in-vault.sidebar-open .sidebar-backdrop{z-index:44;background:#00000052;display:block;position:fixed;inset:0}.view-header{padding-top:env(safe-area-inset-top);height:calc(40px + env(safe-area-inset-top));grid-template-columns:auto minmax(0,1fr) auto;gap:4px}.view-title{max-width:100%;padding:3px 4px}.view-crumb,#viewForward{display:none}.view-mode{margin-inline-end:0}.status-bar{display:none}.page{--page-start:36px;padding:14px 16px 40vh var(--page-start)}.inline-title{font-size:1.6em}.find-bar{left:8px;right:8px}.find-input{flex:1;width:auto}.start-screen{padding:7vh 20px 32px}.start-grid{grid-template-columns:1fr;gap:26px}.modal-backdrop{padding:8px}.setting-modal{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.setting-nav{border-inline-end:none;border-bottom:1px solid var(--oi-color-border);flex-direction:row;overflow-x:auto}.setting-nav button{white-space:nowrap}.setting-body{padding:14px 16px 24px}.setting-row{flex-wrap:wrap;gap:8px 18px}.hotkey-row{grid-template-columns:minmax(0,1fr) 28px}.hotkey-key-list{grid-area:2/1/auto/-1;justify-content:flex-start}.graph-filter{width:120px}}@media print{.ribbon,.sidebar,.sidebar-backdrop,.view-header,.status-bar,.gutter,.drop-line,#layer,.find-bar,.tab-bar{display:none!important}html,body,.app,.workspace,.view-content{height:auto;overflow:visible}.page{max-width:none;padding:0}}
