:root{--bar-h:48px;--bg:#fff;--bg-side:#f6f7f9;--fg:#1f2328;--muted:#6b7280;--border:#e3e5e8;--accent:#6d4aff;--active:#e8e3ff;--danger:#c62828;color:var(--fg);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}#app{height:100dvh}button,select,input,a.button{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--fg);cursor:pointer;border-radius:6px;padding:4px 10px;font-size:13px}button:hover:not(:disabled),a.button:hover{border-color:var(--accent)}a.button{text-decoration:none;display:inline-block}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}input{cursor:text}.layout{height:100%;display:flex}.sidebar{width:var(--sidebar-w,280px);background:var(--bg-side);border-right:1px solid var(--border);flex-direction:column;flex:none;display:flex;overflow:auto}.resizer{z-index:4;cursor:col-resize;touch-action:none;flex:none;width:9px;margin:0 -4px 0 -5px;position:relative}.resizer:after{content:"";background:0 0;transition:background .15s;position:absolute;inset:0 3px 0 4px}.resizer:hover:after,.resizer:focus-visible:after,.resizing .resizer:after{background:var(--accent)}.resizer:focus-visible{outline:none}.resizing,.resizing *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.sidebar header{height:var(--bar-h);border-bottom:1px solid var(--border);background:var(--bg-side);flex:none;justify-content:space-between;align-items:center;padding:0 10px;display:flex;position:sticky;top:0}.sidebar header .actions{flex:none;gap:4px;display:flex}.sidebar header .actions button{white-space:nowrap}.tree,.tree ul{margin:0;padding:0;list-style:none}.tree{flex:1;padding:6px 0}.sidebar-footer{border-top:1px solid var(--border);background:var(--bg-side);padding:8px 10px;position:sticky;bottom:0}.row{cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:3px 8px;display:flex}.row:hover{background:#eceef1}.row.active{background:var(--active)}.row{gap:4px}.row .twisty{width:12px;color:var(--muted);flex:none;display:flex}.row .twisty .ico{width:12px;height:12px;transition:transform .12s}.row .twisty.open .ico{transform:rotate(90deg)}.ico{flex:none}.ico .fill{fill:#e0a526}.ico .fill.dim{fill:#c48a12}.ico .paper{fill:#fff}.ico .edge{stroke:#8a909a;stroke-width:1px}.ico-file-md .mark{stroke:var(--accent)}.ico-file-text .mark{stroke:#8a909a}.ico .lock rect{fill:#2f9e44}.ico .lock path{stroke:#2f9e44}.row .name{text-overflow:ellipsis;flex:1;overflow:hidden}.row .unsafe{color:#b45309;cursor:help;flex:none;font-size:12px}.row .actions{gap:2px;display:none}.row:hover .actions{display:flex}.row .actions button{background:0 0;border:none;padding:0 5px;font-size:12px}.row .actions button:hover{background:#dfe2e6}.empty{color:var(--muted);padding:0 12px}.main{flex-direction:column;flex:1;min-width:0;display:flex}.toolbar{height:var(--bar-h);border-bottom:1px solid var(--border);flex-wrap:nowrap;flex:none;align-items:center;gap:6px;padding:0 12px;display:flex;position:relative}.toolbar>*,.toolbar .secondary>*{white-space:nowrap;flex:none}.toolbar .path{text-overflow:ellipsis;flex:0 auto;min-width:48px;font-weight:600;overflow:hidden}.toolbar .status{text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}.toolbar .secondary{display:contents}.nav-toggle,.more-toggle,.nav-backdrop{display:none}.toolbar.compact .more-toggle{display:inline-block}.toolbar.compact .secondary{display:none}.toolbar.compact .secondary.open{z-index:5;background:var(--bg);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;padding:8px;display:flex;position:absolute;top:100%;right:8px;box-shadow:0 6px 24px #00000026}.toolbar .dot{color:var(--accent)}.toolbar .spacer{flex:1}.toolbar .status{color:var(--muted);font-size:13px}.badge{color:var(--accent);background:var(--active);border-radius:10px;padding:1px 8px;font-size:12px}.preview{flex:1;max-width:900px;padding:24px 40px;line-height:1.6;overflow:auto}.preview .page-break{border-top:1px dashed #d3d6db;height:0;margin:1.6em 0}.cm-host .cm-line.cm-page-break{opacity:.45;border-bottom:1px dashed #b9bdc4}.preview li>p{margin:0}.preview li>p+p,.preview li>p+pre,.preview li>p+blockquote{margin-top:.6em}.preview li.gap-before{margin-top:.9em}.preview pre{background:var(--bg-side);border-radius:6px;padding:12px;overflow:auto}.preview code{background:var(--bg-side);border-radius:4px;padding:1px 4px;font-size:.9em}.preview pre code{background:0 0;padding:0}.preview table{border-collapse:collapse}.preview th,.preview td{border:1px solid var(--border);padding:4px 10px}.preview blockquote{border-left:3px solid var(--border);color:var(--muted);margin-left:0;padding-left:14px}.preview img{max-width:100%}.preview a{color:var(--accent)}.preview a.wikilink{border-bottom:1px dashed var(--accent);text-decoration:none}.preview a.wikilink.missing{color:var(--muted);border-bottom-color:var(--muted)}.editor-wrap{flex-direction:column;flex:1;min-height:0;display:flex}.editor{flex:1;min-height:0}.format-bar{border-bottom:1px solid var(--border);background:var(--bg-side);scrollbar-width:thin;flex:none;align-items:center;gap:2px;padding:4px 8px;display:flex;overflow-x:auto}.format-bar button{background:0 0;border-color:#0000;flex:none;min-width:30px;height:28px;padding:0 6px;font-size:14px;line-height:1}.format-bar button:hover:not(:disabled){background:var(--bg);border-color:var(--border)}.format-bar .sep{background:var(--border);flex:none;width:1px;height:18px;margin:0 4px}.format-bar .f-bold{font-weight:700}.format-bar .f-italic{font-family:Georgia,serif;font-style:italic}.format-bar .f-strike{text-decoration:line-through}.format-bar .f-mono{font-family:ui-monospace,Menlo,monospace;font-size:12px}.sidebar header .app-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-right:8px;overflow:hidden}.cm-host{display:flex;overflow:hidden}.cm-host .cm-editor{flex:1;height:100%;font-size:14px}.cm-host .cm-editor.cm-focused{outline:none}.cm-host .cm-scroller{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}textarea.editor.plain{resize:none;color:var(--fg);background:var(--bg);border:none;outline:none;padding:20px 28px;font:14px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}.locked{padding:40px;overflow:auto}.unlock{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:30px;display:flex}.unlock h2{width:100%;margin:0 0 8px;font-weight:500}.unlock input{width:280px}.error{color:var(--danger);width:100%;margin:4px 0 0}details summary{cursor:pointer;color:var(--muted)}.cmd{background:var(--bg-side);border-radius:6px;padding:8px;font-size:12px;overflow:auto}textarea.raw{border:1px solid var(--border);border-radius:6px;width:100%;height:240px;margin-bottom:6px;padding:8px;font:12px ui-monospace,Menlo,monospace}.welcome{text-align:center;color:var(--muted);margin:auto}.hint{color:var(--muted);font-size:13px}.hint.warn{color:#b45309}.modal-backdrop{z-index:50;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg);border-radius:10px;flex-direction:column;gap:10px;width:min(380px,100vw - 24px);max-height:calc(100dvh - 24px);padding:20px;display:flex;overflow:auto;box-shadow:0 10px 40px #0003}.modal h3,.modal .hint{margin:0}.modal .buttons{justify-content:flex-end;gap:6px;display:flex}.modal .field{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.modal .check{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.modal .check input{width:16px;height:16px;padding:0}.modal .error{margin:0}.modal .ready{background:var(--active);border-radius:8px;padding:10px}.modal .ready p{margin:0 0 8px}.modal .ready .buttons{flex-wrap:wrap;justify-content:flex-start}@media (hover:none){.row{padding-top:8px;padding-bottom:8px}.row .actions{display:flex}.row .actions button{color:var(--muted);padding:2px 8px;font-size:14px}}@media (width<=768px){button,select,input,a.button{padding:6px 12px;font-size:16px}.sidebar{z-index:20;width:min(85vw,320px);transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.nav-open .sidebar{transform:none;box-shadow:0 0 30px #0003}.nav-open .nav-backdrop{z-index:10;background:#0000004d;display:block;position:fixed;inset:0}.nav-toggle{display:inline-block}.resizer{display:none}:root{--bar-h:52px}.toolbar{gap:4px;padding:4px 8px}.toolbar .path{flex:auto;font-size:14px}.toolbar .spacer,.toolbar .badge{display:none}.toolbar .status{font-size:12px}.format-bar button{min-width:36px;height:34px;padding:0 8px;font-size:15px}.preview{padding:16px}.preview table{display:block;overflow-x:auto}textarea.editor.plain{padding:12px;font-size:16px}.locked{padding:16px}.unlock input{width:100%}.welcome{padding:24px}.welcome .nav-toggle{margin-bottom:12px}}.pw-fields{flex-direction:column;gap:8px;display:flex}.pw-fields input{width:100%;min-width:0}.pw-row{gap:6px;display:flex}.pw-row input{flex:1}.pw-row .icon-btn{flex:none;padding:0 10px}.pw-tools{flex-wrap:wrap;gap:6px;display:flex}.pw-fields .hint{margin:0}.modal .field input{width:100%}.modal .path-preview{overflow-wrap:anywhere;margin:-4px 0 0}.modal-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.modal-close{color:var(--muted);background:0 0;border:none;flex:none;padding:4px 8px;font-size:16px}.modal-close:hover:not(:disabled){background:var(--bg-side);color:var(--fg)}.modal-body{flex-direction:column;gap:10px;display:flex}.row.selected{background:#e9ebef}.row.selected.active,.row.active{background:var(--active)}.row.drag-source{opacity:.45}.row.drop-target{background:var(--active);box-shadow:inset 0 0 0 1.5px var(--accent)}.tree.drop-root{box-shadow:inset 0 0 0 1.5px var(--accent);background:#f1eeff}.tree{min-height:60px}.toast{z-index:60;color:#8a1c1c;background:#fdecec;border:1px solid #f3b4b4;border-radius:8px;align-items:center;gap:10px;max-width:min(560px,100vw - 24px);padding:10px 10px 10px 14px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #00000026}.toast button{color:inherit;background:0 0;border:none;flex:none;padding:2px 6px}
