:root{--bg:#fff;--side:#f8f8f7;--text:#37352f;--muted:#7d7a75;--faint:#a5a29c;--line:#37352f1a;--line2:#37352f29;--hover:#37352f0f;--active:#37352f1a;--card:#fff;--pop:#fff;--callout:#f1f1ef;--blue:#2383e2;--blue-h:#1b74cd;--red:#e03e3e;--shadow:0 0 0 1px #0f0f0f0d,0 3px 6px #0f0f0f1a,0 9px 24px #0f0f0f33;--card-shadow:0 0 0 1px #0f0f0f14,0 2px 4px #0f0f0f0f;--t-default:#e3e2e0;--t-gray:#e3e2e0;--t-brown:#eee0da;--t-orange:#fadec9;--t-yellow:#fdecc8;--t-green:#dbeddb;--t-blue:#d3e5ef;--t-purple:#e8deee;--t-pink:#f5e0e9;--t-red:#ffe2dd;--tt-default:#32302c;--tt-gray:#32302c;--tt-brown:#442a1e;--tt-orange:#49290e;--tt-yellow:#402c1b;--tt-green:#1c3829;--tt-blue:#183347;--tt-purple:#412454;--tt-pink:#4c2337;--tt-red:#5d1715;--c-gray:#91918e;--c-brown:#bb846c;--c-orange:#d7813a;--c-yellow:#cb9433;--c-green:#4f9d6b;--c-blue:#3e8fd1;--c-purple:#9a6dd7;--c-pink:#d15796;--c-red:#df5452;--buncss-light:initial;--buncss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#191919;--side:#202020;--text:#ffffffd6;--muted:#9b9b9b;--faint:#6f6f6f;--line:#ffffff1a;--line2:#ffffff29;--hover:#ffffff0f;--active:#ffffff1a;--card:#262626;--pop:#252525;--callout:#252525;--blue:#2383e2;--blue-h:#3a93ea;--red:#eb5757;--shadow:0 0 0 1px #ffffff14,0 3px 6px #0000004d,0 9px 24px #00000080;--card-shadow:0 0 0 1px #ffffff14;--t-default:#373737;--t-gray:#5a5a5a;--t-brown:#603b2c;--t-orange:#854c1d;--t-yellow:#89632a;--t-green:#2b593f;--t-blue:#28456c;--t-purple:#492f64;--t-pink:#69314c;--t-red:#6e3630;--tt-default:#e6e6e6;--tt-gray:#e6e6e6;--tt-brown:#e6e6e6;--tt-orange:#e6e6e6;--tt-yellow:#e6e6e6;--tt-green:#e6e6e6;--tt-blue:#e6e6e6;--tt-purple:#e6e6e6;--tt-pink:#e6e6e6;--tt-red:#e6e6e6;--buncss-light: ;--buncss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;overscroll-behavior:none;font:15px/1.5 ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0}button:disabled{cursor:default}a{color:inherit}hr{border:0;border-top:1px solid var(--line2);margin:8px 0}:focus-visible{outline:2px solid var(--blue);outline-offset:1px;border-radius:4px}.muted{color:var(--muted)}.push{margin-left:auto}.ico{color:var(--muted);flex:none}.emoji{flex:none;line-height:1}kbd{color:var(--faint);margin-left:auto;font:11px ui-sans-serif,sans-serif}.icon-btn{display:inline-flex;color:var(--muted);border-radius:6px;flex:none;justify-content:center;align-items: center;width:30px;height:30px;font-size:18px}.icon-btn.sm{width:24px;height:24px}.icon-btn:hover{background:var(--hover)}.icon-btn.ghost{pointer-events:none}.btn{display:inline-flex;border:1px solid var(--line2);border-radius:6px;justify-content:center;align-items: center;gap:6px;height:36px;padding:0 14px;font-weight:500}.btn.sm{height:28px;padding:0 10px;font-size:14px}.btn.primary{background:var(--blue);color:#fff;border-color:#0000}.btn.primary:hover{background:var(--blue-h)}.btn:disabled{opacity:.6}.tool-btn{display:inline-flex;color:var(--muted);white-space:nowrap;border-radius:6px;align-items: center;gap:5px;height:28px;padding:0 7px;font-size:14px}.tool-btn:hover{background:var(--hover)}.tool-btn.on{color:var(--blue)}.link-btn{color:var(--muted);border-radius:6px;padding:6px 8px;font-size:14px}.link-btn:hover{background:var(--hover)}.input{border:1px solid var(--line2);background:var(--hover);border-radius:6px;width:100%;min-width:0;height:32px;padding:0 8px;font-size:14px}select.input{padding-right:2px}.input:focus{outline:2px solid var(--blue);outline-offset:-1px}.switch{background:var(--line2);position:relative;display:inline-block;border-radius:9px;width:28px;height:16px;transition:background .15s}.switch:after{content:"";position:absolute;background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .15s;top:2px;left:2px}.switch.on{background:var(--blue)}.switch.on:after{transform:translate(12px)}.avatar{background:var(--active);display:inline-flex;border-radius:50%;flex:none;justify-content:center;align-items: center;width:22px;height:22px;font-size:12px;font-weight:600}.check{border:1.5px solid var(--muted);display:inline-flex;color:#fff;border-radius:3px;flex:none;justify-content:center;align-items: center;width:16px;height:16px}.check.on{background:var(--blue);border-color:var(--blue)}.tag{display:inline-flex;white-space:nowrap;background:var(--t-default);color:var(--tt-default);border-radius:3px;align-items: center;gap:4px;max-width:100%;height:20px;padding:0 6px;font-size:13px;line-height:20px}.tag-text{overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items: center;gap:5px}.tag .dot{opacity:.7;background:currentColor;border-radius:50%;width:7px;height:7px}.tag-x{color:inherit;opacity:.6;font-size:15px;line-height:1}.tags{display:inline-flex;flex-wrap:wrap;gap:4px;max-width:100%}.c-default{background:var(--t-default);color:var(--tt-default)}.c-gray{background:var(--t-gray);color:var(--tt-gray)}.c-brown{background:var(--t-brown);color:var(--tt-brown)}.c-orange{background:var(--t-orange);color:var(--tt-orange)}.c-yellow{background:var(--t-yellow);color:var(--tt-yellow)}.c-green{background:var(--t-green);color:var(--tt-green)}.c-blue{background:var(--t-blue);color:var(--tt-blue)}.c-purple{background:var(--t-purple);color:var(--tt-purple)}.c-pink{background:var(--t-pink);color:var(--tt-pink)}.c-red{background:var(--t-red);color:var(--tt-red)}.swatch{display:inline-block;border-radius:3px;width:16px;height:16px}.ch-default,.ch-gray{background:var(--c-gray)}.ch-brown{background:var(--c-brown)}.ch-orange{background:var(--c-orange)}.ch-yellow{background:var(--c-yellow)}.ch-green{background:var(--c-green)}.ch-blue{background:var(--c-blue)}.ch-purple{background:var(--c-purple)}.ch-pink{background:var(--c-pink)}.ch-red{background:var(--c-red)}.chs-default,.chs-gray{stroke:var(--c-gray)}.chs-brown{stroke:var(--c-brown)}.chs-orange{stroke:var(--c-orange)}.chs-yellow{stroke:var(--c-yellow)}.chs-green{stroke:var(--c-green)}.chs-blue{stroke:var(--c-blue)}.chs-purple{stroke:var(--c-purple)}.chs-pink{stroke:var(--c-pink)}.chs-red{stroke:var(--c-red)}.t-gray{color:var(--muted)}.t-brown{color:var(--c-brown)}.t-orange{color:var(--c-orange)}.t-yellow{color:var(--c-yellow)}.t-green{color:var(--c-green)}.t-blue{color:var(--c-blue)}.t-purple{color:var(--c-purple)}.t-pink{color:var(--c-pink)}.t-red{color:var(--c-red)}.app{display:flex;height:100dvh}.sidebar{background:var(--side);border-right:1px solid var(--line);display:flex;padding:6px 6px calc(8px + env(safe-area-inset-bottom));padding-top:calc(6px + env(safe-area-inset-top));overflow:hidden;flex-direction:column;flex:none;width:264px}.side-backdrop{display:none}.side-top{display:flex;align-items: center;gap:4px;padding:2px}.side-user{display:flex;border-radius:6px;flex:1;align-items: center;gap:8px;min-width:0;height:34px;padding:0 6px;font-size:14px;font-weight:600}.side-user span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-user:hover,.side-item:hover,.tree-row:hover{background:var(--hover)}.side-item{display:flex;color:var(--muted);border-radius:6px;align-items: center;gap:8px;height:32px;padding:0 10px;font-size:14px;font-weight:500}.side-label{color:var(--faint);padding:14px 10px 4px;font-size:12px;font-weight:600}.tree{overflow-y:auto;flex:1;min-height:0}.tree-row{display:flex;border-radius:6px;align-items: center;height:32px;padding-right:4px}.tree-row.on{background:var(--active)}.tree-row.on .tree-link{color:var(--text);font-weight:600}.tree-link{display:flex;color:var(--muted);flex:1;align-items: center;gap:7px;min-width:0;height:100%;font-size:14px;font-weight:500}.tree-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-add{opacity:0}.tree-row:hover .tree-add{opacity:1}.tree-add:focus-visible{opacity:1}.tree-empty{color:var(--faint);height:26px;font-size:13px;line-height:26px}.chev{flex:none;transition:transform .12s}.chev.open{transform:rotate(90deg)}.chev.closed{transform:rotate(-90deg)}.main{display:flex;flex-direction:column;flex:1;min-width:0}.topbar{display:flex;padding:0 10px;padding-top:env(safe-area-inset-top);box-sizing:content-box;flex:none;align-items: center;gap:4px;height:44px}.crumbs{display:flex;overflow:hidden;white-space:nowrap;flex:1;align-items: center;min-width:0;font-size:14px}.crumbs>span{display:inline-flex;align-items: center;min-width:0}.crumbs i{color:var(--faint);margin:0 2px;font-style:normal}.crumb{display:inline-flex;overflow:hidden;text-overflow:ellipsis;border-radius:5px;align-items: center;gap:6px;min-width:0;padding:3px 6px}button.crumb:hover{background:var(--hover)}.crumb.cur{font-weight:500}.content{overflow:auto;-webkit-overflow-scrolling:touch;flex:1}.page{max-width:900px;margin:0 auto;padding:24px 96px 30vh}.page.full{max-width:none}.page-head{margin-bottom:8px}.page-head.row{display:flex;align-items: flex-start;gap:8px}.page-head.row .page-icon{margin-top:6px}.page-icon{display:inline-flex;border-radius:6px;align-items: center;min-height:28px;padding:2px}.page-icon:not(:disabled):hover{background:var(--hover)}.add-icon{color:var(--faint);opacity:0;padding:2px 6px;font-size:13px}.page-head:hover .add-icon{opacity:1}.page-icon:focus-visible .add-icon{opacity:1}.page-title{display:block;resize:none;outline:none;overflow:hidden;background:0 0;border:0;width:100%;padding:0;font-size:38px;font-weight:700;line-height:1.2}.page-title::placeholder{color:var(--faint)}.blocks{display:flex;flex-direction:column;min-width:0}.block{position:relative;min-width:0;padding:3px 0}.block-handle{position:absolute;display:flex;opacity:0;z-index:2;transition:opacity .1s;top:3px;left:-50px}.block:hover>.block-handle,.block:focus-within>.block-handle{opacity:1}.callout .block-handle,.column .block-handle,.toggle-body .block-handle{background:var(--bg);box-shadow:var(--card-shadow);border-radius:6px;left:auto;right:0}.callout .block:not(:hover)>.block-handle,.column .block:not(:hover)>.block-handle{opacity:0}.ed{outline:none;white-space:pre-wrap;word-break:break-word;flex:1;min-width:0;min-height:1.5em}.ed:empty:before{content:attr(data-ph);color:var(--faint);pointer-events:none}.block:not(:focus-within)>.ed:empty:before,.block:not(:focus-within) .li>.ed:empty:before{content:""}.b-h1>.ed:empty:before,.b-h2>.ed:empty:before,.b-h3>.ed:empty:before{content:attr(data-ph)!important}.ed a{color:inherit;text-decoration:underline;text-decoration-color:var(--line2);cursor:pointer}.ed code{background:var(--hover);color:var(--c-red);border-radius:3px;padding:1px 4px;font-size:85%}.ed.h1{margin-top:22px;font-size:30px;font-weight:700;line-height:1.25}.ed.h2{margin-top:18px;font-size:24px;font-weight:650;line-height:1.3}.ed.h3{margin-top:12px;font-size:19px;font-weight:650;line-height:1.3}.blocks>.block:first-child .ed.h1,.blocks>.block:first-child .ed.h2,.blocks>.block:first-child .ed.h3{margin-top:0}blockquote{border-left:3px solid;margin:0;padding-left:14px}.li{display:flex;align-items: flex-start;gap:6px}.li-mark{text-align:center;flex:none;width:22px;font-size:18px;line-height:1.25}.li-mark.num{font-size:inherit;text-align:right;padding-right:2px;line-height:1.5}.li.todo .check{cursor:pointer;margin:3px 3px 0}.li.todo.done .ed{color:var(--muted);text-decoration:line-through}.toggle-body{padding-left:28px}.callout{display:flex;background:var(--callout);border-radius:8px;gap:10px;margin:2px 0;padding:14px 14px 14px 12px}.callout-ico{display:inline-flex;border-radius:5px;flex:none;justify-content:center;align-items: center;width:26px;height:26px}.callout-ico:not(:disabled):hover{background:var(--hover)}.callout-body{flex:1;min-width:0}.columns{display:flex;align-items: flex-start;gap:32px}.column{min-width:0}.block-empty{color:var(--faint);width:100%;padding:3px 0}.block-tail{cursor:text;height:60px}.page-link{display:flex;border-radius:6px;align-items: center;gap:8px;width:100%;margin:0 -6px;padding:4px 6px;font-weight:500}.page-link span{border-bottom:1px solid var(--line2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-link:hover{background:var(--hover)}.quick-btn{display:inline-flex;border:1px solid var(--line2);background:var(--card);border-radius:6px;align-items: center;gap:7px;max-width:100%;min-height:32px;padding:5px 12px;font-size:14px;font-weight:500;line-height:1.3}.quick-btn:hover{background:var(--hover)}.stable-wrap{overflow-x:auto}.stable{border-collapse:collapse;width:100%;font-size:14px}.stable th,.stable td{border:1px solid var(--line2);vertical-align:top;text-align:left;min-width:90px;padding:6px 8px}.stable th{background:var(--hover);font-weight:600}.stable textarea{resize:none;outline:none;overflow:hidden;display:block;background:0 0;border:0;width:100%;padding:0}.dbv{container-type:inline-size;min-width:0}@container (width<=430px){.donut{flex-direction:column;align-items:stretch}.donut svg{align-self: center}}@container (width<=620px){.dbv-tools .tool-btn span{display:none}.dbv-search input{width:90px}}.dbv.inline{margin:6px 0 14px}.dbv-title{display:inline-flex;border-radius:6px;align-items: center;gap:7px;max-width:100%;margin-left:-6px;padding:2px 6px;font-size:17px;font-weight:700}.dbv-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dbv-title:hover{background:var(--hover)}.dbv-title-go{color:var(--faint);opacity:0;flex:none}.dbv-title:hover .dbv-title-go{opacity:1}.dbv-bar{display:flex;border-bottom:1px solid var(--line);align-items: center;gap:8px;min-height:40px;padding:4px 0}.dbv-tabs{display:flex;overflow-x:auto;scrollbar-width:none;flex:1;align-items: center;gap:2px;min-width:0}.dbv-tabs::-webkit-scrollbar{display:none}.dbv-tab{display:inline-flex;color:var(--muted);white-space:nowrap;border-radius:6px;flex:none;align-items: center;gap:6px;height:28px;padding:0 8px;font-size:14px}.dbv-tab:hover{background:var(--hover)}.dbv-tab.on{color:var(--text);background:var(--hover);font-weight:600}.dbv-tab.on .ico{color:var(--text)}.dbv-tools{display:flex;flex:none;align-items: center;gap:2px}.dbv-search{display:inline-flex;color:var(--muted);align-items: center;gap:4px}.dbv-search input{outline:none;background:0 0;border:0;width:130px;font-size:14px}.db-loading,.db-empty,.db-missing{color:var(--muted);padding:18px 4px;font-size:14px}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.table{display:flex;flex-direction:column}.tr{display:flex;border-bottom:1px solid var(--line);min-height:34px}.th,.td{border-right:1px solid var(--line);position:relative;flex:none;min-width:0}.th.filler,.td.filler{border-right:0;flex:1;min-width:48px}.th-btn{display:flex;color:var(--muted);align-items: center;gap:6px;width:100%;height:34px;padding:0 8px;font-size:14px}.th-btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.th-btn:hover{background:var(--hover)}.th-btn.add{justify-content:center;width:48px}.resize{position:absolute;cursor:col-resize;z-index:1;touch-action:none;width:8px;height:100%;top:0;right:-4px}.resize:hover{background:var(--blue);opacity:.5}.cell{overflow:hidden;height:100%;min-height:33px;padding:6px 8px;font-size:14px;line-height:21px}.cell.click{cursor:pointer}.td .cell{white-space:nowrap}.td .cell .tags{flex-wrap:nowrap}.td.title .cell{white-space:normal;padding-right:8px;font-weight:500}.cell.editing{box-shadow:inset 0 0 0 2px var(--blue);background:var(--card);overflow:visible;border-radius:3px;padding:0}.cell-input{outline:none;resize:none;display:block;overflow:hidden;background:0 0;border:0;width:100%;min-height:33px;padding:6px 8px;font-size:14px;line-height:21px}.open-btn{position:absolute;display:none;background:var(--card);box-shadow:var(--card-shadow);color:var(--muted);text-transform:uppercase;letter-spacing:.02em;border-radius:4px;align-items: center;gap:4px;height:22px;padding:0 6px;font-size:11px;font-weight:600;top:5px;right:6px}.tr:hover .open-btn{display:inline-flex}.open-btn:focus-visible{display:inline-flex}.add-row{color:var(--muted);align-items: center;gap:6px;width:100%;padding:0 8px;font-size:14px}.add-row:hover{background:var(--hover)}.table-foot{display:flex;align-items: center;gap:12px;padding:8px;font-size:13px}.tgroup{margin-top:14px}.tgroup-head{display:flex;border-radius:6px;align-items: center;gap:8px;padding:6px 4px;font-size:14px}button.tgroup-head:hover{background:var(--hover)}.tgroup-head.static{margin-top:12px}.v-text{white-space:pre-wrap;word-break:break-word}.td .v-text{white-space:nowrap}.v-link{text-decoration:underline;text-decoration-color:var(--line2);word-break:break-all}.rel-chip{display:inline-flex;border-radius:4px;align-items: center;gap:5px;max-width:100%;padding:0 4px;font-size:14px}.rel-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid var(--line2);line-height:18px}.rel-chip:hover{background:var(--hover)}.person{display:inline-flex;align-items: center;gap:6px}.file-chip{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--hover);text-decoration:none;border-radius:4px;max-width:180px;padding:0 6px;font-size:13px}.bar-cell{display:inline-flex;align-items: center;gap:8px;width:100%}.bar-track{background:var(--line2);overflow:hidden;border-radius:3px;flex:1;min-width:40px;height:6px}.bar-fill{display:block;border-radius:3px;height:100%}.bar-fill.ok{background:var(--c-green)}.bar-fill.warn{background:var(--c-orange)}.bar-fill.bad{background:var(--c-red)}.board{display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;align-items: flex-start;gap:12px;padding:12px 0 8px}.bcol{border-radius:8px;flex:none;width:270px;padding:4px}.bcol.over{background:var(--hover)}.bcol-head{display:flex;align-items: center;gap:8px;padding:2px 4px 8px;font-size:14px}.bcol-body{display:flex;flex-direction:column;gap:8px}.bcol-add{display:flex;color:var(--muted);border-radius:6px;align-items: center;gap:6px;padding:6px 8px;font-size:14px}.bcol-add:hover{background:var(--hover)}.card{display:block;background:var(--card);box-shadow:var(--card-shadow);cursor:pointer;overflow:hidden;border-radius:8px;font-size:14px}.card:hover{background:color-mix(in srgb,var(--card)94%,var(--text))}.card-title{word-break:break-word;padding:9px 10px 7px;font-weight:600}.card-props{display:flex;flex-direction:column;gap:5px;padding:0 10px 9px;font-size:13px}.card-prop{overflow:hidden;min-width:0}.card-prop .v-text{display:-webkit-box;-webkit-line-clamp:2;overflow:hidden;-webkit-box-orient:vertical}.card-cover{display:block;object-fit:cover;border-bottom:1px solid var(--line);width:100%;height:130px}.card-cover.empty{background:var(--hover)}.card.new{display:flex;color:var(--muted);box-shadow:none;border:1px dashed var(--line2);background:0 0;justify-content:center;align-items: center;gap:6px;min-height:60px}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;padding:12px 0}.listv{padding-top:6px}.list-row{display:flex;cursor:pointer;border-radius:6px;align-items: center;gap:8px;min-height:34px;padding:4px 6px;font-size:14px}.list-row:hover{background:var(--hover)}.list-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:500}.list-props{display:flex;overflow:hidden;white-space:nowrap;color:var(--muted);flex:none;align-items: center;gap:10px;max-width:60%}.cal{padding-top:8px}.cal-head{display:flex;align-items: center;gap:6px;padding:4px 2px 8px}.cal-month{display:inline-block}.cal-month:first-letter{text-transform:uppercase}.cal-by{font-size:13px}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--line)}.cal-dow{color:var(--muted);text-align:right;border:0;font-size:12px}.cal-dow div{padding:2px 8px}.cal-day{border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:3px;min-width:0;min-height:112px;padding:4px}.cal-grid:not(.cal-dow){border-top:1px solid var(--line)}.cal-day.out{background:var(--hover)}.cal-day.out .cal-num span{color:var(--faint)}.cal-num{display:flex;flex-direction:row-reverse;justify-content:space-between;align-items: center;height:24px;font-size:13px}.cal-num span{display:inline-flex;border-radius:12px;justify-content:center;align-items: center;min-width:24px;height:24px}.cal-day.today .cal-num span{background:var(--red);color:#fff;font-weight:600}.cal-add{opacity:0}.cal-day:hover .cal-add{opacity:1}.cal-add:focus-visible{opacity:1}.cal-item{display:flex;background:var(--card);box-shadow:var(--card-shadow);border-radius:4px;align-items: center;gap:5px;width:100%;min-width:0;padding:2px 6px;font-size:12.5px;font-weight:500}.cal-item:hover{background:var(--hover)}.cal-item-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-dot{border-radius:50%;flex:none;width:8px;height:8px}.cal-more{color:var(--muted);padding:0 6px;font-size:12px}.cal-dots{display:flex;flex-wrap:wrap;justify-content:center;gap:2px}.cal-dots i{background:var(--blue);border-radius:50%;width:5px;height:5px}.cal-list{display:flex;flex-direction:column;gap:6px;padding:12px 2px}.cal-list-head{display:flex;justify-content:space-between;align-items: center}.cal-list .cal-item{padding:8px 10px;font-size:14px}.chart{padding:14px 4px 6px}.vbars{display:flex;align-items:stretch;gap:14px;height:200px}.vbar-col{display:flex;flex-direction:column;flex:1;min-width:0}.vbar-area{display:flex;border-bottom:1px solid var(--line2);flex:1;justify-content:center;align-items: flex-end;gap:3px;min-height:0}.vbar-slot{display:flex;flex-direction:column;flex:1;justify-content:flex-end;align-items: center;min-width:0;max-width:44px;height:100%}.vbar{border-radius:3px 3px 0 0;width:100%;min-height:2px}.vbar-val{color:var(--muted);white-space:nowrap;margin-bottom:2px;font-size:11px}.vbar-label{color:var(--muted);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-top:5px;font-size:12px}.hbars{display:flex;flex-direction:column;gap:6px}.hbar-row{display:grid;grid-template-columns:minmax(70px,34%)1fr auto;align-items: center;gap:8px;font-size:13px}.hbar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.hbar-track{display:flex;gap:1px;min-width:0;height:14px}.hbar{border-radius:2px;min-width:2px;height:100%}.hbar-val{font-variant-numeric:tabular-nums;font-size:12px}.legend{display:flex;color:var(--muted);flex-wrap:wrap;gap:4px 14px;padding-top:10px;font-size:12.5px}.legend span{display:inline-flex;align-items: center;gap:6px}.legend i{border-radius:2px;flex:none;width:9px;height:9px}.legend.col{flex-flow:column;flex:1;min-width:0;padding:0}.legend.col b{color:var(--text);font-variant-numeric:tabular-nums;margin-left:auto;padding-left:10px}.donut{display:flex;align-items: center;gap:18px}.donut svg{flex:none;width:132px;height:132px}.donut-total{fill:var(--text);font-size:20px;font-weight:700}.donut-sub{fill:var(--muted);font-size:9px}.timeline{overflow-x:auto;-webkit-overflow-scrolling:touch;padding:10px 0}.tl-head,.tl-row{display:flex;border-bottom:1px solid var(--line);align-items: center;height:34px}.tl-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:sticky;background:var(--bg);z-index:2;border-right:1px solid var(--line);flex:none;width:220px;height:100%;padding:0 8px;font-size:14px;font-weight:500;line-height:33px;left:0}.tl-months,.tl-track{position:relative;flex:1;height:100%}.tl-months div{position:absolute;border-left:1px solid var(--line);color:var(--muted);white-space:nowrap;overflow:hidden;height:100%;padding:7px 6px;font-size:12px;top:0}.tl-bar{position:absolute;opacity:.85;border-radius:5px;height:20px;top:7px}.tl-bar:hover{opacity:1}.tl-today{position:absolute;background:var(--red);width:2px;top:0;bottom:0}.peek-layer{position:fixed;z-index:40;display:flex;background:#0f0f0f40;justify-content:flex-end;inset:0}.peek{background:var(--bg);box-shadow:var(--shadow);display:flex;flex-direction:column;width:min(760px,62vw);height:100%}.peek-bar{display:flex;padding:0 10px;padding-top:env(safe-area-inset-top);box-sizing:content-box;flex:none;align-items: center;gap:6px;height:44px}.peek-crumb{display:inline-flex;color:var(--muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;align-items: center;gap:6px;min-width:0;font-size:14px}.peek-body{overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1;padding:18px 56px 30vh}.peek-title{margin-bottom:12px;font-size:32px}.props{display:flex;flex-direction:column;margin-bottom:8px}.prop-row{display:flex;align-items: flex-start;gap:4px;min-height:34px}.prop-name{display:flex;color:var(--muted);border-radius:6px;flex:none;align-items: center;gap:7px;width:170px;height:33px;padding:0 6px;font-size:14px}.prop-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prop-name:hover{background:var(--hover)}.prop-val{flex:1;min-width:0}.prop-val .cell{overflow:visible;border-radius:6px}.prop-val .cell.click:hover{background:var(--hover)}.prop-add{display:flex;color:var(--faint);border-radius:6px;align-self: flex-start;align-items: center;gap:7px;height:32px;padding:0 6px;font-size:14px}.prop-add:hover{background:var(--hover)}.pop-layer{position:fixed;z-index:60;inset:0}.pop{position:fixed;background:var(--pop);box-shadow:var(--shadow);display:flex;overflow:hidden;border-radius:8px;flex-direction:column;max-height:min(480px,100dvh - 16px);padding:4px 0;font-size:14px}.pop-layer.sheet{display:flex;background:#0f0f0f59;align-items: flex-end}.pop-layer.sheet .pop{position:static;padding-bottom:calc(10px + env(safe-area-inset-bottom));border-radius:14px 14px 0 0;max-height:78dvh;padding-top:8px;width:100%!important}.pop-scroll{overflow-y:auto;-webkit-overflow-scrolling:touch;min-height:0}.pop-scroll.short{max-height:190px}.pop-pad{padding:6px 8px}.pop-note{color:var(--muted);display:flex;align-items: center;gap:6px;padding:6px 12px;font-size:13px}.pop-empty{color:var(--muted);padding:10px 12px;font-size:13px}.pop-field{display:flex;color:var(--muted);flex-direction:column;gap:3px;padding:5px 10px;font-size:12px}.pop-field.row{padding:4px 0 8px}.menu-item{display:flex;border-radius:5px;align-items: center;gap:8px;width:calc(100% - 8px);min-height:30px;margin:0 4px;padding:3px 8px}.menu-item:hover,.menu-item.active{background:var(--hover)}.menu-item.danger:hover{color:var(--red)}.menu-ico{display:inline-flex;color:var(--muted);flex:none;justify-content:center;width:18px}.menu-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;flex:1;align-items: center;gap:6px;min-width:0}.menu-right{display:inline-flex;color:var(--muted);flex:none;align-items: center;font-size:12px}.menu-sep{background:var(--line);height:1px;margin:4px 0}.menu-title{color:var(--faint);padding:6px 12px 2px;font-size:12px;font-weight:600}.sel-head{display:flex;background:var(--hover);flex-wrap:wrap;align-items: center;gap:4px;margin:-4px 0 0;padding:8px}.sel-input{outline:none;background:0 0;border:0;flex:1;min-width:90px;height:22px;font-size:14px}.opt-row{display:flex;border-radius:5px;align-items: center;gap:2px;margin:0 4px;padding-right:2px}.opt-row:hover{background:var(--hover)}.opt-main{display:flex;text-decoration:none;flex:1;justify-content:space-between;align-items: center;gap:8px;min-width:0;min-height:30px;padding:3px 8px}.opt-main.static{cursor:default}.rel-line{display:inline-flex;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;align-items: center;gap:7px;min-width:0}.date-ed{display:flex;flex-direction:column;gap:6px}.date-ed label{color:var(--muted);display:flex;flex-direction:column;gap:3px;font-size:12px}.rules{display:flex;flex-direction:column;gap:8px;padding:2px 10px 6px}.rule{display:flex;flex-direction:column;gap:5px}.rule-top{display:grid;grid-template-columns:1fr 1fr 24px;align-items: center;gap:5px}.filter-opts{display:flex;flex-wrap:wrap;gap:4px}.filter-opt{opacity:.45;border-radius:4px;padding:2px}.filter-opt.on{opacity:1;box-shadow:0 0 0 1.5px var(--blue)}.filter-date{display:flex;gap:5px}.seg{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:4px 10px 6px}.seg button{display:flex;border:1px solid var(--line);color:var(--muted);border-radius:6px;flex-direction:column;align-items: center;gap:2px;padding:6px 2px;font-size:10.5px}.seg button.on{border-color:var(--blue);color:var(--blue)}.icon-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;padding:6px 8px}.modal-layer{position:fixed;z-index:50;display:flex;background:#0f0f0f66;justify-content:center;align-items: flex-start;padding:10vh 12px 12px;inset:0}.modal{background:var(--pop);box-shadow:var(--shadow);display:flex;overflow:hidden;border-radius:12px;flex-direction:column;width:100%;max-height:78dvh}.modal-head{display:flex;border-bottom:1px solid var(--line);justify-content:space-between;align-items: center;padding:10px 10px 10px 16px}.modal-body{overflow-y:auto;padding:14px 16px}.search-box{display:flex;border-bottom:1px solid var(--line);color:var(--muted);align-items: center;gap:10px;padding:12px 16px}.search-box input{outline:none;background:0 0;border:0;flex:1;min-width:0;font-size:16px}.search-list{overflow-y:auto;padding:6px 0}.member{display:flex;align-items: center;gap:10px;padding:6px 0}.member-info{display:flex;flex-direction:column;flex:1;min-width:0;font-size:14px}.member-info span{overflow:hidden;text-overflow:ellipsis;font-size:13px}.member-form{display:flex;border-top:1px solid var(--line);flex-direction:column;gap:8px;margin-top:12px;padding-top:12px}form.modal-body.member-form{border:0;margin:0}.toast{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));color:#fff;z-index:80;box-shadow:var(--shadow);background:#2f2f2f;border-radius:8px;max-width:calc(100vw - 32px);padding:9px 16px;font-size:14px;transform:translate(-50%)}.auth{display:flex;background:var(--side);justify-content:center;align-items: center;min-height:100dvh;padding:16px}.auth-card{background:var(--bg);box-shadow:var(--card-shadow);display:flex;border-radius:12px;flex-direction:column;gap:12px;width:100%;max-width:360px;padding:26px}.auth-card h1{margin:0;font-size:24px}.auth-card p{margin:0 0 4px;font-size:14px}.auth-card label{display:flex;color:var(--muted);flex-direction:column;gap:4px;font-size:13px}.auth-card .input{height:38px;font-size:16px}.auth-err{color:var(--red);font-size:14px}@media (max-width:1100px){.page{padding:20px 56px 30vh}}@media (max-width:900px){.sidebar{position:fixed;z-index:30;box-shadow:var(--shadow);width:min(300px,86vw);inset:0 auto 0 0}.side-backdrop{display:block;position:fixed;z-index:29;background:#0f0f0f59;inset:0}.tree-add{opacity:1}.peek{width:min(760px,88vw)}.peek-body{padding:14px 28px 30vh}}@media (max-width:760px){.columns{flex-direction:column;gap:4px}.column{width:100%;flex:none!important}}@media (max-width:640px){body{font-size:16px}.page{padding:10px 16px 30vh}.page-title{font-size:30px}.peek-title{font-size:26px}.block-handle{background:var(--bg);box-shadow:var(--card-shadow);border-radius:6px;top:2px;left:auto;right:0}.block:not(:focus-within)>.block-handle{pointer-events:none;opacity:0!important}.ed.h1{font-size:26px}.ed.h2{font-size:22px}.peek-layer{background:0 0}.peek{box-shadow:none;width:100vw}.peek-body{padding:8px 16px 30vh}.prop-name{width:124px}.input,.cell-input,.sel-input,.dbv-search input{font-size:16px}.menu-item,.opt-main{min-height:40px}.icon-btn{width:34px;height:34px}.icon-btn.sm{width:30px;height:30px}.open-btn{display:inline-flex}.open-btn span{display:none}.td.title .cell{padding-right:34px}.cal-day{align-items: center;min-height:52px;padding:3px 0}.cal-day.sel{background:var(--active)}.cal-num{justify-content:center}.cal-dow div{text-align:center;padding:2px 0}.bcol{width:78vw}.gallery{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.donut{flex-direction:column;align-items:stretch}.donut svg{align-self: center}.tl-name{width:130px}.modal-layer{padding-top:5vh}}@media (hover:none){.open-btn{display:inline-flex}.tree-add,.cal-add,.dbv-title-go,.add-icon{opacity:1}}@media print{.sidebar,.topbar,.block-handle{display:none!important}.content{overflow:visible}}.dbv.compact .dbv-title,.dbv.compact .dbv-tabs>.icon-btn,.dbv.compact .dbv-tools>:not(:first-child){display:none}.dbv.compact .dbv-bar{border:0;min-height:0;padding:0}.dbv.compact .dbv-tab.on{border-radius:14px;padding:0 12px;font-size:13.5px}.dbv.compact .dbv-tools{opacity:0;transition:opacity .12s}.dbv.compact:hover .dbv-tools,.dbv.compact:focus-within .dbv-tools{opacity:1}.dbv.compact .chart{padding-top:12px}.hbars{gap:7px}.hbars.grouped{gap:16px}.hbar-row{grid-template-columns:minmax(84px,44%)minmax(0,1fr);font-size:12.5px}.hbar-label{text-align:right;color:var(--text)}.hbar-lines{display:flex;flex-direction:column;gap:3px;min-width:0}.hbar-line{display:flex;align-items: center;gap:6px;min-width:0}.hbar{flex:none;height:9px}.hbars.grouped .hbar{height:11px}.hbar-val{color:var(--muted);white-space:nowrap;font-size:11.5px}.legend.center{justify-content:center}.legend.center b{color:var(--text);font-variant-numeric:tabular-nums;margin-left:2px}.donut{flex-direction:column;align-items: center;gap:12px}.donut svg{width:min(230px,78%);height:auto}.donut-total{font-size:24px}.card.tint-gray{background:color-mix(in srgb,var(--c-gray)20%,var(--card))}.card.tint-brown{background:color-mix(in srgb,var(--c-brown)22%,var(--card))}.card.tint-orange{background:color-mix(in srgb,var(--c-orange)22%,var(--card))}.card.tint-yellow{background:color-mix(in srgb,var(--c-yellow)22%,var(--card))}.card.tint-green{background:color-mix(in srgb,var(--c-green)20%,var(--card))}.card.tint-blue{background:color-mix(in srgb,var(--c-blue)20%,var(--card))}.card.tint-purple{background:color-mix(in srgb,var(--c-purple)20%,var(--card))}.card.tint-pink{background:color-mix(in srgb,var(--c-pink)20%,var(--card))}.card.tint-red{background:color-mix(in srgb,var(--c-red)24%,var(--card))}.columns{align-items:stretch;gap:0}.col-resizer{cursor:col-resize;position:relative;touch-action:none;user-select:none;flex:none;width:32px}.col-resizer:after{content:"";position:absolute;background:var(--line2);opacity:0;border-radius:2px;width:3px;margin-left:-1.5px;transition:opacity .12s,background .12s;top:0;bottom:0;left:50%}.columns:hover>.col-resizer:after{opacity:1}.col-resizer:hover:after,.col-resizer.active:after{opacity:1;background:var(--blue)}.col-resizer:focus-visible:after{opacity:1;background:var(--blue)}@media (hover:none){.col-resizer:after{opacity:1}}@media (max-width:760px){.col-resizer{display:none}.columns{gap:4px}}.dbv.compact .dbv-bar{position:relative}.dbv.compact .dbv-tools{position:absolute;background:var(--callout);border-radius:6px;top:0;right:0}@container (width<=340px){.hbar-row{grid-template-columns:minmax(0,1fr);gap:2px}.hbar-label{text-align:left}}.rel-chip.inactive{opacity:.45}.rel-chip.inactive span{text-decoration:line-through}.page-link span,.rel-chip span{border-bottom:0}.secret{display:inline-flex;align-items: center;gap:4px;max-width:100%}.secret .v-text{letter-spacing:.02em}.sec-box{background:var(--hover);display:flex;border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;font-size:14px}.sec-code{letter-spacing:.08em;word-break:break-all;user-select:all;font:600 15px ui-monospace,SFMono-Regular,Menlo,monospace}.sec-log{display:flex;justify-content:space-between;gap:10px;padding:3px 0;font-size:13px}
