.editor-wrap{position:relative}.tiptap{color:var(--ink);outline:none;min-height:120px;font-size:16px;line-height:1.6}.tiptap.compact{min-height:80px;font-size:14.5px}.tiptap>*+*{margin-top:.45em}.tiptap p{margin:0}.tiptap h1,.tiptap h2,.tiptap h3,.tiptap h4{letter-spacing:-.01em;margin:1.1em 0 .3em;font-weight:800;line-height:1.25}.tiptap h1{font-size:1.85em}.tiptap h2{font-size:1.45em}.tiptap h3{font-size:1.18em}.tiptap h4{text-transform:uppercase;letter-spacing:.04em;font-size:1em;font-family:var(--font-mono);font-size:.85em}.tiptap>h1:first-child,.tiptap>h2:first-child,.tiptap>h3:first-child{margin-top:.2em}.tiptap strong{font-weight:700}.tiptap a{color:var(--accent-deep);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent-deep) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent-deep) 40%, transparent);text-underline-offset:2px;cursor:pointer}.tiptap a:hover{-webkit-text-decoration-color:var(--accent-deep);text-decoration-color:var(--accent-deep)}.tiptap a[href^="/p/"],.tiptap a[href^="/t/"]{border-bottom:1px solid var(--divider);color:var(--ink);background:var(--paper-2);margin:0 1px;padding:0 2px;font-weight:600;text-decoration:none}.tiptap a[href^="/p/"]:before{content:"📄";opacity:.8;margin-right:4px;font-size:.8em}.tiptap a[href^="/t/"]:before{content:"☑";color:var(--accent-deep);margin-right:4px;font-size:.85em}.tiptap a[href^="/p/"]:hover,.tiptap a[href^="/t/"]:hover{border-bottom-color:var(--ink);background:var(--accent-soft)}.tiptap code{font-family:var(--font-mono);background:var(--paper-2);border:1px solid var(--divider);padding:1px 4px;font-size:.86em}.tiptap pre{background:var(--paper-2);border:1px solid var(--ink);font-family:var(--font-mono);margin:.6em 0;padding:12px 14px;font-size:13px;line-height:1.5;overflow-x:auto}.tiptap pre code{font-size:inherit;color:inherit;background:0 0;border:0;padding:0}.tiptap mark{background:var(--gold-soft);color:inherit;padding:0 2px}.tiptap blockquote{border-left:3px solid var(--ink);color:var(--ink-2);margin:.5em 0;padding:4px 0 4px 14px}.tiptap hr{background:var(--ink);border:0;height:2px;margin:1.2em 0}.tiptap ul,.tiptap ol{margin:.2em 0;padding-left:1.5em}.tiptap li{margin:.12em 0}.tiptap li>p{margin:0}.tiptap ul[data-type=taskList]{padding-left:.2em;list-style:none}.tiptap ul[data-type=taskList] li{align-items:flex-start;gap:8px;display:flex}.tiptap ul[data-type=taskList] li>label{-webkit-user-select:none;user-select:none;flex:none;margin-top:.3em}.tiptap ul[data-type=taskList] li>label input{appearance:none;border:1px solid var(--ink);background:var(--field);cursor:pointer;width:16px;height:16px;display:block;position:relative}.tiptap ul[data-type=taskList] li>label input:checked{background:var(--accent)}.tiptap ul[data-type=taskList] li>label input:checked:after{content:"";border:solid var(--ink);border-width:0 2px 2px 0;width:5px;height:9px;position:absolute;top:1px;left:4px;transform:rotate(45deg)}.tiptap ul[data-type=taskList] li>div{flex:1;min-width:0}.tiptap ul[data-type=taskList] li[data-checked=true]>div>p{color:var(--muted);text-decoration:line-through}.tiptap img{border:1px solid var(--ink);max-width:100%;height:auto;margin:.6em 0;display:block}.tiptap img.ProseMirror-selectednode{outline:3px solid var(--accent)}.tiptap table{border-collapse:collapse;table-layout:fixed;width:100%;margin:.6em 0;font-size:.94em}.tiptap th,.tiptap td{border:1px solid var(--ink);vertical-align:top;min-width:60px;padding:6px 9px;position:relative}.tiptap th{background:var(--paper-2);text-align:left;font-weight:700}.tiptap th>p,.tiptap td>p{margin:0}.tiptap .selectedCell:after{content:"";background:color-mix(in srgb, var(--accent) 30%, transparent);pointer-events:none;position:absolute;inset:0}.tiptap .column-resize-handle{background:var(--accent-deep);pointer-events:none;width:4px;position:absolute;top:0;bottom:0;right:-2px}.tiptap .tableWrapper{overflow-x:auto}.tiptap p.is-editor-empty:first-child:before,.tiptap .is-empty.is-editor-empty:before{content:attr(data-placeholder);float:left;color:var(--muted-2);pointer-events:none;height:0}.tiptap .callout{border:1px solid var(--ink);background:var(--paper-2);box-shadow:var(--shadow-2);gap:10px;margin:.6em 0;padding:10px 12px;display:flex}.tiptap .callout-head{-webkit-user-select:none;user-select:none;flex-direction:column;flex:none;align-items:center;gap:2px;display:flex}.tiptap .callout-icon{cursor:pointer;font-size:18px;line-height:1.3}.tiptap .callout-title{display:none}.tiptap .callout[data-title]:not([data-title=""]){flex-wrap:wrap}.tiptap .callout[data-title]:not([data-title=""]) .callout-title{display:block}.tiptap .callout-body{flex:1;min-width:0}.tiptap .callout-body>*+*{margin-top:.4em}.tiptap .callout-body>p:first-child:before{content:attr(data-callout-title)}.tiptap .callout[data-title]:not([data-title=""]) .callout-head{flex-direction:row;align-items:center;gap:8px;width:100%}.tiptap .callout[data-title]:not([data-title=""]) .callout-title{font-size:.95em;font-weight:700}.tiptap .callout-info{background:var(--info-soft)}.tiptap .callout-tip,.tiptap .callout-success{background:var(--accent-soft)}.tiptap .callout-warning{background:var(--gold-soft)}.tiptap .callout-danger{background:var(--danger-soft)}.tiptap .callout-question{background:var(--purple-soft)}.tiptap .callout-quote{background:var(--paper-2);font-style:italic}.tiptap [data-type=details]{align-items:flex-start;gap:4px;margin:.4em 0;display:flex}.tiptap [data-type=details]>button{cursor:pointer;width:22px;height:22px;color:var(--ink-2);background:0 0;border:0;flex:none;justify-content:center;align-items:center;margin-top:3px;font-size:10px;display:inline-flex}.tiptap [data-type=details]>button:hover{background:var(--paper-2)}.tiptap [data-type=details]>button:before{content:"▶";transition:transform .12s}.tiptap [data-type=details].is-open>button:before{transform:rotate(90deg)}.tiptap [data-type=details]>div{flex:1;min-width:0}.tiptap [data-type=detailsSummary]{font-weight:600}.tiptap [data-type=detailsSummary].is-empty:before{content:"Заголовок тоггла…";color:var(--muted-2);float:left;pointer-events:none;height:0}.tiptap [data-type=detailsContent]{border-left:2px solid var(--divider);margin-top:4px;padding-left:12px}.tiptap [data-type=detailsContent][hidden]{display:none}.tiptap [data-type=detailsContent]>*+*{margin-top:.4em}.tiptap [data-block-id]{position:relative}.tiptap [data-block-id]:after{content:"⚓";opacity:0;color:var(--muted);font-size:10px;position:absolute;top:.35em;right:-22px}.tiptap [data-block-id]:hover:after{opacity:.7}.tiptap .has-tasks{background:linear-gradient(90deg,#0000,#0000)}.tiptap .block-tasks{vertical-align:middle;flex-wrap:wrap;gap:4px;margin-left:8px;display:inline-flex}.tiptap .block-task{cursor:pointer;text-overflow:ellipsis;max-width:240px;height:18px;font-family:var(--font-mono);font-size:9.5px;transition:transform .1s,box-shadow .1s;overflow:hidden}.tiptap .block-task:hover{box-shadow:var(--shadow-1);transform:translate(-1px,-1px)}.tiptap .block-task.done{opacity:.7;text-decoration:line-through}.tiptap .anchor-flash{animation:1.8s anchor-flash}@keyframes anchor-flash{0%{background:var(--accent-soft);box-shadow:0 0 0 6px var(--accent-soft)}to{box-shadow:none;background:0 0}}.tiptap .ProseMirror-selectednode{outline:2px solid var(--accent-deep)}.tiptap-drop-cursor{background:var(--accent-deep)!important}.drag-handle{width:20px;height:22px;color:var(--muted);cursor:grab;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;margin-right:2px;padding:0;display:inline-flex}.drag-handle:hover{border-color:var(--ink);background:var(--paper);color:var(--ink)}.drag-handle:active{cursor:grabbing}.drag-handle .lucide{width:14px;height:14px}.drag-handle-wrap{align-items:center;gap:1px;display:inline-flex}.drag-handle-plus{width:20px;height:22px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.drag-handle-plus:hover{border-color:var(--ink);background:var(--paper);color:var(--ink)}.drag-handle-plus .lucide{width:14px;height:14px}.bubble{border:1px solid var(--ink);background:var(--paper);box-shadow:var(--shadow-3);z-index:100;align-items:center;gap:2px;padding:3px;display:flex}.bubble .icon-btn{width:26px;height:26px}.bubble .icon-btn .lucide{width:14px;height:14px}.bubble .sep{background:var(--divider);width:1px;height:18px;margin:0 2px}.bubble .turn{height:26px;padding:0 8px;font-size:10px}.suggest{z-index:320;border:1px solid var(--ink);background:var(--paper);width:300px;max-height:340px;box-shadow:var(--shadow-4);padding:4px;position:fixed;overflow:auto}.suggest .menu-item{padding:5px 8px}.suggest .ic{border:1px solid var(--divider);background:var(--paper-2);flex:none;justify-content:center;align-items:center;width:24px;height:24px;font-size:13px;display:inline-flex}.suggest .t{font-size:13.5px;font-weight:600}.suggest .s{color:var(--muted);font-size:11px;display:block}.suggest .none{color:var(--muted);padding:8px;font-size:12.5px}.md-preview{font-size:14px;line-height:1.55}:root{--paper:#f2ede1;--paper-hover:#f6f2e6;--paper-pressed:#e9e2d2;--paper-2:#e7e0cf;--paper-3:#dbd3bf;--bg:#e2dccd;--field:#f7f3ea;--ink:#1c1a17;--ink-2:#4a463d;--muted:#8a8478;--muted-2:#b3a88f;--divider:#d3cbb9;--track:#c7bfae;--accent:#a9e838;--accent-soft:#d7f2a6;--accent-deep:#2f7a44;--accent-text:#1c1a17;--danger:#e0503a;--danger-soft:#f6c9c0;--gold:#f2c94c;--gold-soft:#f8e6a8;--info:#4a86c5;--info-soft:#c3d8ee;--pink:#e88bb4;--pink-soft:#f5cadd;--purple:#8d6cc7;--purple-soft:#d9ccef;--scrim:#1c1a1773;--shadow-1:1.5px 1.5px 0 var(--ink);--shadow-2:2px 2px 0 var(--ink);--shadow-3:3px 3px 0 var(--ink);--shadow-4:4px 4px 0 var(--ink);--shadow-6:6px 6px 0 var(--ink);--font-ui:"Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--font-display:"Silkscreen", "JetBrains Mono", monospace;--sidebar-w:268px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--paper:#201d19;--paper-hover:#272320;--paper-pressed:#1a1714;--paper-2:#2a2621;--paper-3:#34302a;--bg:#16140f;--field:#191613;--ink:#e9e2d2;--ink-2:#c9c2b2;--muted:#8f887a;--muted-2:#6c665a;--divider:#3b362f;--track:#4a443b;--accent:#93b04f;--accent-soft:#3d4a26;--accent-deep:#6f9e57;--accent-text:#16140f;--danger:#e0603a;--danger-soft:#4a2a22;--gold:#c8a763;--gold-soft:#4a3f24;--info:#6a9aca;--info-soft:#24384c;--pink:#d07aa2;--pink-soft:#46293a;--purple:#9a7fd0;--purple-soft:#352c4a;--scrim:#0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5;overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}::selection{background:var(--accent);color:var(--accent-text)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--track);border:3px solid var(--paper)}::-webkit-scrollbar-track{background:0 0}.grain{z-index:400;pointer-events:none;mix-blend-mode:multiply;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:150px 150px;position:fixed;inset:0}:root[data-theme=dark] .grain{mix-blend-mode:screen;opacity:.035}.display{font-family:var(--font-display);letter-spacing:.02em;text-transform:uppercase}.mono{font-family:var(--font-mono)}.label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:600}.muted{color:var(--muted)}.ink2{color:var(--ink-2)}.small{font-size:12.5px}.btn{border:1px solid var(--ink);background:var(--paper);cursor:pointer;white-space:nowrap;height:32px;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;padding:0 12px;font-size:11px;font-weight:600;transition:transform .12s,box-shadow .12s,background .12s;display:inline-flex}.btn:hover{background:var(--paper-hover);box-shadow:var(--shadow-2);transform:translate(-1px,-1px)}.btn:active{box-shadow:none;background:var(--paper-pressed);transform:none}.btn:disabled{opacity:.5;cursor:default;box-shadow:none;transform:none}.btn.accent{background-color:var(--accent);color:var(--accent-text);box-shadow:var(--shadow-2);background-image:radial-gradient(circle,#1c1a171a 30%,#0000 33%);background-size:5px 5px}.btn.accent:hover{box-shadow:var(--shadow-4)}.btn.danger{color:var(--danger)}.btn.danger:hover{background:var(--danger);color:#fff}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{border-color:var(--ink)}.btn.sm{height:26px;padding:0 8px;font-size:10px}.btn.lg{height:40px;padding:0 18px;font-size:12px}.btn .lucide{width:14px;height:14px}.icon-btn{cursor:pointer;width:28px;height:28px;color:var(--ink-2);background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{border-color:var(--ink);background:var(--paper-hover);color:var(--ink)}.icon-btn.active{background:var(--accent);color:var(--accent-text);border-color:var(--ink)}.icon-btn .lucide{width:16px;height:16px}.input,.textarea,.select{border:1px solid var(--ink);background:var(--field);outline:none;width:100%;height:34px;padding:0 10px;font-size:14px}.textarea{resize:vertical;height:auto;min-height:80px;font-family:var(--font-ui);padding:8px 10px}.input:focus,.textarea:focus,.select:focus{box-shadow:var(--shadow-2)}.input::placeholder,.textarea::placeholder{color:var(--muted-2)}.select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%);cursor:pointer;background-position:calc(100% - 14px) 14px,calc(100% - 9px) 14px;background-repeat:no-repeat;background-size:5px 5px;padding-right:26px}.field{flex-direction:column;gap:6px;display:flex}.field>.label{margin-bottom:0}.checkbox{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.checkbox input{width:15px;height:15px;accent-color:var(--accent-deep)}.card{border:1px solid var(--ink);background:var(--paper);box-shadow:var(--shadow-4)}.chip{border:1px solid var(--ink);height:20px;font-family:var(--font-mono);letter-spacing:.04em;white-space:nowrap;background:var(--paper);align-items:center;gap:5px;padding:0 7px;font-size:10px;font-weight:600;line-height:1;display:inline-flex}.chip.sm{height:17px;padding:0 5px;font-size:9px}.chip .lucide{width:11px;height:11px}.chip.c-gray{background:var(--paper-2)}.chip.c-blue{background:var(--info-soft)}.chip.c-green{background:var(--accent-soft)}.chip.c-red{background:var(--danger-soft)}.chip.c-yellow,.chip.c-gold,.chip.c-orange{background:var(--gold-soft)}.chip.c-pink{background:var(--pink-soft)}.chip.c-purple{background:var(--purple-soft)}.chip.c-brown{background:var(--paper-3)}.dot{border:1px solid var(--ink);background:var(--paper-2);flex:none;width:9px;height:9px}.dot.c-gray{background:var(--muted-2)}.dot.c-blue{background:var(--info)}.dot.c-green{background:var(--accent)}.dot.c-red{background:var(--danger)}.dot.c-yellow,.dot.c-gold,.dot.c-orange{background:var(--gold)}.dot.c-pink{background:var(--pink)}.dot.c-purple{background:var(--purple)}.dot.c-brown{background:#a58f5a}.hr{background:var(--divider);border:0;height:1px;margin:0}.kbd{font-family:var(--font-mono);border:1px solid var(--divider);color:var(--muted);padding:1px 5px;font-size:10px}.row{align-items:center;gap:8px;display:flex}.col{flex-direction:column;gap:8px;display:flex}.spacer{flex:1}.empty{text-align:center;color:var(--muted);padding:40px 20px}.empty .display{color:var(--ink-2);margin-bottom:8px;font-size:16px}.error{color:var(--danger);font-size:13px}.notice{border:1px solid var(--ink);background:var(--gold-soft);padding:10px 12px;font-size:13px}.avatar{border:1px solid var(--ink);background:var(--accent);width:22px;height:22px;color:var(--accent-text);font-family:var(--font-display);flex:none;justify-content:center;align-items:center;font-size:9px;display:inline-flex}.menu{z-index:300;border:1px solid var(--ink);background:var(--paper);min-width:200px;max-width:360px;max-height:60vh;box-shadow:var(--shadow-4);padding:4px;position:fixed;overflow:auto}.menu-item{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:1px solid #0000;align-items:center;gap:9px;padding:6px 8px;font-size:13.5px;display:flex}.menu-item:hover,.menu-item.active{background:var(--accent-soft);border-color:var(--ink)}.menu-item.danger{color:var(--danger)}.menu-item .lucide{width:15px;height:15px;color:var(--ink-2);flex:none}.menu-item .hint{font-family:var(--font-mono);color:var(--muted);margin-left:auto;font-size:10px}.menu-item .sub{color:var(--muted);font-size:11px;display:block}.menu-title{padding:6px 8px 3px}.menu-sep{background:var(--divider);height:1px;margin:4px 0}.modal-scrim{z-index:250;background:var(--scrim);justify-content:center;align-items:flex-start;padding:8vh 16px;display:flex;position:fixed;inset:0;overflow:auto}.modal{border:1px solid var(--ink);background:var(--paper);width:100%;max-width:560px;box-shadow:var(--shadow-6)}.modal.wide{max-width:760px}.modal-head{border-bottom:1px solid var(--ink);align-items:center;gap:10px;padding:12px 16px;display:flex}.modal-head .display{font-size:12px}.modal-body{flex-direction:column;gap:14px;padding:16px;display:flex}.modal-foot{border-top:1px solid var(--divider);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.toasts{z-index:500;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:16px;right:16px}.toast{border:1px solid var(--ink);background:var(--paper);box-shadow:var(--shadow-3);max-width:360px;padding:9px 12px;font-size:13px;animation:.15s toast-in}.toast.error{background:var(--danger-soft)}.toast.ok{background:var(--accent-soft)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.auth{justify-content:center;align-items:center;min-height:100%;padding:24px;display:flex}.auth-card{border:1px solid var(--ink);background:var(--paper);width:100%;max-width:400px;box-shadow:var(--shadow-6)}.auth-head{border-bottom:1px solid var(--ink);padding:22px 24px 16px}.auth-body{flex-direction:column;gap:14px;padding:20px 24px 24px;display:flex}.brand{align-items:center;gap:10px;display:flex}.brand-mark{background:var(--accent);border:1px solid var(--ink);flex:none;width:16px;height:16px}.brand-name{font-family:var(--font-display);letter-spacing:.02em;font-size:14px}.brand-sub{font-family:var(--font-mono);letter-spacing:.06em;color:var(--muted);font-size:10px}.shell{height:100%;display:flex}.sidebar{width:var(--sidebar-w);background:var(--paper);border-right:1px solid var(--ink);flex-direction:column;flex:none;min-height:0;display:flex}.sidebar.collapsed{display:none}.sb-head{border-bottom:1px solid var(--ink);align-items:center;gap:8px;height:48px;padding:0 10px 0 12px;display:flex}.sb-ws{cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;flex:1;align-items:center;gap:8px;min-width:0;height:32px;padding:0 6px;display:flex}.sb-ws:hover{border-color:var(--ink);background:var(--paper-hover)}.sb-ws .name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.sb-ws .icon{text-align:center;flex:none;width:20px;font-size:16px}.sb-section{padding:10px 8px 4px}.sb-nav{flex-direction:column;gap:1px;padding:0 8px;display:flex}.sb-item{cursor:pointer;min-height:28px;color:var(--ink-2);text-align:left;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;align-items:center;gap:7px;width:100%;padding:0 6px;font-size:13.5px;display:flex}.sb-item:hover{background:var(--paper-hover);border-color:var(--divider);color:var(--ink)}.sb-item.active{background:var(--accent-soft);border-color:var(--ink);color:var(--ink)}.sb-item .lucide{flex:none;width:15px;height:15px}.sb-item .txt{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.sb-item .count{font-family:var(--font-mono);color:var(--muted);font-size:10px}.sb-item .kbd{margin-left:auto}.sb-tree{flex:1;min-height:0;padding:0 8px 8px;overflow:auto}.tree-row{cursor:pointer;height:27px;color:var(--ink-2);-webkit-user-select:none;user-select:none;border:1px solid #0000;align-items:center;gap:4px;padding-right:4px;font-size:13.5px;display:flex;position:relative}.tree-row:hover{background:var(--paper-hover);border-color:var(--divider);color:var(--ink)}.tree-row.active{background:var(--accent-soft);border-color:var(--ink);color:var(--ink)}.tree-row.drop-into{outline:2px solid var(--accent-deep);outline-offset:-2px}.tree-row.drop-before{box-shadow:inset 0 2px 0 var(--accent-deep)}.tree-row.drop-after{box-shadow:inset 0 -2px 0 var(--accent-deep)}.tree-row .caret{width:18px;height:18px;color:var(--muted);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.tree-row .caret:hover{color:var(--ink);background:var(--paper-2)}.tree-row .caret .lucide{width:12px;height:12px}.tree-row .pi{text-align:center;flex:none;width:18px;font-size:14px;line-height:1}.tree-row .pi .lucide{width:14px;height:14px;color:var(--muted);vertical-align:-2px}.tree-row .txt{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tree-row .acts{gap:2px;display:none}.tree-row:hover .acts{display:inline-flex}.tree-row .acts .icon-btn{width:22px;height:22px}.tree-row .acts .icon-btn .lucide{width:13px;height:13px}.tree-empty{color:var(--muted-2);padding:4px 8px 4px 26px;font-size:12px;font-style:italic}.sb-foot{border-top:1px solid var(--ink);flex-direction:column;gap:2px;padding:8px;display:flex}.sb-user{align-items:center;gap:8px;padding:4px 6px;display:flex}.sb-user .name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:600;overflow:hidden}.main{background:var(--bg);flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--ink);background:var(--paper);flex:none;align-items:center;gap:8px;height:48px;padding:0 16px 0 10px;display:flex}.crumbs{color:var(--muted);align-items:center;gap:4px;min-width:0;font-size:13px;display:flex;overflow:hidden}.crumbs a{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;border:1px solid #0000;max-width:220px;padding:2px 5px;overflow:hidden}.crumbs a:hover{border-color:var(--ink);color:var(--ink);background:var(--paper-hover)}.crumbs .sep{color:var(--muted-2)}.crumbs .cur{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;max-width:320px;font-weight:600;overflow:hidden}.content{flex:1;min-height:0;overflow:auto}.sheet{background:var(--paper);border-left:1px solid var(--ink);border-right:1px solid var(--ink);max-width:860px;min-height:100%;margin:0 auto;padding:40px 64px 160px}@media (width<=900px){.sheet{border:0;padding:24px 22px 120px}}.page-title{letter-spacing:-.01em;resize:none;width:100%;font-size:36px;font-weight:800;line-height:1.15;font-family:var(--font-ui);background:0 0;border:0;outline:none;margin:0 0 8px;padding:0;overflow:hidden}.page-title::placeholder{color:var(--muted-2)}.page-icon-btn{cursor:pointer;background:0 0;border:1px solid #0000;margin-left:-6px;padding:2px 6px;font-size:40px;line-height:1}.page-icon-btn:hover{border-color:var(--ink);background:var(--paper-hover)}.page-meta{font-family:var(--font-mono);color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;font-size:10.5px;display:flex}.page-meta .lucide{vertical-align:-2px;width:12px;height:12px}.page-links{border-top:1px solid var(--divider);margin-top:40px;padding-top:14px}.page-links .label{margin-bottom:8px}.child-list{flex-direction:column;gap:2px;margin-top:14px;display:flex}.child-list a{color:var(--ink-2);border:1px solid #0000;align-items:center;gap:8px;padding:4px 6px;display:flex}.child-list a:hover{border-color:var(--ink);background:var(--paper-hover);color:var(--ink)}.save-state{font-family:var(--font-mono);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:10px}.save-state.dirty{color:var(--accent-deep)}.save-state.error{color:var(--danger)}.tasks-head{border-bottom:1px solid var(--divider);background:var(--paper);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px;display:flex}.tasks-head .input{width:220px;height:30px}.tasks-head .select{width:auto;height:30px;font-size:12px}.seg{border:1px solid var(--ink);display:inline-flex}.seg button{background:var(--paper);cursor:pointer;height:30px;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);border:0;align-items:center;gap:6px;padding:0 10px;font-size:10.5px;font-weight:600;display:inline-flex}.seg button+button{border-left:1px solid var(--ink)}.seg button.active{background:var(--accent);color:var(--accent-text)}.seg button .lucide{width:13px;height:13px}.board{align-items:flex-start;gap:14px;min-height:100%;padding:16px;display:flex;overflow-x:auto}.board-col{border:1px solid var(--ink);background:var(--paper-2);width:290px;box-shadow:var(--shadow-3);flex-direction:column;flex:none;max-height:calc(100vh - 140px);display:flex}.board-col-head{border-bottom:1px solid var(--ink);background:var(--paper);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:8px;padding:8px 10px;font-size:11px;font-weight:700;display:flex}.board-col-head .count{color:var(--muted);font-weight:500}.board-col-body{flex-direction:column;flex:1;gap:8px;min-height:60px;padding:8px;display:flex;overflow:auto}.board-col.drag-over{outline:2px dashed var(--accent-deep);outline-offset:-4px}.task-card{border:1px solid var(--ink);background:var(--paper);cursor:pointer;flex-direction:column;gap:6px;padding:9px 10px;transition:transform .1s,box-shadow .1s;display:flex}.task-card:hover{box-shadow:var(--shadow-3);transform:translate(-1px,-1px)}.task-card.dragging{opacity:.4}.task-card .key{font-family:var(--font-mono);color:var(--muted);letter-spacing:.04em;font-size:10px}.task-card .title{font-size:13.5px;font-weight:600;line-height:1.35}.task-card .title.done{color:var(--muted);text-decoration:line-through}.task-card .foot{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.task-card .foot .lucide{width:12px;height:12px;color:var(--muted)}.task-card .due{font-family:var(--font-mono);color:var(--muted);align-items:center;gap:3px;font-size:10px;display:inline-flex}.task-card .due.late{color:var(--danger)}.pri{font-family:var(--font-mono);align-items:center;gap:3px;font-size:10px;font-weight:700;display:inline-flex}.pri.p1{color:var(--muted)}.pri.p2{color:var(--info)}.pri.p3{color:#c47a1c}.pri.p4{color:var(--danger)}:root[data-theme=dark] .pri.p3{color:var(--gold)}.task-list{padding:8px 16px 40px}.task-row{border:1px solid #0000;border-bottom-color:var(--divider);cursor:pointer;grid-template-columns:70px 1fr 130px 90px 110px 100px;align-items:center;gap:10px;min-height:36px;padding:4px 8px;font-size:13.5px;display:grid}.task-row:hover{background:var(--paper);border-color:var(--ink)}.task-row .key{font-family:var(--font-mono);color:var(--muted);font-size:10.5px}.task-row .title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.task-row .title.done{color:var(--muted);font-weight:500;text-decoration:line-through}.task-list-head{border-bottom:1px solid var(--ink);grid-template-columns:70px 1fr 130px 90px 110px 100px;gap:10px;padding:6px 8px;display:grid}.task-group{margin-top:18px}.task-group .board-col-head{border:1px solid var(--ink)}.quick-add{border-top:1px solid var(--divider);gap:6px;padding:8px;display:flex}.quick-add input{border:1px solid var(--divider);background:var(--field);outline:none;flex:1;height:28px;padding:0 8px;font-size:13px}.quick-add input:focus{border-color:var(--ink)}.drawer-scrim{z-index:200;background:0 0;position:fixed;inset:0}.drawer{z-index:210;background:var(--paper);border-left:1px solid var(--ink);flex-direction:column;width:min(720px,100vw);animation:.16s drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-6px 0 #1c1a171f}@keyframes drawer-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.drawer-head{border-bottom:1px solid var(--ink);flex:none;align-items:center;gap:8px;height:48px;padding:0 12px;display:flex}.drawer-body{flex:1;padding:20px 28px 60px;overflow:auto}.drawer .page-title{font-size:26px}.props{grid-template-columns:120px 1fr;align-items:center;gap:6px 12px;margin:14px 0 18px;font-size:13.5px;display:grid}.props .label{font-size:9.5px}.props .val{flex-wrap:wrap;align-items:center;gap:6px;min-height:26px;display:flex}.props .val .btn{height:26px;padding:0 8px;font-size:10px}.pill-btn{cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:6px;height:26px;padding:0 8px;font-size:13px;display:inline-flex}.pill-btn:hover{border-color:var(--ink);background:var(--paper-hover)}.pill-btn.placeholder{color:var(--muted-2)}.pill-btn .lucide{width:13px;height:13px}.attachments{flex-direction:column;gap:6px;margin:6px 0 18px;display:flex}.attachment{border:1px solid var(--ink);background:var(--paper-2);align-items:flex-start;gap:10px;padding:8px 10px;font-size:13px;display:flex}.attachment .lucide{width:15px;height:15px;color:var(--ink-2);flex:none;margin-top:2px}.attachment .body{flex:1;min-width:0}.attachment .t{align-items:center;gap:6px;font-weight:600;display:flex}.attachment .q{color:var(--ink-2);border-left:2px solid var(--accent);white-space:pre-wrap;margin-top:4px;padding-left:8px;font-size:12.5px}.attachment .icon-btn{width:22px;height:22px;margin-top:-2px}.attachment:hover{background:var(--paper-hover)}.comments{border-top:1px solid var(--divider);margin-top:24px;padding-top:12px}.comment{border-bottom:1px solid var(--divider);padding:8px 0;font-size:13.5px}.comment .who{align-items:center;gap:8px;margin-bottom:3px;display:flex}.comment .when{font-family:var(--font-mono);color:var(--muted);font-size:10px}.comment .txt{white-space:pre-wrap}.settings{flex-direction:column;gap:28px;max-width:820px;margin:0 auto;padding:32px 24px 80px;display:flex}.settings h1{font-family:var(--font-display);letter-spacing:.02em;margin:0;font-size:20px}.settings h2{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;margin:0 0 10px;font-size:11px;display:flex}.settings h2:after{content:"";background:var(--ink);flex:1;height:1px}.settings section{border:1px solid var(--ink);background:var(--paper);box-shadow:var(--shadow-4);padding:18px 20px}.table{border-collapse:collapse;width:100%;font-size:13.5px}.table th{text-align:left;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--ink);padding:6px 8px;font-size:10px;font-weight:600}.table td{border-bottom:1px solid var(--divider);vertical-align:middle;padding:7px 8px}.table tr:hover td{background:var(--paper-hover)}.table .mono{font-size:11.5px}.color-swatches{flex-wrap:wrap;gap:4px;display:flex}.color-swatches button{border:1px solid var(--ink);cursor:pointer;width:20px;height:20px;padding:0}.color-swatches button.active{outline:2px solid var(--ink);outline-offset:1px}pre.code{border:1px solid var(--ink);background:var(--paper-2);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;margin:0;padding:10px 12px;font-size:12px;overflow:auto}.token-new{border:1px solid var(--ink);background:var(--accent-soft);font-family:var(--font-mono);word-break:break-all;padding:10px 12px;font-size:12px}.palette{border:1px solid var(--ink);background:var(--paper);width:100%;max-width:620px;box-shadow:var(--shadow-6)}.palette-input{border-bottom:1px solid var(--ink);align-items:center;gap:10px;height:50px;padding:0 14px;display:flex}.palette-input input{background:0 0;border:0;outline:none;flex:1;font-size:16px}.palette-input .lucide{width:18px;height:18px;color:var(--muted)}.palette-list{max-height:60vh;padding:6px;overflow:auto}.palette-item{cursor:pointer;border:1px solid #0000;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.palette-item.active,.palette-item:hover{background:var(--accent-soft);border-color:var(--ink)}.palette-item .t{align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.palette-item .s{color:var(--muted);margin-top:2px;font-size:12.5px}.palette-item .ic{text-align:center;flex:none;width:18px;margin-top:2px}.palette-item .ic .lucide{width:15px;height:15px;color:var(--muted)}.palette-foot{border-top:1px solid var(--divider);font-family:var(--font-mono);color:var(--muted);gap:14px;padding:8px 14px;font-size:10px;display:flex}.home{max-width:980px;margin:0 auto;padding:36px 28px 80px}.home h1{font-family:var(--font-display);letter-spacing:-.01em;margin:0 0 6px;font-size:28px}.home .sub{font-family:var(--font-mono);color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:26px;font-size:11px}.home-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;display:grid}.home-card{border:1px solid var(--ink);background:var(--paper);box-shadow:var(--shadow-4);flex-direction:column;display:flex}.home-card-head{border-bottom:1px solid var(--ink);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);align-items:center;gap:8px;padding:9px 12px;font-size:10.5px;font-weight:700;display:flex}.home-card-body{flex-direction:column;gap:1px;padding:6px;display:flex}.home-card-body a,.home-card-body .rowlink{color:var(--ink-2);cursor:pointer;border:1px solid #0000;align-items:center;gap:8px;padding:6px 8px;font-size:13.5px;display:flex}.home-card-body a:hover,.home-card-body .rowlink:hover{border-color:var(--ink);background:var(--paper-hover);color:var(--ink)}.home-card-body .when{font-family:var(--font-mono);color:var(--muted);margin-left:auto;font-size:10px}.stat{flex-direction:column;gap:2px;padding:12px 14px;display:flex}.stat .n{font-family:var(--font-display);font-size:26px}.stat .l{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:10px}.stats{grid-template-columns:repeat(3,1fr);display:grid}.stats .stat+.stat{border-left:1px solid var(--divider)}.dropzone{border:1px dashed var(--ink);text-align:center;cursor:pointer;background:var(--paper-2);padding:26px}.dropzone.over{background:var(--accent-soft)}.dropzone input{display:none}ol.steps{margin:0;padding-left:20px;font-size:13.5px;line-height:1.7}@media (width<=760px){.task-row,.task-list-head{grid-template-columns:60px 1fr 100px}.task-row>:nth-child(n+4),.task-list-head>:nth-child(n+4){display:none}.props{grid-template-columns:90px 1fr}.drawer-body{padding:16px}}
