:root{--sidebar-w: 270px;--sidebar-w-current: 270px;--topbar-h: 44px;--content-w: 720px;--page-pad-x: 96px;--radius-sm: 6px;--radius-md: 8px;--radius-pop: 10px;--radius-modal: 12px;--z-topbar: 50;--z-popover: 100;--z-panel: 150;--z-modal: 200;--z-toast: 300;--font-ui: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI Variable Display", "Segoe UI", "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", Helvetica, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", Arial, sans-serif;--font-mono: "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;--motion-fast: .1s ease-out;--motion-base: .15s cubic-bezier(.2, 0, 0, 1);--motion-panel: .2s cubic-bezier(.2, 0, 0, 1)}html[data-theme=dark]{color-scheme:dark;--bg: #191919;--bg-sidebar: #191919;--bg-surface: #202020;--bg-popover: #252525;--ring: #383836;--text: #f0efed;--text-secondary: #ada9a3;--text-tertiary: #7d7a75;--icon: #ada9a3;--hover: rgba(255, 255, 255, .055);--selected: rgba(255, 255, 255, .08);--border: rgba(255, 255, 243, .082);--border-strong: rgba(255, 255, 235, .1);--accent: #2383e2;--accent-soft: rgba(35, 131, 226, .15);--danger: #eb5757;--success: #4dab6d;--code-bg: #242424;--scrim: rgba(15, 15, 15, .6);--shadow-popover: 0 0 0 1px #383836, 0 14px 28px -6px rgba(25, 25, 25, .2), 0 2px 4px -1px rgba(25, 25, 25, .118);--shadow-modal: 0 0 0 1px #383836, 0 24px 48px rgba(25, 25, 25, .64), 0 4px 12px rgba(25, 25, 25, .56);--shadow-fab: 0 0 0 1px #383836, 0 4px 12px -2px rgba(25, 25, 25, .08);--tag-gray: #ada9a3;--tag-brown: #bca290;--tag-orange: #cba27d;--tag-yellow: #d8c283;--tag-green: #8bb79d;--tag-blue: #83abe1;--tag-purple: #b49cc6;--tag-pink: #c897ad;--tag-red: #d0988d;--tag-teal: #7eb6c2}html[data-theme=light]{color-scheme:light;--bg: #ffffff;--bg-sidebar: #f7f7f5;--bg-surface: #ffffff;--bg-popover: #ffffff;--ring: rgba(15, 15, 15, .05);--text: #37352f;--text-secondary: rgba(55, 53, 47, .65);--text-tertiary: rgba(55, 53, 47, .45);--icon: rgba(55, 53, 47, .65);--hover: rgba(55, 53, 47, .08);--selected: rgba(55, 53, 47, .12);--border: rgba(55, 53, 47, .09);--border-strong: rgba(55, 53, 47, .16);--accent: #2383e2;--accent-soft: rgba(35, 131, 226, .12);--danger: #d44c47;--success: #448361;--code-bg: #f7f6f3;--scrim: rgba(15, 15, 15, .3);--shadow-popover: 0 0 0 1px rgba(15, 15, 15, .05), 0 14px 28px -6px rgba(15, 15, 15, .1), 0 2px 4px -1px rgba(15, 15, 15, .06);--shadow-modal: 0 0 0 1px rgba(15, 15, 15, .05), 0 24px 48px rgba(15, 15, 15, .2), 0 4px 12px rgba(15, 15, 15, .1);--shadow-fab: 0 0 0 1px rgba(15, 15, 15, .05), 0 4px 12px -2px rgba(15, 15, 15, .1);--tag-gray: #787774;--tag-brown: #9f6b53;--tag-orange: #d9730d;--tag-yellow: #cb912f;--tag-green: #448361;--tag-blue: #337ea9;--tag-purple: #9065b0;--tag-pink: #c14c8a;--tag-red: #d44c47;--tag-teal: #3b8a8f}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:14px;line-height:20px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}html[lang=ko] body,body{word-break:keep-all;line-break:strict}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}input,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent-soft)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:3px solid transparent;background-clip:content-box}*::-webkit-scrollbar-track{background:transparent}.icon-btn{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--icon);flex:0 0 auto;transition:background var(--motion-fast),color var(--motion-fast)}.icon-btn:hover{background:var(--hover);color:var(--text)}.icon-btn[aria-pressed=true]{color:var(--text);background:var(--selected)}.icon-btn.sm{width:24px;height:24px}.btn{height:32px;padding:0 12px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:500;background:var(--hover);color:var(--text);transition:background var(--motion-fast);white-space:nowrap}.btn:hover{background:var(--selected)}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{background:transparent;color:var(--text-secondary)}.btn.ghost:hover{background:var(--hover);color:var(--text)}.btn.danger{color:var(--danger)}.btn:disabled{opacity:.4;cursor:not-allowed}.input{height:32px;padding:0 8px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:transparent;color:var(--text);outline:none;width:100%}.input:focus{border-color:var(--accent)}.muted{color:var(--text-secondary)}.tertiary{color:var(--text-tertiary)}.menu{position:fixed;z-index:var(--z-popover);min-width:220px;padding:6px;border-radius:var(--radius-pop);background:var(--bg-popover);box-shadow:var(--shadow-popover);animation:pop-in var(--motion-base)}@keyframes pop-in{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.menu-item{width:100%;height:27px;padding:0 8px;border-radius:var(--radius-sm);display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text);text-align:left;white-space:nowrap}.menu-item:hover{background:var(--hover)}.menu-item:disabled{color:var(--text-tertiary);cursor:default;background:none}.menu-item .label{flex:1;overflow:hidden;text-overflow:ellipsis}.menu-item .shortcut{font-size:12px;color:var(--text-tertiary);letter-spacing:.01em}.menu-item.danger{color:var(--danger)}.menu-sep{height:1px;background:var(--border);margin:4px 0}.menu-label{font-size:12px;font-weight:500;color:var(--text-tertiary);padding:6px 8px 4px}.scrim{position:fixed;inset:0;background:var(--scrim);z-index:var(--z-modal);display:flex;align-items:flex-start;justify-content:center;animation:fade-in .12s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-surface);border-radius:var(--radius-modal);box-shadow:var(--shadow-modal);margin-top:12vh;width:480px;max-width:calc(100vw - 32px);max-height:76vh;display:flex;flex-direction:column;animation:modal-in .18s cubic-bezier(.2,0,0,1);overflow:hidden}@keyframes modal-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.modal-header{height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 16px 0 20px;flex:0 0 auto}.modal-title{font-size:16px;font-weight:600}.modal-body{padding:0 20px 20px;overflow-y:auto}.modal-footer{padding:12px 20px;display:flex;justify-content:flex-end;gap:8px}.toast-region{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:var(--z-toast);display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:12px;min-height:40px;padding:8px 12px 8px 16px;border-radius:var(--radius-md);background:var(--bg-popover);box-shadow:var(--shadow-popover);font-size:14px;animation:toast-in var(--motion-base)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast button{color:var(--accent);font-weight:500}.float-toolbar{position:fixed;z-index:var(--z-popover);display:flex;align-items:center;gap:4px;padding:6px 8px;border-radius:var(--radius-pop);background:var(--bg-popover);border:1px solid var(--border);box-shadow:var(--shadow-popover);animation:pop-in var(--motion-base);pointer-events:auto;-webkit-user-select:none;user-select:none}.float-toolbar-group{display:flex;gap:4px}.float-btn{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-secondary);background:transparent;border:none;cursor:pointer;transition:background var(--motion-fast),color var(--motion-fast)}.float-btn:hover{background:var(--hover);color:var(--text)}.float-btn.active{background:var(--selected);color:var(--text)}.float-btn.color-toggle{padding:0;line-height:1}.float-icon{width:14px;height:14px}.float-color-picker{position:absolute;top:calc(100% + 6px);left:0;display:flex;gap:4px;padding:6px;border-radius:var(--radius-pop);background:var(--bg-popover);border:1px solid var(--border);box-shadow:var(--shadow-popover);animation:pop-in var(--motion-base);z-index:var(--z-popover)}.float-color{width:24px;height:24px;border-radius:50%;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:12px;line-height:1;transition:transform var(--motion-fast)}.float-color:hover{transform:scale(1.15)}.float-color-clear{color:var(--text-tertiary);background:transparent}.float-color-clear:hover{background:var(--hover)}.float-color-dot{font-size:12px;line-height:1;display:inline-block}.float-link-modal{position:fixed;inset:0;z-index:var(--z-popover);display:flex;align-items:center;justify-content:center;background:var(--scrim)}.float-link-panel{width:360px;border-radius:var(--radius-pop);background:var(--bg-popover);border:1px solid var(--border);box-shadow:var(--shadow-popover);animation:pop-in var(--motion-base)}.float-link-title{padding:12px 16px 8px;font-size:14px;font-weight:600;color:var(--text)}.float-link-input{width:100%;padding:8px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:14px;outline:none}.float-link-input:focus{border-color:var(--accent)}.float-link-actions{display:flex;justify-content:flex-end;gap:8px;padding:8px 12px 12px;border-top:1px solid var(--border)}.float-link-btn{height:30px;padding:0 12px;border-radius:var(--radius-sm);font-size:14px;color:var(--text);background:transparent;border:none;cursor:pointer}.float-link-btn:hover{background:var(--hover)}.float-link-btn-remove{color:var(--danger)}.float-link-btn-remove:hover{background:#eb57571a}.float-link-btn-save{color:var(--accent);font-weight:500}.float-link-btn-save:disabled{opacity:.5;cursor:not-allowed}.lex-text a{cursor:pointer}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;transition-duration:1ms!important}}@media print{.float-toolbar,.filter-modal-overlay,.media-block .media-edit-btn{display:none!important}body{background:#fff!important;color:#191919}.media-block{border:1px solid #ccc;page-break-inside:avoid}}.app-shell{display:flex;height:100%;width:100%;background:var(--bg)}.sidebar{width:var(--sidebar-w-current);flex:0 0 auto;background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;transition:width var(--motion-base);position:relative;z-index:2}.sidebar.collapsed{width:0;border-right-width:0;border-right-color:transparent}.sidebar-inner{width:var(--sidebar-w);min-width:var(--sidebar-w);height:100%;display:flex;flex-direction:column;padding:8px 12px 0}.sidebar-top{display:flex;align-items:center;gap:2px;padding:0 0 8px}.sidebar-spacer{flex:1}.sidebar-search{height:32px;border:1px solid var(--border-strong);border-radius:var(--radius-md);display:flex;align-items:center;gap:8px;padding:0 8px;color:var(--text-secondary);font-size:14px;width:100%;text-align:left;transition:background var(--motion-fast),border-color var(--motion-fast)}.sidebar-search:hover{background:var(--hover)}.sidebar-search .kbd{margin-left:auto;font-size:12px;color:var(--text-tertiary)}.sidebar-tabs{display:flex;gap:2px;padding:12px 0 4px}.sidebar-tab{height:32px;padding:0 8px;border-radius:var(--radius-md);display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--text-secondary);transition:background var(--motion-fast),color var(--motion-fast)}.sidebar-tab:hover,.sidebar-tab.active{background:var(--hover);color:var(--text)}.sidebar-panel{flex:1;min-height:0;overflow-y:auto;padding:4px 0 12px;margin:0 -4px}.sidebar-panel>*{padding:0 4px}.sidebar-section{margin-top:16px}.sidebar-section:first-child{margin-top:8px}.sidebar-section-head{display:flex;align-items:center;gap:4px;height:27px;padding:0 6px;font-size:12px;font-weight:500;letter-spacing:.01em;color:var(--text-tertiary);border-radius:var(--radius-sm)}.sidebar-section-head:hover{background:var(--hover)}.sidebar-section-head .actions{margin-left:auto;display:flex;opacity:0;transition:opacity var(--motion-fast)}.sidebar-section-head:hover .actions{opacity:1}.sidebar-quick{display:flex;gap:8px;padding:0 6px;margin-top:4px}.sidebar-quick .quick{flex:1;height:27px;display:flex;align-items:center;gap:6px;padding:0 6px;border-radius:var(--radius-sm);font-size:14px;color:var(--text-secondary)}.sidebar-quick .quick:hover{background:var(--hover);color:var(--text)}.tree{display:flex;flex-direction:column}.tree-row{height:27px;display:flex;align-items:center;gap:2px;border-radius:var(--radius-sm);padding-right:4px;position:relative;color:var(--text-secondary);cursor:default;-webkit-user-select:none;user-select:none}.tree-row:hover{background:var(--hover);color:var(--text)}.tree-row.active{background:var(--selected);color:var(--text)}.tree-row.dragging{opacity:.5}.tree-row.drop-inside{box-shadow:inset 0 0 0 2px var(--accent)}.tree-caret{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;flex:0 0 auto;color:var(--text-tertiary)}.tree-caret:hover{background:var(--hover);color:var(--text)}.tree-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;flex:0 0 auto}.tree-label{flex:1;min-width:0;font-size:14px;line-height:27px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:4px}.tree-row .row-actions{display:none;align-items:center;gap:2px}.tree-row:hover .row-actions{display:flex}.tree-rename{flex:1;min-width:0;height:22px;margin-left:4px;border:1px solid var(--accent);border-radius:4px;background:var(--bg);padding:0 4px;font-size:14px;outline:none}.tree-empty{padding:4px 8px;color:var(--text-tertiary);font-size:13px}.sidebar-footer{flex:0 0 auto;border-top:1px solid var(--border);margin:0 -12px;padding:6px 12px 8px}.sidebar-footer-row{display:flex;align-items:center;gap:8px;height:27px;padding:0 6px;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:14px}.sidebar-footer-row:hover{background:var(--hover);color:var(--text)}.sidebar-footer-ws{display:flex;align-items:center;gap:2px;height:44px;margin-top:2px}.sidebar-footer-ws>.icon-btn{flex:0 0 auto}.ws-row{margin-top:4px;height:40px;width:100%;padding:0 6px;border-radius:var(--radius-sm);display:flex;align-items:center;gap:8px;text-align:left}.ws-row:hover{background:var(--hover)}.ws-avatar{width:20px;height:20px;border-radius:5px;background:var(--bg-popover);display:inline-flex;align-items:center;justify-content:center;font-size:12px;flex:0 0 auto}.ws-meta{display:flex;flex-direction:column;min-width:0;line-height:1.25}.ws-name{font-size:14px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-plan{font-size:12px;color:var(--text-tertiary)}.resize-handle{position:absolute;top:0;right:-3px;width:6px;height:100%;cursor:col-resize;z-index:3}.resize-handle:hover{background:var(--accent-soft)}.main{flex:1;min-width:0;display:flex;flex-direction:column;position:relative;background:var(--bg)}.topbar{height:var(--topbar-h);flex:0 0 var(--topbar-h);display:flex;align-items:center;gap:4px;padding:0 12px;position:sticky;top:0;z-index:var(--z-topbar);background:var(--bg)}.topbar-toggle{display:none}.sidebar.collapsed~.main .topbar-toggle{display:inline-flex}.breadcrumb{display:flex;align-items:center;gap:4px;min-width:0;font-size:14px;color:var(--text)}.breadcrumb-item{display:inline-flex;align-items:center;gap:4px;max-width:220px;padding:2px 4px;border-radius:4px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.breadcrumb-item:hover{background:var(--hover)}.breadcrumb .sep{color:var(--text-tertiary);font-size:12px}.breadcrumb .scope{color:var(--text-secondary);display:inline-flex;align-items:center;gap:4px}.topbar-spacer{flex:1}.edit-status{font-size:12px;color:var(--text-tertiary);white-space:nowrap;margin-right:4px}.share-btn{height:28px;padding:0 10px;border-radius:var(--radius-sm);font-size:14px;color:var(--text-secondary)}.share-btn:hover{background:var(--hover);color:var(--text)}.page-scroll{flex:1;overflow-y:auto;overflow-x:hidden;position:relative}.page-shell{width:100%;max-width:816px;margin:0 auto;padding:0 48px 120px;position:relative}.page-shell.full-width{max-width:none;padding-left:var(--page-pad-x);padding-right:var(--page-pad-x)}.cover{height:30vh;min-height:180px;max-height:280px;width:100%;background:linear-gradient(120deg,#2b3a55,#4a3f6b 55%,#6b3f4a);position:relative}.cover-actions{position:absolute;right:16px;bottom:12px;display:flex;gap:6px;opacity:0;transition:opacity var(--motion-fast)}.cover:hover .cover-actions{opacity:1}.cover-actions .btn{background:#0006;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.page-head{padding-top:96px}.page-shell.with-cover .page-head{padding-top:0}.page-cover-add{position:absolute;top:8px;left:48px;height:26px;font-size:12px;color:var(--text-tertiary);opacity:0;transition:opacity var(--motion-fast),background var(--motion-fast)}.page-shell:hover .page-cover-add,.page-cover-add:focus-visible{opacity:1}.page-icon{width:78px;height:78px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:64px;line-height:1;margin-left:-4px;cursor:pointer;transition:background var(--motion-fast)}.page-icon:hover{background:var(--hover)}.cover+.page-shell .page-icon{margin-top:-39px;position:relative}.page-icon-add{width:78px;height:78px;display:flex;align-items:center;gap:6px;color:var(--text-tertiary);font-size:13px;border-radius:var(--radius-md)}.page-icon-add:hover{background:var(--hover);color:var(--text-secondary)}.page-title{font-size:40px;line-height:48px;font-weight:700;letter-spacing:-.02em;margin:40px 0 4px;outline:none;min-height:48px;white-space:pre-wrap}.page-title:empty:before{content:"제목 없음";color:var(--text-tertiary)}.page-meta{font-size:12px;color:var(--text-tertiary);padding:4px 0 12px}.db-placeholder{border:1px solid var(--border);border-radius:var(--radius-md);padding:20px;margin-top:12px;background:var(--bg-surface)}.db-placeholder h3{margin:0 0 8px;font-size:16px;font-weight:600}.db-placeholder p{margin:0;color:var(--text-secondary)}.library{width:100%;max-width:1100px;margin:0 auto;padding:32px 32px 96px}.library-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.library-title{font-size:28px;font-weight:700;letter-spacing:-.01em;margin:0}.library-tabs{display:flex;gap:2px;margin-top:16px;border-bottom:1px solid var(--border);overflow-x:auto}.library-tab{height:36px;padding:0 10px;font-size:14px;color:var(--text-secondary);border-bottom:2px solid transparent;white-space:nowrap}.library-tab:hover{color:var(--text);background:var(--hover)}.library-tab.active{color:var(--text);border-bottom-color:var(--text)}.library-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:14px}.library-table th{height:36px;text-align:left;font-weight:400;color:var(--text-secondary);border-bottom:1px solid var(--border);font-size:13px;padding:0 8px}.library-table td{height:40px;padding:0 8px;border-bottom:1px solid var(--border);color:var(--text-secondary)}.library-table tr:hover td{background:var(--hover)}.library-table .name{display:flex;align-items:center;gap:8px;color:var(--text)}.library-empty{padding:64px 0;text-align:center;color:var(--text-tertiary)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:80px 24px;text-align:center;color:var(--text-secondary)}.empty-state .emoji{font-size:36px}.empty-state h2{margin:0;font-size:18px;font-weight:600;color:var(--text)}.empty-state p{margin:0;max-width:380px;font-size:14px}.sidebar-scrim{display:none}@media(max-width:1023px){.sidebar{position:fixed;inset:0 auto 0 0;height:100%;box-shadow:var(--shadow-modal)}.sidebar.collapsed{transform:translate(-100%);width:var(--sidebar-w);transition:transform var(--motion-panel)}.sidebar-scrim{display:block;position:fixed;inset:0;background:var(--scrim);z-index:1}.page-shell,.page-shell.full-width{padding-left:24px;padding-right:24px}.page-cover-add{left:24px}.topbar-toggle{display:inline-flex!important}}.page-scroll{height:100%;overflow-y:auto;overflow-x:hidden;position:relative}.blocks{padding:6px 0 0}.block-node{position:relative}.block-row{position:relative;display:flex;align-items:flex-start;border-radius:var(--radius-sm)}.block-gutter{position:absolute;left:-44px;top:2px;display:flex;gap:0;opacity:0;transition:opacity var(--motion-fast)}.block-row:hover .block-gutter{opacity:1}.block-handle{width:20px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;color:var(--text-tertiary);cursor:grab}.block-handle:hover{background:var(--hover);color:var(--text-secondary)}.block-add{width:20px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;color:var(--text-tertiary)}.block-add:hover{background:var(--hover);color:var(--text-secondary)}.block-content{flex:1;min-width:0;display:flex;align-items:flex-start;gap:6px}.block-text{flex:1;min-width:0;font-size:16px;line-height:24px;padding:3px 2px;outline:none;white-space:pre-wrap;overflow-wrap:anywhere;min-height:30px}.block-text:empty:before{content:attr(data-placeholder);color:var(--text-tertiary);pointer-events:none}.rich-wrap{position:relative;flex:1;min-width:0}.lex-text p{margin:0;font:inherit;line-height:inherit;color:inherit;white-space:pre-wrap;overflow-wrap:anywhere}.lex-text code{font-family:var(--font-mono);font-size:.9em;background:var(--code-bg);border-radius:3px;padding:1px 4px}.lex-text a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.block-placeholder{position:absolute;left:2px;top:3px;color:var(--text-tertiary);pointer-events:none;font-size:inherit;line-height:inherit}.block-heading1 .block-placeholder{top:20px;font-size:30px;line-height:38px}.block-heading2 .block-placeholder{top:16px;font-size:24px;line-height:32px}.block-heading3 .block-placeholder{top:12px;font-size:20px;line-height:28px}.block-heading4 .block-placeholder{top:10px;font-size:18px;line-height:26px}.block-callout .block-placeholder,.block-code .block-placeholder{top:15px;left:16px}.block-heading1 .block-text{font-size:30px;line-height:38px;font-weight:700;letter-spacing:-.01em;padding:20px 2px 4px;min-height:62px}.block-heading2 .block-text{font-size:24px;line-height:32px;font-weight:600;letter-spacing:-.01em;padding:16px 2px 4px;min-height:52px}.block-heading3 .block-text{font-size:20px;line-height:28px;font-weight:600;padding:12px 2px 4px;min-height:44px}.block-heading4 .block-text{font-size:18px;line-height:26px;font-weight:600;padding:10px 2px 4px;min-height:40px}.block-quote .block-text{border-left:3px solid var(--text);padding-left:14px;color:var(--text-secondary)}.block-callout .block-content{background:var(--bg-surface);border-radius:var(--radius-sm);padding:12px 14px;margin:4px 0}.block-callout .callout-emoji{font-size:16px;line-height:24px;padding-top:3px}.block-code .block-text{font-family:var(--font-mono);font-size:14px;line-height:22px;background:var(--code-bg);border-radius:var(--radius-sm);padding:12px 14px;margin:4px 0;tab-size:2}.block-checklist{width:16px;height:16px;margin:7px 4px 0 0;border:1px solid var(--text-tertiary);border-radius:3px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;color:transparent}.block-checklist.checked{background:var(--accent);border-color:var(--accent);color:#fff}.block-text.done{color:var(--text-tertiary);text-decoration:line-through}.block-marker{flex:0 0 auto;width:20px;font-size:16px;line-height:30px;color:var(--text);text-align:right;-webkit-user-select:none;user-select:none}.block-marker.bullet{text-align:center;padding-top:1px}.toggle-caret{width:18px;height:30px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);flex:0 0 auto}.toggle-caret:hover{color:var(--text)}.toggle-caret svg{transition:transform var(--motion-fast)}.toggle-caret.collapsed svg{transform:rotate(-90deg)}.block-content.block-divider{padding:13px 0}.block-content.block-divider hr{margin:0;border:none;border-top:1px solid var(--border-strong)}.block-children{margin-left:26px}.block-row.drop-before:before,.block-row.drop-after:after{content:"";position:absolute;left:0;right:0;height:2px;background:var(--accent);border-radius:2px}.block-row.drop-before:before{top:-1px}.block-row.drop-after:after{bottom:-1px}.slash-menu{width:320px;max-height:min(420px,70vh);padding:6px;display:flex;flex-direction:column}.slash-menu-head{display:flex;align-items:center;gap:8px;padding:4px 8px 6px;font-size:12px;color:var(--text-tertiary);flex:0 0 auto}.slash-query{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slash-menu-body{overflow-y:auto;flex:1;min-height:0}.slash-item{width:100%;display:flex;align-items:center;gap:10px;padding:5px 8px;border-radius:var(--radius-sm);text-align:left;color:var(--text)}.slash-item:hover,.slash-item.active{background:var(--hover)}.slash-item.disabled{opacity:.45;cursor:default}.slash-item.disabled:hover{background:transparent}.slash-glyph{width:26px;height:26px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:4px;font-size:12px;color:var(--text-secondary);background:var(--bg)}.slash-text{display:flex;flex-direction:column;min-width:0;gap:1px}.slash-label{font-size:14px;line-height:18px}.slash-hint{font-size:12px;line-height:16px;color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slash-badge{margin-left:auto;font-size:11px;color:var(--text-tertiary);border:1px solid var(--border);border-radius:999px;padding:0 6px;flex:0 0 auto}.slash-empty{padding:16px 12px;text-align:center;font-size:13px;color:var(--text-tertiary)}.slash-menu-foot{flex:0 0 auto;display:flex;justify-content:space-between;gap:8px;border-top:1px solid var(--border);margin-top:4px;padding:6px 8px 2px;font-size:12px;color:var(--text-tertiary);overflow:hidden;white-space:nowrap}.block-row.dragging-source{opacity:.35}.block-selected{background:var(--selected);outline:2px solid var(--accent);outline-offset:-1px}.bulk-action-bar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-surface);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.bulk-count{font-size:13px;color:var(--text-secondary);margin-right:8px}.page-title-row{display:flex;align-items:flex-start;gap:8px}.icon-picker{display:grid;grid-template-columns:repeat(8,32px);gap:4px;padding:8px}.icon-picker button{width:32px;height:32px;border-radius:var(--radius-sm);font-size:20px;display:inline-flex;align-items:center;justify-content:center}.icon-picker button:hover{background:var(--hover)}.code-block-container{position:relative;width:100%;background:var(--code-bg);border-radius:var(--radius-sm);margin:6px 0;border:1px solid var(--border);overflow:hidden;font-family:var(--font-mono)}.code-block-header{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:#ffffff08;border-bottom:1px solid var(--border);font-size:12px;-webkit-user-select:none;user-select:none}.code-block-lang-wrap{position:relative}.code-block-lang-btn{display:inline-flex;align-items:center;gap:4px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:2px 6px;border-radius:3px;font-size:12px;transition:background .15s,color .15s}.code-block-lang-btn:hover{background:#ffffff14;color:var(--text)}.code-block-lang-menu{position:absolute;top:calc(100% + 4px);left:0;width:140px;max-height:200px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 4px 12px #0000004d;z-index:100;padding:4px}.code-block-lang-item{display:block;width:100%;text-align:left;background:transparent;border:none;color:var(--text);padding:5px 8px;font-size:12px;border-radius:3px;cursor:pointer}.code-block-lang-item:hover{background:var(--hover-bg, rgba(255, 255, 255, .08))}.code-block-lang-item.active{color:var(--accent);font-weight:500}.code-block-copy-btn{display:inline-flex;align-items:center;gap:4px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:3px 8px;border-radius:3px;font-size:12px;transition:background .15s,color .15s}.code-block-copy-btn:hover{background:#ffffff14;color:var(--text)}.code-block-body{display:flex;padding:8px 0;min-height:48px}.code-block-lines{display:flex;flex-direction:column;padding:0 8px 0 12px;text-align:right;color:var(--text-muted);opacity:.5;-webkit-user-select:none;user-select:none;font-size:13px;line-height:22px}.code-block-line-number{min-width:20px}.code-block-content{flex:1;padding:0 14px 0 6px!important;margin:0!important;background:transparent!important;font-family:var(--font-mono)!important;font-size:13px!important;line-height:22px!important;white-space:pre-wrap!important;word-break:break-all!important;outline:none!important}.media-block{width:100%;margin:6px 0;-webkit-user-select:none;user-select:none}.media-input-form{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px}.media-input-icon{font-size:16px;flex-shrink:0}.media-url-input{flex:1;background:transparent;border:none;color:var(--text);font-size:13px;outline:none}.media-url-input::placeholder{color:var(--text-muted)}.media-submit-btn{background:var(--accent);color:#fff;border:none;border-radius:4px;padding:4px 10px;font-size:12px;cursor:pointer;transition:opacity .15s}.media-submit-btn:disabled{opacity:.5;cursor:not-allowed}.media-preview{position:relative;display:inline-block;max-width:100%}.media-img{max-width:100%;max-height:480px;border-radius:var(--radius-sm);object-fit:contain;display:block}.media-edit-btn{position:absolute;top:8px;right:8px;background:#0009;color:#fff;border:none;border-radius:4px;padding:3px 8px;font-size:11px;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;transition:opacity .15s}.media-block:hover .media-edit-btn,.bookmark-card:hover .media-edit-btn,.file-card:hover .media-edit-btn{opacity:1}.bookmark-card{position:relative;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);overflow:hidden;transition:border-color .15s}.bookmark-card:hover{border-color:var(--text-muted)}.bookmark-link{display:flex;text-decoration:none;color:inherit;min-height:72px}.bookmark-info{flex:1;padding:12px 14px;display:flex;flex-direction:column;justify-content:center;gap:4px;overflow:hidden}.bookmark-title{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bookmark-domain{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-muted)}.bookmark-thumb{width:80px;background:#ffffff08;border-left:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.file-card{position:relative;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:10px 14px;transition:border-color .15s}.file-card:hover{border-color:var(--text-muted)}.file-link{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}.file-icon-wrap{color:var(--accent);display:flex;align-items:center}.file-info{flex:1;overflow:hidden}.file-name{font-size:13px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-url{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toc-block-container{width:100%;padding:12px 16px;background:#ffffff05;border:1px solid var(--border);border-radius:var(--radius-sm);margin:6px 0;-webkit-user-select:none;user-select:none}.toc-header{margin-bottom:8px}.toc-title{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.toc-empty{font-size:13px;color:var(--text-muted);font-style:italic;padding:4px 0}.toc-list{display:flex;flex-direction:column;gap:4px}.toc-item{display:flex;align-items:center;background:transparent;border:none;color:var(--text);font-size:13px;line-height:20px;text-align:left;cursor:pointer;padding:2px 6px;border-radius:4px;transition:background .15s,color .15s}.toc-item:hover{background:var(--hover-bg, rgba(255, 255, 255, .06));color:var(--accent)}.toc-level-1{padding-left:6px;font-weight:500}.toc-level-2{padding-left:18px}.toc-level-3{padding-left:30px;color:var(--text-secondary)}.toc-level-4{padding-left:42px;color:var(--text-muted)}.callout-emoji-wrapper{position:relative;display:inline-flex}.callout-emoji-btn{background:transparent;border:none;font-size:18px;line-height:1;cursor:pointer;padding:2px;border-radius:4px;transition:transform .1s}.callout-emoji-btn:hover{transform:scale(1.15)}.callout-emoji-picker{position:absolute;top:calc(100% + 4px);left:0;display:flex;gap:4px;padding:6px 8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 4px 14px #00000059;z-index:100}.callout-emoji-item{background:transparent;border:none;font-size:16px;cursor:pointer;padding:4px;border-radius:4px;transition:background .1s}.callout-emoji-item:hover{background:#ffffff1a}.callout-emoji-item.active{background:#ffffff26}.page-search-bar{position:fixed;top:56px;right:24px;display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 6px 20px #00000059;padding:6px 10px;z-index:500;animation:slideDown .15s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.page-search-input-wrap{display:flex;align-items:center;gap:6px}.page-search-icon{color:var(--text-muted)}.page-search-input{width:160px;background:transparent;border:none;color:var(--text);font-size:13px;outline:none}.page-search-actions{display:flex;align-items:center;gap:4px}.page-search-count{font-size:11px;color:var(--text-muted);min-width:38px;text-align:right;margin-right:2px}.page-search-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:none;color:var(--text-muted);border-radius:3px;cursor:pointer;transition:background .1s,color .1s}.page-search-btn:hover:not(:disabled){background:#ffffff14;color:var(--text)}.page-search-btn:disabled{opacity:.3;cursor:not-allowed}.page-search-close{font-size:12px;margin-left:4px}.block-highlight{animation:anchorPulse 1.5s ease-out}@keyframes anchorPulse{0%{background:#2383e240;border-radius:4px}to{background:transparent}}@media print{body{background:#fff!important;color:#000!important}.sidebar,.topbar,.page-search-bar,.block-gutter,.float-toolbar,.bulk-action-bar,.toasts-wrap,.page-actions-wrap{display:none!important}.app-shell,.main-content,.page-view,.page-scroll-container,.page-body{display:block!important;position:static!important;width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;overflow:visible!important}.page-column{max-width:100%!important;padding:0 20px!important}.block-node{position:static!important;transform:none!important;page-break-inside:avoid;break-inside:avoid}.code-block-container,.bookmark-card,.file-card,.toc-block-container{border-color:#ddd!important;background:#f9f9f9!important;page-break-inside:avoid;break-inside:avoid}}.database-view-root{margin-top:16px;width:100%}.db-tabs-bar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-subtle);padding-bottom:6px;margin-bottom:12px}.db-tabs-list{display:flex;align-items:center;gap:4px}.db-tab-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:var(--radius-sm);background:transparent;border:none;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:background var(--motion-fast),color var(--motion-fast)}.db-tab-btn:hover{background:var(--hover);color:var(--text-primary)}.db-tab-btn.active{background:var(--active);color:var(--text-primary);font-weight:600}.db-tab-icon{font-size:14px;opacity:.8}.db-add-tab-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);background:transparent;border:none;color:var(--text-tertiary);cursor:pointer}.db-add-tab-btn:hover{background:var(--hover);color:var(--text-primary)}.db-new-tab-popover{display:flex;align-items:center;gap:6px;background:var(--bg-surface);border:1px solid var(--border-default);box-shadow:var(--shadow-md);padding:4px 8px;border-radius:var(--radius-md)}.db-tab-name-input{width:120px;padding:4px 6px;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px}.db-tab-layout-select{padding:4px 6px;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px}.db-view-controls{display:flex;align-items:center;gap:6px}.db-control-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:var(--radius-sm);background:transparent;border:none;color:var(--text-tertiary);font-size:13px;cursor:pointer}.db-control-btn:hover{background:var(--hover);color:var(--text-primary)}.db-table-container{width:100%;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);position:relative}.db-table-scroll{width:100%;overflow-x:auto}.db-table{border-collapse:collapse;width:100%;font-size:14px;table-layout:fixed}.db-th{position:relative;height:34px;padding:0 8px;background:var(--bg-primary);border-bottom:1px solid var(--border-subtle);border-right:1px solid var(--border-subtle);font-weight:500;color:var(--text-secondary);text-align:left;-webkit-user-select:none;user-select:none}.db-th-gutter{text-align:center;color:var(--text-tertiary);font-size:12px}.db-th-content{display:flex;align-items:center;gap:6px;width:100%;height:100%}.db-prop-icon{font-size:12px;color:var(--text-tertiary);flex-shrink:0}.db-th-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.db-th-menu-btn{opacity:0;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;border-radius:3px}.db-th:hover .db-th-menu-btn{opacity:1}.db-th-menu-btn:hover{background:var(--hover);color:var(--text-primary)}.db-column-resizer{position:absolute;right:-2px;top:0;width:5px;height:100%;cursor:col-resize;z-index:2}.db-column-resizer:hover{background:var(--accent)}.db-th-add{border-right:none}.db-add-column-btn{display:inline-flex;align-items:center;gap:4px;background:transparent;border:none;color:var(--text-tertiary);font-size:13px;cursor:pointer;padding:4px 6px;border-radius:var(--radius-sm)}.db-add-column-btn:hover{background:var(--hover);color:var(--text-primary)}.db-new-prop-popover{position:absolute;top:36px;right:0;z-index:100;background:var(--bg-surface);border:1px solid var(--border-default);box-shadow:var(--shadow-lg);border-radius:var(--radius-md);padding:10px;display:flex;flex-direction:column;gap:8px;width:200px}.db-prop-name-input,.db-prop-type-select{width:100%;padding:6px 8px;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px}.db-new-prop-actions{display:flex;justify-content:flex-end;gap:6px}.db-prop-menu-dropdown{position:absolute;top:36px;left:8px;z-index:100;background:var(--bg-surface);border:1px solid var(--border-default);box-shadow:var(--shadow-lg);border-radius:var(--radius-md);padding:8px;width:180px}.db-prop-menu-header{font-size:11px;color:var(--text-tertiary);margin-bottom:6px}.db-prop-menu-input{width:100%;padding:4px 6px;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;margin-bottom:8px}.db-prop-menu-delete{width:100%;display:flex;align-items:center;gap:6px;background:transparent;border:none;color:var(--danger);padding:6px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px}.db-prop-menu-delete:hover{background:var(--danger-subtle, rgba(255, 0, 0, .1))}.db-tr{height:36px;transition:background var(--motion-fast)}.db-tr:hover{background:var(--hover)}.db-td{padding:0 8px;border-bottom:1px solid var(--border-subtle);border-right:1px solid var(--border-subtle);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.db-td-gutter{text-align:center;position:relative}.db-row-gutter-wrap{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.db-row-index{font-size:11px;color:var(--text-tertiary)}.db-row-menu-trigger{display:none;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:2px}.db-tr:hover .db-row-index{display:none}.db-tr:hover .db-row-menu-trigger{display:inline-flex}.db-row-context-menu{position:absolute;left:36px;top:0;z-index:100;background:var(--bg-surface);border:1px solid var(--border-default);box-shadow:var(--shadow-md);border-radius:var(--radius-sm);padding:4px;display:flex;flex-direction:column;width:90px}.db-row-menu-item{display:flex;align-items:center;gap:6px;background:transparent;border:none;padding:6px 8px;font-size:12px;color:var(--text-primary);cursor:pointer;border-radius:var(--radius-sm)}.db-row-menu-item:hover{background:var(--hover)}.db-row-menu-item.danger{color:var(--danger)}.db-cell-text-display{display:flex;align-items:center;gap:6px;width:100%;height:100%;min-height:24px;cursor:text}.db-cell-input{width:100%;padding:4px 6px;background:var(--bg-surface);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;outline:none}.db-cell-select{width:100%;padding:2px 4px;background:var(--bg-surface);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;outline:none}.db-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:12px;font-weight:500}.db-badge-green{background:#2ea04326;color:#3fb950}.db-badge-orange{background:#db6d2826;color:#f0883e}.db-badge-blue{background:#388bfd26;color:#58a6ff}.db-badge-purple{background:#a371f726;color:#bc8cff}.db-badge-yellow{background:#d2992226;color:#d29922}.db-badge-gray,.db-badge-default{background:var(--hover);color:var(--text-secondary)}.db-cell-number{font-variant-numeric:tabular-nums}.db-cell-link{color:var(--accent);text-decoration:underline}.db-cell-empty{color:var(--text-tertiary);font-size:12px}.db-row-icon{font-size:14px}.db-tr-add{cursor:pointer;color:var(--text-tertiary)}.db-tr-add:hover{background:var(--hover);color:var(--text-primary)}.db-add-row-action{display:flex;align-items:center;gap:6px;font-size:13px;padding:6px 0}.db-table-footer{display:flex;align-items:center;gap:20px;padding:8px 12px;background:var(--bg-surface);border-top:1px solid var(--border-subtle);font-size:12px;color:var(--text-tertiary)}.db-footer-calc{font-weight:500;color:var(--text-secondary)}.db-view-fallback{padding:40px;text-align:center;color:var(--text-tertiary);font-size:14px}.db-board-container{width:100%;overflow-x:auto;padding-bottom:16px}.db-board-scroll{display:flex;gap:16px;align-items:flex-start;min-height:400px}.db-board-column{width:260px;min-width:260px;background:var(--bg-surface);border-radius:var(--radius-md);padding:10px;border:1px solid var(--border-subtle);transition:background var(--motion-fast),border-color var(--motion-fast)}.db-board-column.drag-over{background:var(--hover);border-color:var(--accent)}.db-board-col-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding:2px 4px}.db-board-col-title-wrap{display:flex;align-items:center;gap:6px}.db-board-col-count{font-size:12px;color:var(--text-tertiary)}.db-board-col-add-btn{background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:2px;border-radius:var(--radius-sm)}.db-board-col-add-btn:hover{background:var(--hover);color:var(--text-primary)}.db-board-cards{display:flex;flex-direction:column;gap:8px}.db-board-card{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:10px;box-shadow:var(--shadow-sm);cursor:grab;transition:box-shadow var(--motion-fast),border-color var(--motion-fast)}.db-board-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-default)}.db-board-card-header{display:flex;align-items:center;justify-content:space-between;gap:6px}.db-board-card-title{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:var(--text-primary);flex:1}.db-board-card-icon{font-size:14px}.db-board-card-title-input{width:100%;padding:2px 4px;background:var(--bg-surface);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;outline:none}.db-board-card-del-btn{opacity:0;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:2px}.db-board-card:hover .db-board-card-del-btn{opacity:1}.db-board-card-del-btn:hover{color:var(--danger)}.db-board-card-props{margin-top:8px;padding-top:6px;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:4px;font-size:12px}.db-board-card-prop-row{display:flex;justify-content:space-between}.db-board-card-prop-name{color:var(--text-tertiary)}.db-board-card-prop-val{color:var(--text-secondary)}.db-board-new-card-btn{display:flex;align-items:center;gap:6px;background:transparent;border:none;padding:6px 8px;color:var(--text-tertiary);font-size:13px;cursor:pointer;border-radius:var(--radius-sm);width:100%;text-align:left}.db-board-new-card-btn:hover{background:var(--hover);color:var(--text-primary)}.db-list-container{width:100%}.db-list-items{display:flex;flex-direction:column;border-top:1px solid var(--border-subtle)}.db-list-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border-subtle);transition:background var(--motion-fast)}.db-list-item:hover{background:var(--hover)}.db-list-item-main{display:flex;align-items:center;gap:8px;flex:1}.db-list-icon{font-size:14px}.db-list-title-text{font-size:14px;color:var(--text-primary);font-weight:500;cursor:pointer}.db-list-title-input{padding:2px 6px;background:var(--bg-surface);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;outline:none}.db-list-item-meta{display:flex;align-items:center;gap:8px}.db-list-prop-badge{font-size:12px;color:var(--text-secondary);background:var(--hover);padding:2px 6px;border-radius:var(--radius-sm)}.db-list-del-btn{opacity:0;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:2px}.db-list-item:hover .db-list-del-btn{opacity:1}.db-list-del-btn:hover{color:var(--danger)}.db-list-add-row-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;background:transparent;border:none;color:var(--text-tertiary);font-size:13px;cursor:pointer;text-align:left}.db-list-add-row-btn:hover{background:var(--hover);color:var(--text-primary)}.db-gallery-container{width:100%}.db-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.db-gallery-card{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow var(--motion-fast)}.db-gallery-card:hover{box-shadow:var(--shadow-md)}.db-gallery-cover{height:90px;background:var(--bg-surface);display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--border-subtle)}.db-gallery-cover-icon{font-size:32px;opacity:.6}.db-gallery-content{padding:10px}.db-gallery-title-row{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:6px}.db-gallery-title-input{width:100%;padding:2px 4px;background:transparent;border:none;font-size:14px;font-weight:600;color:var(--text-primary);outline:none}.db-gallery-title-input:focus{background:var(--bg-surface);border:1px solid var(--accent);border-radius:var(--radius-sm)}.db-gallery-del-btn{opacity:0;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:2px}.db-gallery-card:hover .db-gallery-del-btn{opacity:1}.db-gallery-del-btn:hover{color:var(--danger)}.db-gallery-props{display:flex;flex-direction:column;gap:4px;font-size:12px}.db-gallery-prop-item{display:flex;justify-content:space-between;color:var(--text-secondary)}.db-gallery-prop-name{color:var(--text-tertiary)}.db-gallery-new-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:150px;background:var(--bg-surface);border:2px dashed var(--border-subtle);border-radius:var(--radius-md);color:var(--text-tertiary);font-size:14px;cursor:pointer}.db-gallery-new-btn:hover{background:var(--hover);border-color:var(--border-default);color:var(--text-primary)}.db-calendar-container{width:100%;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden}.db-calendar-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border-subtle)}.db-calendar-month-label{font-size:16px;font-weight:600;color:var(--text-primary)}.db-calendar-nav-btns{display:flex;gap:4px}.db-calendar-nav-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);background:transparent;border:none;color:var(--text-tertiary);cursor:pointer}.db-calendar-nav-btn:hover{background:var(--hover);color:var(--text-primary)}.db-calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);text-align:center;font-size:12px;color:var(--text-tertiary);font-weight:500}.db-calendar-weekday{padding:6px 0}.db-calendar-weekday.sunday{color:#ff6b6b}.db-calendar-weekday.saturday{color:#4dabf7}.db-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.db-calendar-cell{min-height:100px;border-bottom:1px solid var(--border-subtle);border-right:1px solid var(--border-subtle);padding:4px;background:var(--bg-primary);display:flex;flex-direction:column}.db-calendar-cell.empty{background:var(--bg-surface);opacity:.3}.db-calendar-cell-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.db-calendar-day-num{font-size:12px;font-weight:500;color:var(--text-secondary)}.db-calendar-add-event-btn{opacity:0;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:1px}.db-calendar-cell:hover .db-calendar-add-event-btn{opacity:1}.db-calendar-add-event-btn:hover{color:var(--text-primary)}.db-calendar-events{display:flex;flex-direction:column;gap:3px}.db-calendar-event-item{display:flex;align-items:center;gap:4px;background:var(--bg-surface);border:1px solid var(--border-subtle);padding:2px 4px;border-radius:var(--radius-sm);font-size:11px;color:var(--text-primary);cursor:grab;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.db-calendar-event-item:hover{background:var(--hover)}.db-cal-bullet{color:var(--accent);font-size:8px}.db-cal-title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.prop-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.prop-modal-content{background:var(--bg-primary);border:1px solid var(--border-default);box-shadow:var(--shadow-lg);border-radius:var(--radius-lg);width:680px;max-width:90vw;height:520px;display:flex;flex-direction:column;overflow:hidden}.prop-modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.prop-modal-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.prop-modal-body{display:flex;flex:1;overflow:hidden}.prop-list-panel{width:260px;border-right:1px solid var(--border-subtle);background:var(--bg-surface);display:flex;flex-direction:column;padding:12px}.prop-list-title{font-size:12px;font-weight:600;color:var(--text-tertiary);margin-bottom:8px}.prop-list-items{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.prop-list-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--motion-fast)}.prop-list-item:hover{background:var(--hover)}.prop-list-item.active{background:var(--active);font-weight:600}.prop-item-icon{font-size:12px;color:var(--text-tertiary)}.prop-item-name{flex:1;font-size:13px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prop-item-type{font-size:11px;color:var(--text-tertiary)}.prop-add-form{margin-top:10px;padding-top:10px;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:6px}.prop-add-input,.prop-add-select{width:100%;padding:5px 8px;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:12px}.prop-detail-panel{flex:1;padding:16px;overflow-y:auto}.prop-empty-detail{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary);font-size:13px}.prop-detail-form h4{margin:0 0 16px;font-size:15px;font-weight:600;color:var(--text-primary)}.prop-form-group{margin-bottom:14px;display:flex;flex-direction:column;gap:6px}.prop-form-group label{font-size:12px;font-weight:500;color:var(--text-secondary)}.prop-form-input,.prop-form-select{padding:6px 10px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px}.prop-form-hint{font-size:11px;color:var(--text-tertiary)}.prop-options-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.prop-option-item{display:flex;align-items:center;gap:4px}.prop-opt-del-btn{background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:0;font-size:11px}.prop-opt-del-btn:hover{color:var(--danger)}.prop-add-option-row{display:flex;gap:6px}.prop-form-actions{margin-top:24px;padding-top:16px;border-top:1px solid var(--border-subtle)}.full-width{width:100%}.filter-modal-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding-top:10vh;background:#00000080}.filter-modal{width:min(640px,calc(100vw - 32px));max-height:78vh;display:flex;flex-direction:column;background:var(--bg-popover);color:var(--text);border-radius:var(--radius-modal);box-shadow:var(--shadow-modal)}.filter-modal-header{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border)}.filter-modal-title{flex:1;margin:0;font-size:15px;font-weight:600}.filter-modal-body{padding:12px 16px 16px;overflow-y:auto}.filter-modal-body h4{margin:0 0 8px;font-size:12px;font-weight:600;color:var(--text-secondary)}.filter-empty,.filter-condition-empty{padding:6px 0;font-size:13px;color:var(--text-tertiary)}.filter-group{margin-bottom:10px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-md)}.filter-group-header{display:flex;align-items:center;gap:6px;margin-bottom:8px}.filter-group-logic{min-width:34px;font-size:12px;font-weight:700;color:var(--accent)}.filter-group-header .btn.danger{margin-left:auto}.filter-conditions{display:flex;flex-direction:column;gap:6px}.filter-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.filter-select,.filter-value{height:28px;padding:0 8px;font-size:13px;color:var(--text);background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm)}.filter-value{flex:1;min-width:120px}.filter-prop-label{display:none}.filter-modal .btn.tiny,.filter-modal .btn.small{padding:2px 8px;font-size:12px;color:var(--text-secondary);background:transparent;border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer}.filter-modal .btn.tiny:hover,.filter-modal .btn.small:hover{background:var(--hover)}.filter-modal .btn.primary{color:#fff;background:var(--accent);border-color:var(--accent)}.filter-modal .btn.danger{color:var(--danger)}.filter-modal .btn:disabled{opacity:.4;cursor:default}.filter-conditions>.btn{align-self:flex-start}.search-scrim{align-items:flex-start}.search-panel{width:640px;max-width:calc(100vw - 32px);margin-top:15vh;background:var(--bg-popover);border-radius:var(--radius-modal);box-shadow:var(--shadow-modal);overflow:hidden;animation:modal-in .18s cubic-bezier(.2,0,0,1)}.search-input-row{height:52px;display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--border);color:var(--text-tertiary)}.search-input-row input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:16px;line-height:24px;color:var(--text)}.search-input-row input::placeholder{color:var(--text-tertiary)}.search-input-row .kbd{font-size:12px;color:var(--text-tertiary)}.search-results{max-height:440px;overflow-y:auto;padding:6px}.search-section-label{font-size:12px;color:var(--text-tertiary);padding:8px 8px 4px}.search-empty{padding:32px 12px;text-align:center;color:var(--text-tertiary);font-size:14px}.search-result{width:100%;display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--radius-sm);text-align:left;color:var(--text)}.search-result.active{background:var(--hover)}.search-result-icon{width:22px;font-size:18px;flex:0 0 auto;text-align:center}.search-result-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.search-result-title{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-snippet{font-size:12px;color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-meta{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;color:var(--text-secondary);white-space:nowrap;flex:0 0 auto;max-width:190px;overflow:hidden}.search-footer{height:40px;display:flex;align-items:center;gap:14px;padding:0 16px;border-top:1px solid var(--border);font-size:12px;color:var(--text-tertiary)}.search-footer-right{margin-left:auto}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--bg);color:var(--text)}.auth-loading{color:var(--text-secondary);font-size:14px}.auth-card{width:100%;max-width:360px;display:flex;flex-direction:column;gap:14px;padding:28px 24px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-modal);box-shadow:var(--shadow-modal)}.auth-logo{font-size:32px;line-height:1}.auth-title{margin:0;font-size:20px;font-weight:700}.auth-desc{margin:-6px 0 4px;font-size:13px;color:var(--text-secondary)}.auth-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-secondary)}.auth-field input{height:36px;padding:0 10px;font-size:14px;color:var(--text);background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);outline:none}.auth-field input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.auth-field input:disabled{opacity:.6}.auth-error{padding:8px 10px;font-size:13px;color:var(--danger);background:#eb57571a;border-radius:var(--radius-sm)}.auth-submit{height:38px;font-size:14px;font-weight:600;color:#fff;background:var(--accent);border:0;border-radius:var(--radius-sm);cursor:pointer}.auth-submit:disabled{opacity:.5;cursor:default}.auth-hint{margin:0;font-size:12px;color:var(--text-tertiary);text-align:center}.readonly-banner{margin:8px 0 4px;padding:8px 12px;font-size:13px;color:var(--text-secondary);background:var(--hover);border-radius:var(--radius-md)}
