:root{--tempo:1;--dur-fast:calc(.11s * var(--tempo));--dur:calc(.18s * var(--tempo));--dur-slow:calc(.3s * var(--tempo));--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--font-ui:"Instrument Sans", "Segoe UI", system-ui, -apple-system, sans-serif;--font-display:"Fraunces", "Iowan Old Style", Georgia, serif;--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Code", Consolas, monospace;--fs-2xs:11px;--fs-xs:12px;--fs-sm:13.5px;--fs-md:16px;--fs-lg:20px;--fs-xl:24px;--fs-2xl:30px;--fs-3xl:42px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-12:48px;--sp-24:96px;--r-sm:4px;--r-md:6px;--r-lg:10px;--r-pill:999px;--page-width:708px;--topbar-h:44px;--hit:28px;--surface:#fbf9f4;--sidebar:#f2ede3;--raised:#fff;--sunken:#f3efe6;--ink:#26231d;--ink-2:#5f5a50;--ink-3:#8f887b;--ink-4:#bab3a5;--rule:#e7e0d2;--rule-strong:#d5ccba;--hover:#46361c0f;--press:#46361c1a;--accent:#c2471a;--accent-ink:#fff;--accent-soft:#c2471a1a;--accent-line:#c2471a66;--selection:#c2471a2b;--block-selected:#c2471a17;--danger:#b3352d;--overlay:#26231d47;--shadow-menu:0 0 0 1px #26231d12, 0 10px 28px -8px #26231d38, 0 2px 6px #26231d0d;--shadow-card:0 0 0 1px #26231d12, 0 1px 2px #26231d0f;--shadow-lift:0 0 0 1px #26231d14, 0 14px 30px -10px #26231d4d;--c-gray:#7b756a;--c-gray-bg:#eeeae2;--c-brown:#87573a;--c-brown-bg:#f2e7dc;--c-orange:#c2471a;--c-orange-bg:#fbe4d5;--c-yellow:#9a6f0c;--c-yellow-bg:#f7edc8;--c-green:#3c7547;--c-green-bg:#e2eedd;--c-blue:#2e5c99;--c-blue-bg:#dfe8f4;--c-purple:#6c4c9c;--c-purple-bg:#ebe3f4;--c-pink:#a33d6b;--c-pink-bg:#f5e0e9;--c-red:#ad3229;--c-red-bg:#f7deda;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--surface:#1c1b19;--sidebar:#171614;--raised:#262521;--sunken:#22211e;--ink:#ebe5d9;--ink-2:#b2ab9d;--ink-3:#847e72;--ink-4:#5d584f;--rule:#302e2a;--rule-strong:#403d37;--hover:#fff0d60f;--press:#fff0d61a;--accent:#e9875b;--accent-ink:#1c1b19;--accent-soft:#e9875b24;--accent-line:#e9875b80;--selection:#e9875b42;--block-selected:#e9875b1c;--danger:#ec7a70;--overlay:#00000080;--shadow-menu:0 0 0 1px #fff0d614, 0 16px 36px -10px #000000b3;--shadow-card:0 0 0 1px #fff0d612;--shadow-lift:0 0 0 1px #fff0d61f, 0 18px 36px -12px #000000bf;--c-gray:#a39d92;--c-gray-bg:#a39d9229;--c-brown:#c99a7a;--c-brown-bg:#c99a7a29;--c-orange:#ec8f62;--c-orange-bg:#ec8f6229;--c-yellow:#dcb45a;--c-yellow-bg:#dcb45a26;--c-green:#86bb8e;--c-green-bg:#86bb8e26;--c-blue:#85aee3;--c-blue-bg:#85aee326;--c-purple:#b89ae0;--c-purple-bg:#b89ae029;--c-pink:#e08bb1;--c-pink-bg:#e08bb126;--c-red:#ec7a70;--c-red-bg:#ec7a7029;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-reduced-motion:reduce){:root{--tempo:0}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--surface);color:var(--ink);font-family:var(--font-ui);font-size:var(--fs-md);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.5;overflow:hidden}::selection{background:var(--selection)}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent-line);outline-offset:2px;border-radius:var(--r-sm)}[contenteditable]:focus-visible{outline:none}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.icon{stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}.icon.filled{fill:currentColor}kbd{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--ink-3);border:1px solid var(--rule-strong);border-radius:var(--r-sm);background:var(--surface);border-bottom-width:2px;padding:0 5px}.app{height:100%;display:flex}.main{background:var(--surface);flex-direction:column;flex:1;min-width:0;display:flex}.scroller{scroll-padding-top:var(--topbar-h);flex:1;overflow:hidden auto}.sidebar{background:var(--sidebar);border-right:1px solid var(--rule);font-size:var(--fs-sm);color:var(--ink-2);-webkit-user-select:none;user-select:none;transition:transform var(--dur-slow) var(--ease-out);flex-direction:column;flex:none;display:flex;position:relative}.sidebar.closed{display:none}.sidebar-head{align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-3) var(--sp-2);display:flex}.workspace{align-items:center;gap:var(--sp-2);min-width:0;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-md);color:var(--ink);flex:1;font-weight:600;display:flex}.workspace:hover{background:var(--hover)}.monogram{border-radius:var(--r-md);background:var(--accent);width:22px;height:22px;color:var(--accent-ink);font-family:var(--font-display);font-variation-settings:"opsz" 24, "SOFT" 100;place-items:center;padding-bottom:2px;font-size:16px;font-style:italic;font-weight:600;line-height:1;display:grid}.workspace-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.icon-btn{width:var(--hit);height:var(--hit);border-radius:var(--r-md);color:var(--ink-3);flex:none;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--hover);color:var(--ink)}.icon-btn:active{background:var(--press)}.icon-btn.sm{border-radius:var(--r-sm);width:22px;height:22px}.nav-item{align-items:center;gap:var(--sp-2);width:calc(100% - var(--sp-4));margin:0 var(--sp-2);min-height:var(--hit);padding:0 var(--sp-2);border-radius:var(--r-md);text-align:left;color:var(--ink-2);display:flex}.nav-item:hover{background:var(--hover);color:var(--ink)}.nav-item .grow{flex:1}.nav-item kbd{opacity:0;transition:opacity var(--dur) var(--ease-out)}.nav-item:hover kbd{opacity:1}.sidebar-scroll{padding-bottom:var(--sp-4);flex:1;overflow-y:auto}.section-label{margin:var(--sp-5) var(--sp-2) var(--sp-1);padding:0 var(--sp-2);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);justify-content:space-between;align-items:center;font-weight:600;display:flex}.section-label .icon-btn{opacity:0}.section-label:hover .icon-btn,.section-label:focus-within .icon-btn{opacity:1}.tree-row{min-height:var(--hit);margin:0 var(--sp-2);padding-right:var(--sp-1);border-radius:var(--r-md);color:var(--ink-2);cursor:pointer;align-items:center;gap:2px;display:flex;position:relative}.tree-row:hover{background:var(--hover)}.tree-row:before{content:"";background:var(--accent);width:3px;transition:transform var(--dur) var(--ease-spring);border-radius:0 3px 3px 0;position:absolute;top:6px;bottom:6px;left:-8px;transform:scaleY(0)}.tree-row.active{background:var(--press);color:var(--ink);font-weight:550}.tree-row.active:before{transform:scaleY(1)}.tree-row.drop-inside{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-line)}.tree-row.drop-before{box-shadow:0 -2px 0 var(--accent)}.tree-row.drop-after{box-shadow:0 2px 0 var(--accent)}.tree-toggle{border-radius:var(--r-sm);width:20px;height:20px;color:var(--ink-3);flex:none;place-items:center;display:grid}.tree-toggle:hover{background:var(--press)}.tree-toggle .icon{width:12px;height:12px;transition:transform var(--dur) var(--ease-out)}.tree-toggle.open .icon{transform:rotate(90deg)}.page-icon{width:20px;height:20px;color:var(--ink-3);flex:none;place-items:center;font-size:15px;line-height:1;display:grid}.tree-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tree-actions{opacity:0;display:flex}.tree-row:hover .tree-actions,.tree-row:focus-within .tree-actions{opacity:1}.tree-empty{margin:0 var(--sp-2);padding:var(--sp-1) var(--sp-2);color:var(--ink-4);font-size:var(--fs-xs)}.sidebar-foot{border-top:1px solid var(--rule);padding:var(--sp-2) 0}.theme-switch{margin:var(--sp-2) var(--sp-4) 0;border-radius:var(--r-md);background:var(--press);gap:2px;padding:2px;display:flex}.theme-switch button{border-radius:var(--r-sm);height:24px;color:var(--ink-3);flex:1;place-items:center;display:grid}.theme-switch button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-card)}.resizer{cursor:col-resize;z-index:3;width:6px;position:absolute;top:0;bottom:0;right:-3px}.resizer:hover,.resizer.dragging{background:linear-gradient(to right, transparent 2px, var(--accent-line) 2px, var(--accent-line) 4px, transparent 4px)}.scrim{display:none}.topbar{height:var(--topbar-h);align-items:center;gap:var(--sp-1);padding:0 var(--sp-3);font-size:var(--fs-sm);color:var(--ink-2);background:var(--surface);flex:none;display:flex}.crumbs{flex:1;align-items:center;gap:2px;min-width:0;display:flex;overflow:hidden}.crumb{border-radius:var(--r-sm);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;max-width:220px;height:26px;padding:0 6px;display:flex;overflow:hidden}.crumb:hover{background:var(--hover);color:var(--ink)}.crumb:last-child{color:var(--ink)}.crumb-sep{color:var(--ink-4)}.edited{color:var(--ink-3);font-size:var(--fs-xs);margin-right:var(--sp-2);white-space:nowrap}.icon-btn.on{color:var(--accent)}.page{max-width:calc(var(--page-width) + 2 * var(--sp-24));padding:0 var(--sp-24) 30vh;margin:0 auto}.page.full{max-width:none}.page.is-db{max-width:calc(1120px + 2 * var(--sp-24))}.page.small{--fs-md:14px}.cover{background-position:50%;background-size:cover;height:30vh;min-height:160px;max-height:280px;position:relative}.cover-actions{right:var(--sp-24);bottom:var(--sp-3);gap:var(--sp-1);opacity:0;transition:opacity var(--dur) var(--ease-out);display:flex;position:absolute}.cover:hover .cover-actions,.cover:focus-within .cover-actions{opacity:1}.chip-btn{height:26px;padding:0 var(--sp-2);border-radius:var(--r-md);font-size:var(--fs-xs);color:var(--ink-3);align-items:center;gap:6px;display:inline-flex}.chip-btn:hover{background:var(--hover);color:var(--ink-2)}.cover .chip-btn{background:var(--raised);color:var(--ink-2);box-shadow:var(--shadow-card)}.cover-vermillon{background-color:#c2471a;background-image:repeating-linear-gradient(115deg,#ffffff17 0 1px,#0000 1px 14px)}.cover-encre{background-color:#1f2a3a;background-image:radial-gradient(#ffffff29 1px,#0000 1.4px);background-size:18px 18px}.cover-sable{background-color:#e4d6bb;background-image:repeating-linear-gradient(0deg,#5a401e1a 0 1px,#0000 1px 12px)}.cover-foret{background-color:#2f4a3a;background-image:linear-gradient(#ffffff12 1px,#0000 1px),linear-gradient(90deg,#ffffff12 1px,#0000 1px);background-size:28px 28px}.cover-aube{background:linear-gradient(90deg,#f2c9a8 0 50%,#e9875b 50% 100%)}.cover-ardoise{background-color:#3d3a36;background-image:repeating-linear-gradient(45deg,#ffffff0d 0 2px,#0000 2px 10px)}.page-head{padding-top:var(--sp-24);position:relative}.has-cover .page-head{padding-top:var(--sp-6)}.page-head-icon{margin-bottom:var(--sp-2);padding:var(--sp-1);border-radius:var(--r-lg);width:max-content;font-size:72px;line-height:1;display:block}.page-head-icon:hover{background:var(--hover)}.has-cover .page-head-icon{margin-top:-64px;position:relative}.page-head-tools{min-height:28px;margin-left:calc(-1 * var(--sp-2));opacity:0;transition:opacity var(--dur) var(--ease-out);gap:2px;display:flex}.page-head:hover .page-head-tools,.page-head:focus-within .page-head-tools{opacity:1}.page-title{margin:var(--sp-1) 0 0;font-family:var(--font-display);font-size:var(--fs-3xl);font-variation-settings:"opsz" 72, "SOFT" 30;letter-spacing:-.022em;color:var(--ink);word-break:break-word;outline:none;font-weight:640;line-height:1.12}.page-title:empty:before{content:attr(data-placeholder);color:var(--ink-4)}.colophon{gap:var(--sp-3);margin:var(--sp-3) 0 var(--sp-6);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.02em;color:var(--ink-3);flex-wrap:wrap;display:flex}.colophon span+span:before{content:"·";margin-right:var(--sp-3);color:var(--ink-4)}.trash-banner{justify-content:center;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);background:var(--danger);color:#fff;font-size:var(--fs-sm);flex-wrap:wrap;display:flex}.trash-banner button{height:26px;padding:0 var(--sp-3);border-radius:var(--r-md);border:1px solid #ffffff8c}.trash-banner button:hover{background:#ffffff24}.empty-state{text-align:center;height:100%;color:var(--ink-3);padding:var(--sp-8);place-items:center;display:grid}.empty-state h2{font-family:var(--font-display);color:var(--ink);font-weight:600;font-size:var(--fs-2xl);margin:0 0 var(--sp-2)}.props{gap:2px var(--sp-2);margin-bottom:var(--sp-4);padding-bottom:var(--sp-4);border-bottom:1px solid var(--rule);font-size:var(--fs-sm);grid-template-columns:minmax(120px,180px) 1fr;display:grid}.prop-label{min-height:32px;color:var(--ink-3);align-items:center;gap:6px;padding:0 6px;display:flex}.prop-value{border-radius:var(--r-sm);align-items:center;min-height:32px;display:flex}.prop-value:hover{background:var(--hover)}.editor{padding-bottom:var(--sp-4);position:relative}.editor-tail{cursor:text;height:120px}.block{position:relative}.block-row{border-radius:var(--r-sm);align-items:flex-start;display:flex;position:relative}.block.selected>.block-row{background:var(--block-selected)}.block.drop-before>.block-row{box-shadow:0 -3px 0 -1px var(--accent)}.block.drop-after>.block-row{box-shadow:0 3px 0 -1px var(--accent)}.block.dragging{opacity:.35}.gutter{opacity:0;height:100%;max-height:34px;transition:opacity var(--dur-fast) var(--ease-out);align-items:center;gap:1px;padding-right:4px;display:flex;position:absolute;top:0;left:-50px}.block-row:hover>.gutter,.gutter:focus-within{opacity:1}.handle{cursor:grab}.handle:active{cursor:grabbing}.block-content{flex:1;align-items:flex-start;gap:2px;min-width:0;display:flex}.block-children{padding-left:26px}.text{min-width:0;min-height:1.6em;line-height:1.6;font-size:var(--fs-md);white-space:pre-wrap;word-break:break-word;caret-color:var(--accent);outline:none;flex:1;padding:3px 2px}.text:empty:before{content:attr(data-placeholder);color:var(--ink-4);pointer-events:none}.text.ph-focus:empty:before{content:""}.text.ph-focus:focus:empty:before{content:attr(data-placeholder)}.text b{font-weight:650}.text code,.cell-text code{font-family:var(--font-mono);border-radius:var(--r-sm);background:var(--sunken);color:var(--c-red);border:1px solid var(--rule);padding:.12em .36em;font-size:.86em}.text a{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--accent-line);text-decoration-color:var(--accent-line);text-underline-offset:3px}.text a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.t-h1{font-family:var(--font-display);font-size:var(--fs-2xl);font-variation-settings:"opsz" 48;letter-spacing:-.015em;margin-top:var(--sp-6);font-weight:620;line-height:1.25}.t-h2{font-family:var(--font-display);font-size:var(--fs-xl);font-variation-settings:"opsz" 36;letter-spacing:-.01em;margin-top:var(--sp-5);font-weight:600;line-height:1.3}.t-h3{font-size:var(--fs-lg);margin-top:var(--sp-3);font-weight:650;line-height:1.35}.gutter.for-h1{max-height:none;top:var(--sp-6);height:44px}.gutter.for-h2{top:var(--sp-5);height:38px;max-height:none}.gutter.for-h3{top:var(--sp-3);max-height:34px}.marker{min-width:24px;height:1.6em;color:var(--ink);font-size:var(--fs-md);flex:none;justify-content:center;align-items:center;margin-top:3px;line-height:1.6;display:flex}.marker.num{font-variant-numeric:tabular-nums;justify-content:flex-end;min-width:26px;padding-right:6px}.bullet-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.bullet-dot.d1{background:0 0;box-shadow:inset 0 0 0 1.4px}.bullet-dot.d2{border-radius:1px}.check{border-radius:var(--r-sm);width:17px;height:17px;box-shadow:inset 0 0 0 1.5px var(--ink-3);place-items:center;display:grid;position:relative;overflow:hidden}.check:before{content:"";background:var(--accent);border-radius:inherit;transition:transform var(--dur) var(--ease-out);position:absolute;inset:0;transform:scale(0)}.check .icon{width:13px;height:13px;stroke:var(--accent-ink);stroke-width:2.4px;opacity:0;transition:transform var(--dur-slow) var(--ease-spring), opacity var(--dur-fast) var(--ease-out);position:relative;transform:scale(.4)rotate(-12deg)}.check.on{box-shadow:none}.check.on:before{transform:scale(1)}.check.on .icon{opacity:1;transform:none}.todo-done{color:var(--ink-3);text-decoration:line-through;-webkit-text-decoration-color:var(--ink-4);text-decoration-color:var(--ink-4)}.toggle-arrow .icon{width:13px;height:13px;transition:transform var(--dur) var(--ease-out)}.toggle-arrow.open .icon{transform:rotate(90deg)}.toggle-empty{color:var(--ink-4);font-size:var(--fs-sm);cursor:text;padding:3px 2px}.quote-bar{background:var(--ink);border-radius:2px;flex:none;align-self:stretch;width:3px;margin:4px 14px 4px 2px}.t-quote{font-family:var(--font-display);font-size:calc(var(--fs-md) * 1.12);font-variation-settings:"opsz" 24;font-style:italic}.callout{align-items:flex-start;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4) var(--sp-3) var(--sp-3);border-radius:var(--r-md);background:var(--sunken);flex:1;margin:2px 0;display:flex}.callout-icon{border-radius:var(--r-sm);padding:3px;font-size:20px;line-height:1}.callout-icon:hover{background:var(--hover)}.callout .text{padding-top:1px}.code-wrap{min-width:0;margin:var(--sp-1) 0;border-radius:var(--r-md);background:var(--sunken);border:1px solid var(--rule);flex:1;position:relative}.code-lang{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--ink-3);cursor:pointer;background:0 0;border:0;padding:2px 0;position:absolute;top:6px;left:10px}.code-copy{opacity:0;position:absolute;top:4px;right:6px}.code-wrap:hover .code-copy{opacity:1}.code-text{padding:34px var(--sp-4) var(--sp-4);font-family:var(--font-mono);tab-size:2;white-space:pre;caret-color:var(--accent);outline:none;font-size:13.5px;line-height:1.65;display:block;overflow-x:auto}.divider{cursor:pointer;flex:1;align-items:center;height:1.6em;margin:3px 0;display:flex}.divider:before{content:"";background:var(--rule-strong);flex:1;height:1px}.image-block{margin:var(--sp-1) 0;flex:1}.image-block img{border-radius:var(--r-md);max-width:100%;display:block}.image-empty{align-items:center;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-md);background:var(--sunken);color:var(--ink-3);font-size:var(--fs-sm);display:flex}.image-empty input{min-width:0;height:30px;padding:0 var(--sp-2);border:1px solid var(--rule-strong);border-radius:var(--r-md);background:var(--surface);flex:1}.page-link{align-items:center;gap:var(--sp-2);border-radius:var(--r-sm);text-align:left;flex:1;min-height:1.6em;padding:3px 2px;font-weight:550;display:flex}.page-link:hover{background:var(--hover)}.page-link .page-link-title{border-bottom:1px solid var(--rule-strong);line-height:1.3}[data-color=gray]{color:var(--c-gray)}[data-color=brown]{color:var(--c-brown)}[data-color=orange]{color:var(--c-orange)}[data-color=yellow]{color:var(--c-yellow)}[data-color=green]{color:var(--c-green)}[data-color=blue]{color:var(--c-blue)}[data-color=purple]{color:var(--c-purple)}[data-color=pink]{color:var(--c-pink)}[data-color=red]{color:var(--c-red)}[data-color=gray-bg]{background:var(--c-gray-bg)}[data-color=brown-bg]{background:var(--c-brown-bg)}[data-color=orange-bg]{background:var(--c-orange-bg)}[data-color=yellow-bg]{background:var(--c-yellow-bg)}[data-color=green-bg]{background:var(--c-green-bg)}[data-color=blue-bg]{background:var(--c-blue-bg)}[data-color=purple-bg]{background:var(--c-purple-bg)}[data-color=pink-bg]{background:var(--c-pink-bg)}[data-color=red-bg]{background:var(--c-red-bg)}.block-row[data-color$=-bg]{border-radius:var(--r-sm)}.callout[data-color=orange]{background:var(--c-orange-bg);color:var(--ink)}.callout[data-color=gray]{background:var(--c-gray-bg);color:var(--ink)}.callout[data-color=brown]{background:var(--c-brown-bg);color:var(--ink)}.callout[data-color=yellow]{background:var(--c-yellow-bg);color:var(--ink)}.callout[data-color=green]{background:var(--c-green-bg);color:var(--ink)}.callout[data-color=blue]{background:var(--c-blue-bg);color:var(--ink)}.callout[data-color=purple]{background:var(--c-purple-bg);color:var(--ink)}.callout[data-color=pink]{background:var(--c-pink-bg);color:var(--ink)}.callout[data-color=red]{background:var(--c-red-bg);color:var(--ink)}.layer{z-index:50;position:fixed;inset:0}.pop{z-index:60;min-width:220px;max-width:min(340px,100vw - 16px);max-height:min(420px,100vh - 16px);padding:var(--sp-1);border-radius:var(--r-lg);background:var(--raised);box-shadow:var(--shadow-menu);font-size:var(--fs-sm);color:var(--ink);animation:pop-in var(--dur) var(--ease-out);transform-origin:0 0;position:fixed;overflow-y:auto}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}}.menu-label{padding:var(--sp-2) var(--sp-2) var(--sp-1);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.menu-item{align-items:center;gap:var(--sp-2);width:100%;min-height:30px;padding:0 var(--sp-2);border-radius:var(--r-md);text-align:left;color:var(--ink);display:flex}.menu-item:hover,.menu-item.active{background:var(--hover)}.menu-item.danger{color:var(--danger)}.menu-item .grow{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.menu-item .hint{color:var(--ink-3);font-size:var(--fs-xs)}.menu-sep{height:1px;margin:var(--sp-1) var(--sp-1);background:var(--rule)}.menu-input{width:100%;height:30px;margin-bottom:var(--sp-1);padding:0 var(--sp-2);border:1px solid var(--rule-strong);border-radius:var(--r-md);background:var(--surface);outline:none}.menu-input:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.color-swatch{border-radius:var(--r-sm);width:20px;height:20px;font-weight:600;font-size:var(--fs-xs);box-shadow:inset 0 0 0 1px var(--rule);place-items:center;display:grid}.slash-item{min-height:46px}.slash-thumb{border-radius:var(--r-md);background:var(--surface);width:38px;height:38px;box-shadow:inset 0 0 0 1px var(--rule);color:var(--ink-2);font-family:var(--font-display);flex:none;place-items:center;font-weight:600;display:grid}.slash-thumb .icon{width:18px;height:18px}.slash-text{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.slash-text small{color:var(--ink-3);font-size:var(--fs-xs)}.slash-empty{padding:var(--sp-2);color:var(--ink-3)}.toolbar{z-index:60;border-radius:var(--r-lg);background:var(--raised);box-shadow:var(--shadow-menu);animation:pop-in var(--dur-fast) var(--ease-out);align-items:center;gap:1px;padding:3px;display:flex;position:fixed}.toolbar button{border-radius:var(--r-md);min-width:28px;height:28px;color:var(--ink-2);font-size:var(--fs-sm);justify-content:center;align-items:center;gap:4px;padding:0 6px;display:inline-flex}.toolbar button:hover{background:var(--hover);color:var(--ink)}.toolbar button.on{color:var(--accent)}.toolbar .sep{background:var(--rule);width:1px;height:18px;margin:0 3px}.toolbar input{width:220px;height:28px;padding:0 var(--sp-2);background:0 0;border:0;outline:none}.modal-scrim{z-index:70;background:var(--overlay);padding:12vh var(--sp-4) var(--sp-4);animation:fade var(--dur) var(--ease-out);justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal{border-radius:var(--r-lg);background:var(--raised);width:min(620px,100%);max-height:70vh;box-shadow:var(--shadow-lift);animation:pop-in var(--dur) var(--ease-out);flex-direction:column;display:flex;overflow:hidden}.modal-search{align-items:center;gap:var(--sp-3);padding:0 var(--sp-4);border-bottom:1px solid var(--rule);color:var(--ink-3);display:flex}.modal-search input{height:52px;font-size:var(--fs-md);color:var(--ink);background:0 0;border:0;outline:none;flex:1}.modal-body{padding:var(--sp-2);overflow-y:auto}.result{align-items:flex-start;gap:var(--sp-3);width:100%;padding:var(--sp-2);border-radius:var(--r-md);text-align:left;display:flex}.result.active,.result:hover{background:var(--hover)}.result-main{flex:1;min-width:0}.result-title{font-weight:550}.result-path,.result-snippet{font-size:var(--fs-xs);color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.result-snippet mark{background:var(--accent-soft);color:var(--ink);border-radius:2px}.modal-foot{gap:var(--sp-4);padding:var(--sp-2) var(--sp-4);border-top:1px solid var(--rule);font-size:var(--fs-xs);color:var(--ink-3);display:flex}.modal-foot span{align-items:center;gap:6px;display:inline-flex}.modal-empty{padding:var(--sp-8) var(--sp-4);text-align:center;color:var(--ink-3);font-size:var(--fs-sm)}.toast{left:50%;bottom:var(--sp-6);z-index:80;padding:var(--sp-2) var(--sp-4);border-radius:var(--r-md);background:var(--ink);color:var(--surface);font-size:var(--fs-sm);box-shadow:var(--shadow-lift);animation:toast-in var(--dur-slow) var(--ease-spring);position:fixed;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.emoji-grid{padding:var(--sp-1);grid-template-columns:repeat(8,1fr);gap:2px;display:grid}.emoji-grid button{border-radius:var(--r-md);height:34px;font-size:21px}.emoji-grid button:hover{background:var(--hover)}.cover-grid{gap:var(--sp-2);padding:var(--sp-1);grid-template-columns:repeat(3,1fr);display:grid}.cover-grid button{border-radius:var(--r-md);height:52px;box-shadow:inset 0 0 0 1px var(--rule)}.cover-grid button:hover{transition:transform var(--dur-fast) var(--ease-out);transform:translateY(-1px)}.db{min-width:0;margin:var(--sp-2) 0;flex:1}.db-head{align-items:center;gap:var(--sp-2);border-bottom:1px solid var(--rule);flex-wrap:wrap;margin-bottom:0;display:flex}.db-title{font-family:var(--font-display);font-size:var(--fs-lg);outline:none;min-width:40px;padding:2px;font-weight:600}.db-title:empty:before{content:attr(data-placeholder);color:var(--ink-4)}.tabs{scrollbar-width:none;flex:1;align-items:center;gap:2px;min-width:0;display:flex;overflow:auto hidden}.tab{height:34px;padding:0 var(--sp-2);font-size:var(--fs-sm);color:var(--ink-3);white-space:nowrap;align-items:center;gap:6px;display:inline-flex;position:relative}.tab:hover{color:var(--ink)}.tab:after{content:"";left:var(--sp-2);right:var(--sp-2);background:var(--ink);height:2px;transition:transform var(--dur) var(--ease-out);position:absolute;bottom:-1px;transform:scaleX(0)}.tab.active{color:var(--ink);font-weight:550}.tab.active:after{transform:scaleX(1)}.db-tools{align-items:center;gap:var(--sp-1);display:flex}.db-search{width:150px;height:28px;padding:0 var(--sp-2);border-radius:var(--r-md);font-size:var(--fs-sm);background:0 0;border:1px solid #0000;outline:none}.db-search:hover{background:var(--hover)}.db-search:focus{background:var(--surface);border-color:var(--rule-strong)}.btn-primary{height:28px;padding:0 var(--sp-3);border-radius:var(--r-md);background:var(--accent);color:var(--accent-ink);font-size:var(--fs-sm);transition:transform var(--dur-fast) var(--ease-out);align-items:center;gap:6px;font-weight:600;display:inline-flex}.btn-primary:hover{filter:brightness(1.05)}.btn-primary:active{transform:translateY(1px)scale(.98)}.btn-ghost{height:28px;padding:0 var(--sp-2);border-radius:var(--r-md);color:var(--ink-3);font-size:var(--fs-sm);align-items:center;gap:6px;display:inline-flex}.btn-ghost:hover{background:var(--hover);color:var(--ink)}.btn-danger{height:30px;padding:0 var(--sp-3);border-radius:var(--r-md);background:var(--danger);color:#fff;font-weight:600;font-size:var(--fs-sm)}.table-wrap{scrollbar-width:thin;margin:0 calc(-1 * var(--sp-1));padding:0 var(--sp-1);overflow-x:auto}.table{border-collapse:collapse;min-width:100%;font-size:var(--fs-sm)}.table th{text-align:left;height:34px;color:var(--ink-3);border-bottom:1px solid var(--rule);white-space:nowrap;padding:0;font-weight:500}.table th+th,.table td+td{border-left:1px solid var(--rule)}.th-btn{width:100%;height:34px;padding:0 var(--sp-2);text-align:left;align-items:center;gap:6px;display:flex}.th-btn:hover{background:var(--hover)}.th-btn .icon{width:14px;height:14px}.table td{border-bottom:1px solid var(--rule);vertical-align:middle;height:36px;padding:0}.table tbody tr:hover td{background:var(--hover)}.col-title{min-width:240px}.col-prop{min-width:150px}.col-add{width:40px}.title-cell{padding-right:var(--sp-1);align-items:center;gap:4px;display:flex}.open-row{border-radius:var(--r-sm);background:var(--raised);height:22px;box-shadow:var(--shadow-card);font-size:var(--fs-2xs);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);opacity:0;align-items:center;gap:4px;padding:0 6px;font-weight:600;display:inline-flex}tr:hover .open-row,.open-row:focus-visible{opacity:1}.cell-input{width:100%;height:34px;padding:0 var(--sp-2);background:0 0;border:0;outline:none}.cell-input:focus{background:var(--raised);box-shadow:inset 0 0 0 2px var(--accent-line);border-radius:var(--r-sm)}.cell-input.num{text-align:right;font-variant-numeric:tabular-nums}.cell-input.title{font-weight:550}.cell-btn{width:100%;min-height:34px;padding:4px var(--sp-2);text-align:left;flex-wrap:wrap;align-items:center;gap:4px;display:flex}.cell-check{padding:0 var(--sp-2);align-items:center;height:34px;display:flex}.cell-date{color:var(--ink);font-variant-numeric:tabular-nums}.cell-empty{color:var(--ink-4)}.tag{border-radius:var(--r-sm);height:20px;font-size:var(--fs-xs);white-space:nowrap;color:var(--ink);align-items:center;gap:4px;padding:0 7px;font-weight:500;display:inline-flex}.tag[data-tag=gray]{background:var(--c-gray-bg)}.tag[data-tag=brown]{background:var(--c-brown-bg)}.tag[data-tag=orange]{background:var(--c-orange-bg)}.tag[data-tag=yellow]{background:var(--c-yellow-bg)}.tag[data-tag=green]{background:var(--c-green-bg)}.tag[data-tag=blue]{background:var(--c-blue-bg)}.tag[data-tag=purple]{background:var(--c-purple-bg)}.tag[data-tag=pink]{background:var(--c-pink-bg)}.tag[data-tag=red]{background:var(--c-red-bg)}.dot{border-radius:50%;flex:none;width:8px;height:8px}.dot[data-tag=gray]{background:var(--c-gray)}.dot[data-tag=brown]{background:var(--c-brown)}.dot[data-tag=orange]{background:var(--c-orange)}.dot[data-tag=yellow]{background:var(--c-yellow)}.dot[data-tag=green]{background:var(--c-green)}.dot[data-tag=blue]{background:var(--c-blue)}.dot[data-tag=purple]{background:var(--c-purple)}.dot[data-tag=pink]{background:var(--c-pink)}.dot[data-tag=red]{background:var(--c-red)}.add-row{width:100%;height:34px;padding:0 var(--sp-2);color:var(--ink-3);font-size:var(--fs-sm);border-bottom:1px solid var(--rule);align-items:center;gap:6px;display:flex}.add-row:hover{background:var(--hover);color:var(--ink)}.db-count{padding:var(--sp-2);font-size:var(--fs-xs);color:var(--ink-3);font-variant-numeric:tabular-nums}.board{scrollbar-width:thin;gap:var(--sp-3);padding:var(--sp-3) 0 var(--sp-4);align-items:flex-start;display:flex;overflow-x:auto}.board-col{border-radius:var(--r-lg);width:264px;padding:var(--sp-2);background:var(--sunken);transition:box-shadow var(--dur-fast) var(--ease-out);flex:none}.board-col.over{box-shadow:inset 0 0 0 2px var(--accent-line)}.board-col-head{align-items:center;gap:var(--sp-2);height:28px;padding:0 var(--sp-1);margin-bottom:var(--sp-2);font-size:var(--fs-sm);font-weight:550;display:flex}.board-col-head .count{color:var(--ink-3);font-variant-numeric:tabular-nums;font-weight:400}.card{width:100%;margin-bottom:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--raised);box-shadow:var(--shadow-card);text-align:left;cursor:grab;transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);display:block}.card:hover{box-shadow:var(--shadow-lift);transform:translateY(-1px)}.card.dragging{opacity:.4}.card-title{font-size:var(--fs-sm);margin-bottom:6px;font-weight:550;line-height:1.4}.card-props{font-size:var(--fs-xs);color:var(--ink-3);flex-wrap:wrap;gap:4px 6px;display:flex}.card-new{width:100%;height:30px;padding:0 var(--sp-2);border-radius:var(--r-md);color:var(--ink-3);font-size:var(--fs-sm);align-items:center;gap:6px;display:flex}.card-new:hover{background:var(--hover);color:var(--ink)}@media (width<=1080px){.page{padding-left:var(--sp-12);padding-right:var(--sp-12)}.cover-actions{right:var(--sp-12)}}@media (width<=760px){.sidebar{z-index:40;box-shadow:var(--shadow-lift);position:fixed;inset:0 auto 0 0;width:min(300px,86vw)!important}.resizer{display:none}.scrim{z-index:39;background:var(--overlay);animation:fade var(--dur) var(--ease-out);display:block;position:fixed;inset:0}.page{padding-left:var(--sp-4);padding-right:var(--sp-4)}.page-head{padding-top:var(--sp-12)}.page-title{font-size:var(--fs-2xl)}.page-head-tools{opacity:1}.gutter{display:none}.cover-actions{right:var(--sp-4);opacity:1}.edited{display:none}.props{grid-template-columns:110px 1fr}.db-search{width:110px}}
