:root{--bg: #f3f1ec;--surface: #fdfcfa;--surface-2: #f7f6f2;--raised: #ffffff;--ink: #1d1c1a;--ink-2: #5e5c57;--ink-3: #9b9892;--line: rgba(40, 36, 28, .08);--line-2: rgba(40, 36, 28, .14);--hover: rgba(40, 36, 28, .05);--press: rgba(40, 36, 28, .09);--accent: #5b5bd6;--accent-ink: #ffffff;--accent-soft: rgba(91, 91, 214, .11);--danger: #e5484d;--ok: #30a46c;--warn: #f76b15;--shadow-sm: 0 1px 2px rgba(30, 25, 15, .06), 0 0 0 1px rgba(30, 25, 15, .05);--shadow-md: 0 1px 2px rgba(30, 25, 15, .05), 0 4px 14px rgba(30, 25, 15, .07), 0 0 0 1px rgba(30, 25, 15, .05);--shadow-lg: 0 2px 6px rgba(30, 25, 15, .06), 0 18px 48px rgba(30, 25, 15, .16), 0 0 0 1px rgba(30, 25, 15, .06);--grid: rgba(40, 36, 28, .045);--c-yellow: #d9a20b;--c-pink: #d6409f;--c-orange: #e8650f;--c-green: #2f9e66;--c-blue: #0a84ff;--c-purple: #7c5cd6;--c-gray: #8d8b85;--radius: 12px;--font: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;--serif: "Instrument Serif", "New York", Georgia, serif;--mono: "SF Mono", ui-monospace, Menlo, monospace;--ease: cubic-bezier(.2, .8, .2, 1);color-scheme:light}:root[data-theme=dark]{--bg: #111110;--surface: #191918;--surface-2: #1f1f1d;--raised: #232321;--ink: #eeede9;--ink-2: #a9a7a1;--ink-3: #6f6d68;--line: rgba(255, 255, 255, .07);--line-2: rgba(255, 255, 255, .12);--hover: rgba(255, 255, 255, .05);--press: rgba(255, 255, 255, .09);--accent: #8b8bf7;--accent-ink: #14142b;--accent-soft: rgba(139, 139, 247, .15);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4), 0 0 0 1px rgba(255, 255, 255, .05);--shadow-md: 0 2px 4px rgba(0, 0, 0, .35), 0 6px 18px rgba(0, 0, 0, .35), 0 0 0 1px rgba(255, 255, 255, .06);--shadow-lg: 0 4px 10px rgba(0, 0, 0, .4), 0 24px 60px rgba(0, 0, 0, .55), 0 0 0 1px rgba(255, 255, 255, .08);--grid: rgba(255, 255, 255, .035);--c-yellow: #e6b53a;--c-pink: #e66bb6;--c-orange: #f2833a;--c-green: #4cc38a;--c-blue: #4aa3ff;--c-purple: #9b85f2;--c-gray: #8f8d87;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0}input,textarea{outline:none;border:0;background:none}textarea{overflow:hidden}::selection{background:var(--accent-soft)}kbd{font-family:var(--font);font-size:11px;font-weight:500;color:var(--ink-3);background:var(--hover);border:1px solid var(--line);border-radius:5px;padding:0 5px;line-height:18px;min-width:18px;text-align:center;display:inline-block}.muted{color:var(--ink-3);font-weight:400}.small{font-size:12px}.app{display:grid;grid-template-columns:260px minmax(0,1fr);height:100%;transition:grid-template-columns .28s var(--ease)}.app.is-collapsed{grid-template-columns:0 minmax(0,1fr)}.app.is-collapsed .sidebar{opacity:0;pointer-events:none;overflow:hidden}.main{position:relative;margin:8px 8px 8px 0;background:var(--surface);border-radius:14px;box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column;min-width:0}.app.is-collapsed .main{margin-left:8px}.sidebar-reveal{position:absolute;top:14px;left:12px;z-index:20}.view{flex:1;display:flex;flex-direction:column;min-height:0;animation:fade-in .25s var(--ease)}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}}.view-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:34px 40px 20px}.app.is-collapsed .view-head{padding-left:60px}.view-title{font-family:var(--serif);font-weight:400;font-size:44px;line-height:1;letter-spacing:-.01em;margin:0 0 8px}.view-sub{margin:0;color:var(--ink-3);font-size:13px}.empty-state{align-items:center;justify-content:center;color:var(--ink-3)}.btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px 0 11px;border-radius:9px;font-weight:500;transition:transform .12s var(--ease),box-shadow .2s,background .2s}.btn:active{transform:scale(.97)}.btn-primary{background:var(--ink);color:var(--surface);box-shadow:0 1px 2px #00000026,inset 0 1px #ffffff1f}.btn-primary:hover{box-shadow:0 4px 14px #0000002e,inset 0 1px #ffffff1f}.icon-btn{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:7px;color:var(--ink-3);transition:background .15s,color .15s}.icon-btn:hover,.icon-btn.is-open{background:var(--hover);color:var(--ink)}.icon-btn-sm{width:22px;height:22px}.icon-btn.is-fav{color:#f5a524}.ghost-btn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 9px;border-radius:7px;color:var(--ink-3);font-size:13px}.ghost-btn:hover{background:var(--hover);color:var(--ink-2)}.link-btn{color:var(--ink-3);font-size:12px;text-decoration:underline;text-underline-offset:2px}.dropdown{position:relative;display:inline-flex}.popover{position:absolute;top:calc(100% + 6px);left:0;z-index:100;min-width:200px;padding:5px;background:var(--raised);border-radius:11px;box-shadow:var(--shadow-lg);animation:pop .16s var(--ease);transform-origin:top left}.popover-right{left:auto;right:0;transform-origin:top right}@keyframes pop{0%{opacity:0;transform:scale(.96) translateY(-4px)}}.menu-item{display:flex;align-items:center;gap:9px;width:100%;padding:7px 9px;border-radius:7px;text-align:left;font-size:13px;color:var(--ink-2)}.menu-item:hover{background:var(--hover);color:var(--ink)}.menu-item.is-danger:hover{background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--danger)}.menu-item .menu-text{flex:1;min-width:0}.sidebar{display:flex;flex-direction:column;min-width:0;padding:14px 10px 10px;transition:opacity .2s}.sidebar-head{display:flex;align-items:center;justify-content:space-between;padding:0 4px 0 6px;margin-bottom:14px}.workspace{display:flex;align-items:center;gap:9px;font-weight:600;font-size:14.5px;letter-spacing:-.01em}.workspace-logo{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:linear-gradient(140deg,#7f7cff,#5b5bd6 45%,#e86fa3);color:#fff;font-family:var(--serif);font-size:18px;box-shadow:inset 0 1px #ffffff59,0 2px 6px #5b5bd659}.search-btn{display:flex;align-items:center;gap:8px;height:34px;padding:0 8px 0 10px;margin-bottom:10px;border-radius:9px;background:var(--surface);box-shadow:var(--shadow-sm);color:var(--ink-3);font-size:13px;transition:box-shadow .2s}.search-btn span{flex:1;text-align:left}.search-btn:hover{box-shadow:var(--shadow-md);color:var(--ink-2)}.nav{display:flex;flex-direction:column;gap:1px;margin-bottom:16px}.nav-item{display:flex;align-items:center;gap:10px;height:32px;padding:0 10px;border-radius:8px;color:var(--ink-2);font-weight:500;font-size:13.5px;transition:background .15s,color .15s}.nav-item span:first-of-type{flex:1;text-align:left}.nav-item:hover{background:var(--hover);color:var(--ink)}.nav-item.is-active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.nav-item.is-active svg{color:var(--accent)}.nav-count{font-size:11.5px;color:var(--ink-3);font-variant-numeric:tabular-nums}.sidebar-scroll{flex:1;overflow-y:auto;margin:0 -4px;padding:0 4px}.side-section{margin-bottom:14px}.side-label{display:flex;align-items:center;gap:5px;height:26px;padding:0 6px 0 10px;color:var(--ink-3);font-size:11.5px;font-weight:500}.side-label-btn{margin-left:auto;display:grid;place-items:center;width:20px;height:20px;border-radius:5px;color:var(--ink-3);opacity:0;transition:opacity .15s}.side-section:hover .side-label-btn{opacity:1}.side-label-btn:hover{background:var(--hover);color:var(--ink)}.tree-row{display:flex;align-items:center;gap:6px;width:100%;height:30px;padding:0 6px 0 10px;border-radius:7px;color:var(--ink-2);font-size:13.5px;cursor:pointer;-webkit-user-select:none;user-select:none}.tree-row:hover{background:var(--hover);color:var(--ink)}.tree-row.is-active{background:var(--press);color:var(--ink);font-weight:500}.tree-toggle{display:grid;place-items:center;width:18px;height:18px;border-radius:4px;color:var(--ink-3);flex-shrink:0;transition:transform .18s var(--ease)}.tree-toggle:hover{background:var(--press)}.tree-toggle.is-open{transform:rotate(90deg)}.tree-toggle.is-empty{opacity:.35}.tree-icon{width:20px;text-align:center;font-size:14px;flex-shrink:0;display:grid;place-items:center}.tree-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.tree-action{display:grid;place-items:center;width:20px;height:20px;border-radius:5px;color:var(--ink-3);opacity:0}.tree-row:hover .tree-action{opacity:1}.tree-action:hover{background:var(--press);color:var(--ink)}.tree-add{color:var(--ink-3)}.theme-switch{display:flex;gap:2px;padding:3px;border-radius:9px;background:var(--hover)}.theme-switch button{display:grid;place-items:center;width:30px;height:24px;border-radius:6px;color:var(--ink-3);transition:background .15s,color .15s}.theme-switch button.is-active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.board-view .view-head{border-bottom:1px solid var(--line);padding-bottom:18px}.board-scroll{flex:1;overflow:auto;background-color:var(--surface-2);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:24px 24px;background-attachment:local}.board-canvas{position:relative;min-width:100%;min-height:100%}.board-empty{position:absolute;top:140px;left:50%;transform:translate(-50%);text-align:center;color:var(--ink-3);pointer-events:none;max-width:300px}.note{--c: var(--c-gray);position:absolute;display:flex;flex-direction:column;border-radius:8px;background:var(--raised);box-shadow:inset 2px 0 0 var(--c),var(--shadow-sm);transition:box-shadow .2s var(--ease)}.note:hover,.note:focus-within{box-shadow:inset 2px 0 0 var(--c),var(--shadow-md)}.note.is-dragging{box-shadow:inset 2px 0 0 var(--c),var(--shadow-lg);cursor:grabbing}.note-yellow{--c: var(--c-yellow)}.note-pink{--c: var(--c-pink)}.note-orange{--c: var(--c-orange)}.note-green{--c: var(--c-green)}.note-blue{--c: var(--c-blue)}.note-purple{--c: var(--c-purple)}.note-gray{--c: var(--c-gray)}.note-head{display:flex;align-items:center;gap:8px;height:34px;padding:0 10px 0 16px;border-bottom:1px solid var(--line);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.note-marker{width:7px;height:7px;border-radius:2px;background:var(--c);flex-shrink:0}.note-time{margin-left:auto;text-transform:none;letter-spacing:0;font-weight:400;white-space:nowrap;font-variant-numeric:tabular-nums}.note-tools{display:none;align-items:center;gap:4px;margin-left:auto;margin-right:-4px}.note:hover .note-time,.note:has(textarea:focus) .note-time{display:none}.note:hover .note-tools,.note:has(textarea:focus) .note-tools{display:flex}.note-content{padding:12px 16px 14px}.note-title,.note-body{display:block;resize:none;width:100%;field-sizing:content;color:var(--ink)}.note-title{font-weight:600;font-size:14.5px;letter-spacing:-.01em;line-height:1.35;margin-bottom:4px}.note-body{font-size:13px;line-height:1.6;min-height:42px;color:var(--ink-2)}.note-title::placeholder,.note-body::placeholder{color:var(--ink-3);opacity:.7}.swatch{width:11px;height:11px;border-radius:3px;background:var(--c);transition:scale .12s}.swatch:hover{scale:1.15}.swatch.is-active{box-shadow:0 0 0 2px var(--raised),0 0 0 3.5px var(--c)}.swatch-yellow{--c: var(--c-yellow)}.swatch-pink{--c: var(--c-pink)}.swatch-orange{--c: var(--c-orange)}.swatch-green{--c: var(--c-green)}.swatch-blue{--c: var(--c-blue)}.swatch-purple{--c: var(--c-purple)}.swatch-gray{--c: var(--c-gray)}.note-tool{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;color:var(--ink-3)}.note-tool:hover{background:var(--hover);color:var(--ink)}.progress-line{display:flex;align-items:center;gap:10px}.progress{display:inline-block;width:120px;height:5px;border-radius:99px;background:var(--press);overflow:hidden}.progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--ok),#5fd394);transition:width .4s var(--ease)}.progress-wide{width:100%;margin:2px 0 8px}.search-field{display:flex;align-items:center;gap:8px;width:260px;height:34px;padding:0 12px;border-radius:9px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-3);transition:box-shadow .2s}.search-field:focus-within{box-shadow:inset 0 0 0 1px var(--accent),0 0 0 3px var(--accent-soft)}.search-field input{flex:1;color:var(--ink);font-size:13px}.kanban{flex:1;display:flex;align-items:flex-start;gap:14px;padding:4px 40px 40px;overflow-x:auto}.column{flex:0 0 290px;display:flex;flex-direction:column;max-height:100%;border-radius:14px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);transition:background .2s,box-shadow .2s}.column.is-over{box-shadow:inset 0 0 0 1.5px var(--accent);background:color-mix(in srgb,var(--accent) 4%,var(--surface-2))}.column-head{display:flex;align-items:center;gap:8px;height:46px;padding:0 8px 0 14px}.column-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 0%,transparent)}.column-title{margin:0;font-size:13.5px;font-weight:600;cursor:default}.column-title-input{flex:1;font-size:13.5px;font-weight:600;padding:3px 6px;margin-left:-6px;border-radius:6px;background:var(--surface);box-shadow:0 0 0 1px var(--accent),0 0 0 3px var(--accent-soft)}.column-count{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}.column-actions{display:flex;margin-left:auto;opacity:0;transition:opacity .15s}.column:hover .column-actions,.column-actions:has(.is-open){opacity:1}.column-body{display:flex;flex-direction:column;gap:8px;padding:0 8px 10px;overflow-y:auto;min-height:60px}.column-ghost{flex-direction:row;align-items:center;justify-content:center;gap:6px;height:46px;background:transparent;box-shadow:inset 0 0 0 1px var(--line-2);border:0;color:var(--ink-3);font-weight:500;font-size:13px;border-radius:14px;transition:background .15s,color .15s}.column-ghost:hover{background:var(--hover);color:var(--ink-2)}.column-ghost.is-editing{padding:0 14px;justify-content:flex-start}.column-ghost.is-editing .column-title-input{margin:0}.card-slot{border-radius:11px;touch-action:manipulation;outline:none}.card-slot:focus-visible .card{box-shadow:0 0 0 2px var(--accent)}.card-slot.is-placeholder .card{opacity:.4;box-shadow:inset 0 0 0 1.5px var(--line-2);background:transparent}.card-slot.is-placeholder .card>*{visibility:hidden}.card{padding:11px 12px;border-radius:11px;background:var(--raised);box-shadow:var(--shadow-sm);cursor:pointer;transition:box-shadow .2s var(--ease),transform .2s var(--ease)}.card:hover{box-shadow:var(--shadow-md)}.card.is-overlay{cursor:grabbing;rotate:2deg;box-shadow:var(--shadow-lg)}.card-top{display:flex;align-items:flex-start;gap:9px}.card-title{margin:0;font-size:13.5px;font-weight:500;line-height:1.45;word-break:break-word}.card.is-done .card-title{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--line-2)}.check{display:grid;place-items:center;flex-shrink:0;width:17px;height:17px;margin-top:1.5px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--line-2);color:transparent;transition:background .2s var(--ease),box-shadow .2s,color .2s,transform .15s}.check:hover{box-shadow:inset 0 0 0 1.5px var(--ok);color:var(--ok)}.check:active{transform:scale(.85)}.check.is-checked{background:var(--ok);box-shadow:none;color:#fff;animation:check-pop .3s var(--ease)}@keyframes check-pop{50%{transform:scale(1.18)}}.check-lg{width:24px;height:24px;margin-top:9px}.card-meta{display:flex;flex-wrap:wrap;gap:5px;margin:9px 0 0 26px}.chip{display:inline-flex;align-items:center;gap:4px;height:21px;padding:0 7px;border-radius:6px;background:var(--hover);color:var(--ink-2);font-size:11.5px;font-weight:500}.chip-danger{background:color-mix(in srgb,var(--danger) 11%,transparent);color:var(--danger)}.chip-ok{background:color-mix(in srgb,var(--ok) 12%,transparent);color:var(--ok)}.prio-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.prio-high{color:var(--danger)}.prio-medium{color:var(--warn)}.prio-low{color:#0090ff}.chip.prio-high{background:color-mix(in srgb,var(--danger) 10%,transparent)}.chip.prio-medium{background:color-mix(in srgb,var(--warn) 11%,transparent)}.chip.prio-low{background:color-mix(in srgb,#0090ff 10%,transparent)}.tag{display:inline-flex;align-items:center;gap:3px;height:21px;padding:0 7px;border-radius:6px;font-size:11.5px;font-weight:500;background:hsl(var(--h) 80% 50% / .12);color:hsl(var(--h) 55% 38%)}:root[data-theme=dark] .tag{background:hsl(var(--h) 70% 60% / .16);color:hsl(var(--h) 75% 75%)}.tag-removable button{display:grid;place-items:center;opacity:.5}.tag-removable button:hover{opacity:1}.add-card{display:flex;align-items:center;gap:6px;height:34px;padding:0 8px;border-radius:9px;color:var(--ink-3);font-size:13px;transition:background .15s,color .15s}.add-card:hover{background:var(--hover);color:var(--ink-2)}.card-draft{cursor:text;box-shadow:0 0 0 1.5px var(--accent),0 0 0 4px var(--accent-soft)}.card-draft textarea{width:100%;resize:none;font-size:13.5px;field-sizing:content;min-height:40px}.card-draft-hint{font-size:11px;color:var(--ink-3);display:flex;gap:4px;align-items:center}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#14120e2e;animation:overlay-in .2s ease}:root[data-theme=dark] .overlay{background:#00000073}@keyframes overlay-in{0%{opacity:0}}.overlay-side{display:flex;justify-content:flex-end;padding:8px}.peek{width:min(560px,100%);height:100%;display:flex;flex-direction:column;background:var(--surface);border-radius:14px;box-shadow:var(--shadow-lg);animation:slide-in .32s var(--ease)}@keyframes slide-in{0%{transform:translate(40px);opacity:0}}.peek-bar{display:flex;align-items:center;justify-content:space-between;height:50px;padding:0 12px 0 20px;border-bottom:1px solid var(--line)}.peek-crumb{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);font-weight:500}.peek-bar-actions{display:flex;gap:2px}.peek-scroll{flex:1;overflow-y:auto;padding:22px 28px 32px}.peek-title-row{display:flex;gap:12px;margin-bottom:18px}.peek-title{flex:1;resize:none;field-sizing:content;font-family:var(--serif);font-size:32px;line-height:1.2;letter-spacing:-.005em}.peek-title.is-done{color:var(--ink-3);text-decoration:line-through;text-decoration-thickness:1.5px}.props{display:grid;grid-template-columns:120px 1fr;gap:4px 12px;margin:0 0 22px;padding-bottom:18px;border-bottom:1px solid var(--line)}.props dt{display:flex;align-items:center;gap:8px;height:34px;color:var(--ink-3);font-size:13px}.props dd{margin:0;display:flex;align-items:center;min-height:34px}.segmented{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border-radius:9px;background:var(--hover)}.segmented button{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:6px;font-size:12.5px;font-weight:500;color:var(--ink-2);transition:background .15s,color .15s}.segmented button:not(.is-active):is(.prio-high,.prio-medium,.prio-low){color:var(--ink-2)}.segmented button:not(.is-active) .prio-dot{opacity:.5}.segmented button.is-active{background:var(--raised);box-shadow:var(--shadow-sm);color:var(--ink)}.segmented button.is-active.prio-high{color:var(--danger)}.segmented button.is-active.prio-medium{color:var(--warn)}.segmented button.is-active.prio-low{color:#0090ff}.due-row{gap:10px}.date-input{height:30px;padding:0 10px;border-radius:8px;background:var(--hover);font-size:13px}.tags-row{flex-wrap:wrap;gap:5px}.inline-input{width:80px;height:24px;font-size:12.5px;color:var(--ink-2)}.peek-section{margin-bottom:24px}.peek-section h4{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:13px;font-weight:600;color:var(--ink-2)}.peek-section h4 .muted{margin-left:auto;font-size:12px}.checklist{list-style:none;margin:0;padding:0}.checklist li{display:flex;align-items:center;gap:10px;height:34px;padding:0 6px;border-radius:8px}.checklist li:hover{background:var(--hover)}.checklist li .check{margin:0}.checklist li input{flex:1;font-size:13.5px}.checklist li.is-done input{color:var(--ink-3);text-decoration:line-through}.checklist li .icon-btn{opacity:0}.checklist li:hover .icon-btn{opacity:1}.checklist-add{color:var(--ink-3)}.checklist-add svg{margin:0 1.5px}.peek-foot{font-size:12px;color:var(--ink-3);margin:0}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;padding:4px 40px 40px;overflow-y:auto}.tile{display:flex;flex-direction:column;text-align:left;border-radius:14px;overflow:hidden;background:var(--raised);box-shadow:var(--shadow-sm);transition:box-shadow .25s var(--ease),transform .25s var(--ease)}.tile:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.tile-cover{position:relative;height:84px;background:var(--surface-2);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:14px 14px}.tile-icon{position:absolute;left:14px;bottom:-16px;font-size:30px;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}.tile-body{padding:24px 16px 14px;flex:1;display:flex;flex-direction:column}.tile-body h3{margin:0 0 4px;font-size:15px;font-weight:600;letter-spacing:-.01em}.tile-body p{margin:0 0 12px;color:var(--ink-3);font-size:12.5px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1}.tile-meta{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--ink-3)}.tile-new{align-items:center;justify-content:center;gap:8px;min-height:190px;background:transparent;box-shadow:inset 0 0 0 1.5px var(--line-2);color:var(--ink-3);font-weight:500;border:0}.tile-new:hover{background:var(--hover);color:var(--ink-2);box-shadow:inset 0 0 0 1.5px var(--line-2)}.page-view{position:relative}.page-bar{position:absolute;inset:0 0 auto;z-index:10;display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 12px 0 20px;background:color-mix(in srgb,var(--surface) 75%,transparent);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4)}.app.is-collapsed .page-bar{padding-left:52px}.crumbs{display:flex;align-items:center;gap:2px;min-width:0;font-size:13px;color:var(--ink-3)}.crumbs button,.crumb-current{padding:3px 6px;border-radius:6px;white-space:nowrap}.crumbs button:hover{background:var(--hover);color:var(--ink)}.crumb{display:flex;align-items:center;gap:2px;min-width:0}.crumb-current{color:var(--ink);overflow:hidden;text-overflow:ellipsis}.page-bar-actions{display:flex;align-items:center;gap:4px}.page-bar-actions .muted{margin-right:6px}.page-scroll{flex:1;overflow-y:auto;padding-top:48px}.cover{position:relative;height:220px;margin-top:-48px}.cover-actions{position:absolute;right:24px;bottom:14px;display:flex;gap:6px;opacity:0;transition:opacity .2s}.cover:hover .cover-actions,.cover-actions:has(.is-open){opacity:1}.cover-btn{height:28px;padding:0 11px;border-radius:7px;font-size:12.5px;font-weight:500;color:#2a2620;background:#ffffffbf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 1px 3px #0000001a}.cover-btn:hover{background:#fffffff2}.cover-picker{bottom:calc(100% + 6px);top:auto}.cover-grid{display:grid;grid-template-columns:repeat(5,52px);gap:6px;padding:4px}.cover-grid button{height:34px;border-radius:7px;box-shadow:inset 0 0 0 1px #00000014;transition:scale .12s}.cover-grid button:hover{scale:1.07}.page{max-width:760px;margin:0 auto;padding:56px 56px 120px}.page.has-cover{padding-top:0}.page-icon-row{height:78px;display:flex;align-items:flex-end}.page.has-cover .page-icon-row{margin-top:-40px}.page-icon-btn{border-radius:12px;padding:4px;transition:background .15s}.page-icon-btn:hover{background:var(--hover)}.page-icon{font-size:64px;line-height:1;display:block;filter:drop-shadow(0 4px 10px rgba(0,0,0,.12))}.emoji-grid{display:grid;grid-template-columns:repeat(8,34px);gap:2px}.emoji-grid button{height:34px;border-radius:7px;font-size:20px}.emoji-grid button:hover{background:var(--hover)}.page-hover-actions{display:flex;gap:2px;height:32px;margin:6px 0 2px -9px;opacity:0;transition:opacity .2s}.page:hover .page-hover-actions{opacity:1}.page-title{width:100%;resize:none;field-sizing:content;font-family:var(--serif);font-size:50px;line-height:1.1;letter-spacing:-.01em;margin-bottom:18px}.page-title::placeholder,.peek-title::placeholder{color:var(--ink-3);opacity:.6}.subpages{margin-top:40px;padding-top:20px;border-top:1px solid var(--line)}.subpages h4{margin:0 0 10px;font-size:12px;font-weight:500;color:var(--ink-3)}.subpage-list{display:flex;flex-wrap:wrap;gap:8px}.subpage{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 12px;border-radius:9px;background:var(--raised);box-shadow:var(--shadow-sm);font-size:13.5px;font-weight:500;transition:box-shadow .2s}.subpage:hover{box-shadow:var(--shadow-md)}.subpage-add{background:none;box-shadow:none;color:var(--ink-3);font-weight:400}.subpage-add:hover{background:var(--hover);box-shadow:none;color:var(--ink-2)}.prose{outline:none;font-size:16px;line-height:1.7;color:var(--ink);min-height:120px}.editor-compact .prose{font-size:14px;line-height:1.6;min-height:80px;padding:10px 12px;border-radius:10px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .2s}.editor-compact .prose:focus{box-shadow:inset 0 0 0 1px var(--accent),0 0 0 3px var(--accent-soft)}.prose>*+*{margin-top:.5em}.prose p{margin:0}.prose h1,.prose h2,.prose h3{letter-spacing:-.015em;line-height:1.3;margin:1.4em 0 .3em}.prose h1{font-size:1.85em;font-weight:700}.prose h2{font-size:1.4em;font-weight:650}.prose h3{font-size:1.15em;font-weight:600}.prose>:first-child{margin-top:0}.prose ul,.prose ol{padding-left:1.5em;margin:.4em 0}.prose li+li{margin-top:.15em}.prose li::marker{color:var(--ink-3)}.prose strong{font-weight:650}.prose code{font-family:var(--mono);font-size:.86em;padding:.12em .4em;border-radius:5px;background:var(--hover);color:#d6409f}:root[data-theme=dark] .prose code{color:#f19cd0}.prose pre{font-family:var(--mono);font-size:13.5px;line-height:1.6;padding:16px 18px;border-radius:10px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);overflow-x:auto}.prose pre code{background:none;padding:0;color:inherit}.prose blockquote{margin:.8em 0;padding:2px 0 2px 18px;border-left:3px solid var(--accent);color:var(--ink-2);font-family:var(--serif);font-size:1.3em;line-height:1.45}.prose hr{border:0;height:1px;background:var(--line-2);margin:1.6em 0}.prose ul[data-type=taskList]{list-style:none;padding-left:.2em}.prose ul[data-type=taskList] li{display:flex;align-items:flex-start;gap:10px}.prose ul[data-type=taskList] li>label{flex-shrink:0;margin-top:.3em;-webkit-user-select:none;user-select:none}.prose ul[data-type=taskList] li>div{flex:1}.prose ul[data-type=taskList] input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:grid;place-items:center;width:17px;height:17px;margin:0;border-radius:5px;box-shadow:inset 0 0 0 1.5px var(--line-2);cursor:pointer;transition:background .15s,box-shadow .15s}.prose ul[data-type=taskList] input[type=checkbox]:hover{box-shadow:inset 0 0 0 1.5px var(--accent)}.prose ul[data-type=taskList] input[type=checkbox]:checked{background:var(--accent);box-shadow:none}.prose ul[data-type=taskList] input[type=checkbox]:checked:after{content:"";width:9px;height:5px;border:solid white;border-width:0 0 2px 2px;transform:rotate(-45deg) translate(1px,-1px)}.prose ul[data-type=taskList] li[data-checked=true]>div{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--line-2)}.prose p.is-empty:before{content:attr(data-placeholder);float:left;height:0;color:var(--ink-3);opacity:.7;pointer-events:none}.bubble{display:flex;align-items:center;gap:1px;padding:4px;border-radius:10px;background:#1d1c1a;box-shadow:0 8px 24px #00000040}:root[data-theme=dark] .bubble{background:#2c2c2a;box-shadow:var(--shadow-lg)}.bubble-btn{display:grid;place-items:center;width:30px;height:28px;border-radius:6px;color:#ffffffb3}.bubble-btn:hover{background:#ffffff1a;color:#fff}.bubble-btn.is-active{color:#a5a5ff;background:#a5a5ff26}.bubble-sep{width:1px;height:16px;margin:0 3px;background:#ffffff26}.slash-menu{position:fixed;z-index:400;width:270px;max-height:330px;overflow-y:auto;padding:5px;border-radius:12px;background:var(--raised);box-shadow:var(--shadow-lg);animation:pop .14s var(--ease)}.slash-label{padding:6px 9px 4px;font-size:11px;font-weight:500;color:var(--ink-3)}.slash-empty{padding:10px;color:var(--ink-3);font-size:13px}.slash-item{display:flex;align-items:center;gap:11px;width:100%;padding:6px 8px;border-radius:8px;text-align:left}.slash-item.is-active{background:var(--hover)}.slash-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:var(--surface);box-shadow:var(--shadow-sm);color:var(--ink-2);flex-shrink:0}.slash-title{display:block;font-size:13.5px;font-weight:500}.slash-hint{display:block;font-size:12px;color:var(--ink-3)}.overlay-top{display:flex;justify-content:center;align-items:flex-start;padding-top:14vh;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.palette{width:min(600px,calc(100% - 32px));border-radius:16px;background:var(--raised);box-shadow:var(--shadow-lg);overflow:hidden;animation:palette-in .2s var(--ease)}@keyframes palette-in{0%{opacity:0;transform:scale(.97) translateY(-8px)}}.palette-input{display:flex;align-items:center;gap:12px;height:56px;padding:0 18px;border-bottom:1px solid var(--line);color:var(--ink-3)}.palette-input input{flex:1;font-size:16px;color:var(--ink)}.palette-input input::placeholder{color:var(--ink-3)}.palette-list{max-height:380px;overflow-y:auto;padding:6px}.palette-group{padding:10px 12px 4px;font-size:11.5px;font-weight:500;color:var(--ink-3)}.palette-item{display:flex;align-items:center;gap:12px;width:100%;height:40px;padding:0 12px;border-radius:9px;text-align:left}.palette-item.is-active{background:var(--accent-soft)}.palette-icon{display:grid;place-items:center;width:20px;color:var(--ink-2)}.palette-item.is-active .palette-icon{color:var(--accent)}.emoji-ico{font-size:16px}.palette-label{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-sub{flex:1;font-size:12.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-enter{margin-left:auto;color:var(--accent);flex-shrink:0}.palette-empty{padding:26px;text-align:center;color:var(--ink-3)}.palette-foot{display:flex;align-items:center;gap:16px;height:38px;padding:0 16px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-3)}.palette-foot span{display:inline-flex;align-items:center;gap:4px}.palette-brand{margin-left:auto}.project-switch{display:flex;align-items:center;gap:10px;width:100%;min-width:0;padding:5px 8px 5px 5px;border-radius:10px;text-align:left;transition:background .15s}.project-switch:hover,.project-switch.is-open{background:var(--hover)}.sidebar-head .dropdown{flex:1;min-width:0}.project-icon{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;border-radius:8px;background:var(--surface);box-shadow:var(--shadow-sm);font-size:16px}.project-switch-text{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.25}.project-switch-name{font-weight:600;font-size:14px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-switch-sub{font-size:11.5px;color:var(--ink-3)}.project-switch-chevron{color:var(--ink-3);flex-shrink:0}.sidebar-head{gap:4px;padding:0 4px 0 0}.project-menu{width:260px}.menu-label{padding:6px 9px 4px;font-size:11px;font-weight:500;color:var(--ink-3)}.menu-sep{height:1px;margin:5px 4px;background:var(--line)}.menu-emoji{width:16px;text-align:center;font-size:14px}.menu-row{display:flex;align-items:center;gap:6px;min-width:0}.menu-check{color:var(--accent);flex-shrink:0}.menu-user{display:flex;align-items:center;gap:9px;padding:6px 9px 8px}.menu-user-text{display:flex;flex-direction:column;min-width:0;font-size:13px;line-height:1.3}.menu-user-text span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-user-text .muted{font-size:12px}.sidebar-foot{display:flex;flex-direction:column;gap:8px;padding:6px 4px 0}.sidebar-foot-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.sync-badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--ink-3);padding-right:4px}.sync-badge.is-offline{color:var(--warn)}.presence{display:flex;align-items:center;gap:8px;width:100%;padding:7px 8px;border-radius:9px;background:var(--surface);box-shadow:var(--shadow-sm);font-size:12.5px;color:var(--ink-2);text-align:left}.presence-text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.presence-gear{color:var(--ink-3)}.avatar-stack{display:flex}.avatar-stack .avatar+.avatar{margin-left:-6px}.avatar-stack .avatar{box-shadow:0 0 0 2px var(--surface)}.avatar{display:inline-grid;place-items:center;flex-shrink:0;border-radius:50%;font-weight:600;letter-spacing:.02em;background:hsl(var(--h) 65% 88%);color:hsl(var(--h) 45% 32%)}:root[data-theme=dark] .avatar{background:hsl(var(--h) 35% 26%);color:hsl(var(--h) 70% 82%)}.avatar-ghost{width:32px;height:32px;background:var(--hover);color:var(--ink-3)}:root[data-theme=dark] .avatar-ghost{background:var(--hover);color:var(--ink-3)}.overlay-center{display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px}.dialog{position:relative;width:min(520px,100%);max-height:80vh;overflow-y:auto;padding:26px 28px 24px;border-radius:16px;background:var(--surface);box-shadow:var(--shadow-lg);animation:palette-in .22s var(--ease)}.dialog-close{position:absolute;top:14px;right:14px}.dialog-title{margin:0 0 6px;font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.1}.dialog-sub{margin:0 0 20px;color:var(--ink-3);font-size:13px}.dialog-actions{display:flex;justify-content:flex-end;margin-top:20px}.dialog-section{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.dialog-section h3{margin:0 0 10px;font-size:13px;font-weight:600;color:var(--ink-2)}.project-name-row{display:flex;align-items:center;gap:10px;padding-right:30px}.project-icon-btn{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);transition:background .15s}.project-icon-btn:hover{background:var(--hover)}.project-icon-lg{font-size:24px;line-height:1}.text-input{flex:1;min-width:0;height:38px;padding:0 12px;border-radius:9px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line-2);font-size:14px;transition:box-shadow .15s}.text-input:focus{box-shadow:inset 0 0 0 1px var(--accent),0 0 0 3px var(--accent-soft)}.text-input-title{height:46px;font-family:var(--serif);font-size:26px;background:transparent;box-shadow:none;padding:0 4px}.text-input-title:hover{background:var(--hover)}.invite-row{display:flex;gap:8px}.invite-row .btn{height:38px;flex-shrink:0}.btn:disabled{opacity:.5;cursor:default}.form-error,.form-ok{margin-top:10px;padding:8px 11px;border-radius:8px;font-size:12.5px;line-height:1.45}.form-error{background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--danger)}.form-ok{background:color-mix(in srgb,var(--ok) 11%,transparent);color:var(--ok)}.member-list{list-style:none;margin:12px 0 0;padding:0}.member-list li{display:flex;align-items:center;gap:11px;padding:7px 6px;border-radius:9px}.member-list li:hover{background:var(--hover)}.member-avatar{position:relative;display:inline-flex}.online-dot{position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 2px var(--surface)}.member-text{display:flex;flex-direction:column;flex:1;min-width:0;line-height:1.3}.member-name{font-size:13.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-email{font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.is-invite .member-name{color:var(--ink-2)}.role-badge{font-size:11.5px;font-weight:500;color:var(--ink-3);padding:2px 8px;border-radius:6px;background:var(--hover)}.member-list .icon-btn{opacity:0}.member-list li:hover .icon-btn{opacity:1}.dialog-danger{display:flex}.btn-ghost-danger{color:var(--danger);padding:0 12px}.btn-ghost-danger:hover{background:color-mix(in srgb,var(--danger) 9%,transparent)}.btn-danger{background:var(--danger);color:#fff}.btn-wide{width:100%;justify-content:center;height:42px;margin-top:18px;font-size:14.5px}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loader{width:22px;height:22px;border-radius:50%;border:2px solid var(--line-2);border-top-color:var(--ink-2);animation:spin .8s linear infinite}.splash{height:100%;display:grid;place-items:center}.splash .workspace-logo{width:40px;height:40px;border-radius:12px;font-size:28px;animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.55;transform:scale(.94)}}.toast{position:fixed;left:50%;bottom:24px;z-index:500;transform:translate(-50%);padding:10px 16px;border-radius:10px;background:var(--ink);color:var(--surface);font-size:13px;font-weight:500;box-shadow:var(--shadow-lg);animation:palette-in .2s var(--ease)}.auth{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);height:100%}.auth-hero{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:40px;margin:10px;padding:36px 44px;border-radius:18px;overflow:hidden;background-color:var(--surface-2);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:24px 24px;box-shadow:var(--shadow-sm)}.auth-hero-text h1{margin:0 0 16px;max-width:520px;font-family:var(--serif);font-weight:400;font-size:clamp(38px,4.4vw,60px);line-height:1.02;letter-spacing:-.015em}.auth-hero-text p{margin:0;max-width:440px;color:var(--ink-2);font-size:15px;line-height:1.6}.auth-mock{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:560px}.auth-mock-col{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:12px;background:color-mix(in srgb,var(--surface) 70%,transparent);box-shadow:inset 0 0 0 1px var(--line)}.auth-mock-head{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--ink-2);padding:2px 2px 4px}.auth-mock-head i{width:7px;height:7px;border-radius:50%}.auth-mock-card{height:54px;border-radius:8px;background:var(--raised);box-shadow:var(--shadow-sm);position:relative}.auth-mock-card:before,.auth-mock-card:after{content:"";position:absolute;left:10px;height:6px;border-radius:3px;background:var(--line-2)}.auth-mock-card:before{top:12px;width:70%}.auth-mock-card:after{top:26px;width:40%;background:var(--accent-soft)}.auth-mock-card.short{height:40px}.auth-mock-card.tall{height:82px}.auth-mock-card.done:after{background:color-mix(in srgb,var(--ok) 20%,transparent)}.auth-panel{display:grid;place-items:center;padding:32px 24px}.auth-form{width:min(360px,100%)}.auth-form h2{margin:0 0 6px;font-family:var(--serif);font-weight:400;font-size:36px;line-height:1.1}.auth-sub{margin:0 0 22px;color:var(--ink-3)}.auth-tabs{display:flex;padding:3px;margin-bottom:18px;border-radius:10px;background:var(--hover)}.auth-tabs button{flex:1;height:32px;border-radius:8px;font-weight:500;font-size:13px;color:var(--ink-2)}.auth-tabs button.is-active{background:var(--raised);box-shadow:var(--shadow-sm);color:var(--ink)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field span{font-size:12.5px;font-weight:500;color:var(--ink-2)}.field input{height:42px;padding:0 13px;border-radius:10px;background:var(--raised);box-shadow:inset 0 0 0 1px var(--line-2);font-size:14.5px;transition:box-shadow .15s}.field input:focus{box-shadow:inset 0 0 0 1px var(--accent),0 0 0 3px var(--accent-soft)}.field input::placeholder{color:var(--ink-3)}.auth-note{margin:14px 0 0;text-align:center;font-size:12px;color:var(--ink-3)}@media(max-width:860px){.auth{grid-template-columns:1fr;grid-template-rows:auto 1fr;height:auto;min-height:100%}.auth-hero{padding:24px;gap:24px}.auth-mock{display:none}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:99px;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}@media(max-width:760px){.app{grid-template-columns:0 minmax(0,1fr)}.app:not(.is-collapsed) .sidebar{position:fixed;inset:0 auto 0 0;width:260px;z-index:150;background:var(--bg);box-shadow:var(--shadow-lg)}.main{margin:0;border-radius:0}.view-head,.app.is-collapsed .view-head{padding:56px 16px 16px;flex-direction:column;align-items:stretch}.search-field{width:100%}.kanban,.gallery{padding-left:16px;padding-right:16px}.page{padding:40px 20px 80px}.page-title{font-size:38px}.props{grid-template-columns:1fr}}
