:root{--bg: #ffffff;--bg-sidebar: #f4f5f7;--surface: #ffffff;--surface-hover: #f0f1f4;--surface-selected: #e8eefe;--border: #e6e7ea;--text: #191919;--text-muted: #6b6f76;--text-faint: #a5a9b1;--accent: #4772fa;--accent-soft: #e8eefe;--prio-high: #e5405e;--prio-medium: #f2a33a;--prio-low: #4772fa;--overdue: #e5405e;--today: #4772fa;--ok: #34a853;--font: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Noto Sans JP", sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;--fs-12: 12px;--fs-13: 13px;--fs-14: 14px;--fs-16: 16px;--fs-20: 20px;--fs-28: 28px;--unit: 4px;--row-task: 36px;--row-side: 32px;--radius-row: 6px;--radius-card: 10px;--radius-modal: 12px;--radius-check: 4px;--shadow-pop: 0 4px 16px rgba(0, 0, 0, .12);--sidebar-w: 240px;--detail-w: 380px}[data-theme=dark]{--bg: #191919;--bg-sidebar: #202020;--surface: #262626;--surface-hover: #2e2e2e;--surface-selected: #2a3352;--border: #333333;--text: #e8e8e8;--text-muted: #9a9ea6;--text-faint: #6a6e76;--accent: #5b83ff;--accent-soft: #2a3352;--prio-low: #5b83ff;--today: #5b83ff;--shadow-pop: 0 4px 16px rgba(0, 0, 0, .5)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font);font-size:var(--fs-14);line-height:1.45;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{background:none;border:0;cursor:pointer}a{color:inherit;text-decoration:none}ul,ol{list-style:none}input,textarea{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button:focus-visible{outline-offset:0}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}*::-webkit-scrollbar-track{background:transparent}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.truncate{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:28px;padding:0 10px;border-radius:var(--radius-row);font-size:var(--fs-13);font-weight:500;white-space:nowrap;color:var(--text);background:transparent;border:1px solid var(--border)}.btn:hover{background:var(--surface-hover)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent);filter:brightness(.95)}.btn-ghost{border-color:transparent}.btn-danger{color:var(--prio-high)}.btn-sm{height:24px;padding:0 8px;font-size:var(--fs-12)}.iconbtn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-row);color:var(--text-muted)}.iconbtn:hover{background:var(--surface-hover);color:var(--text)}.iconbtn.active{color:var(--accent)}.iconbtn:disabled{opacity:.4;cursor:default}.iconbtn.sm{width:24px;height:24px}.check{flex:none;width:16px;height:16px;border-radius:var(--radius-check);border:1.5px solid var(--text-faint);background:transparent;display:inline-flex;align-items:center;justify-content:center;color:#fff}.check[data-prio="5"]{border-color:var(--prio-high)}.check[data-prio="3"]{border-color:var(--prio-medium)}.check[data-prio="1"]{border-color:var(--prio-low)}.check.checked{background:var(--text-faint);border-color:var(--text-faint)}.check.wontdo{background:transparent;color:var(--text-faint)}.check:hover{border-color:var(--accent)}.check svg{width:12px;height:12px}.input{height:28px;padding:0 8px;border:1px solid var(--border);border-radius:var(--radius-row);background:var(--surface);font-size:var(--fs-13);width:100%}.input:focus{border-color:var(--accent)}textarea.input{height:auto;padding:6px 8px;resize:vertical;line-height:1.45}select.input{padding-right:24px}.field{display:flex;flex-direction:column;gap:4px}.field>label{font-size:var(--fs-12);color:var(--text-muted)}.field-row{display:flex;align-items:center;gap:8px}.popover{position:fixed;z-index:1000;min-width:160px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-pop);padding:4px;font-size:var(--fs-13)}.menu-item{display:flex;align-items:center;gap:8px;width:100%;height:28px;padding:0 8px;border-radius:var(--radius-row);text-align:left;font-size:var(--fs-13);color:var(--text)}.menu-item:hover,.menu-item.active{background:var(--surface-hover)}.menu-item.danger{color:var(--prio-high)}.menu-item.checked{color:var(--accent)}.menu-item svg{width:14px;height:14px;color:var(--text-muted);flex:none}.menu-item .grow{flex:1}.menu-sep{height:1px;background:var(--border);margin:4px 0}.menu-label{font-size:var(--fs-12);color:var(--text-muted);padding:4px 8px}.dialog-backdrop{position:fixed;inset:0;z-index:900;background:#00000040;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh}.dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-modal);width:440px;max-width:calc(100vw - 32px);max-height:76vh;display:flex;flex-direction:column}.dialog-head{display:flex;align-items:center;height:44px;padding:0 16px;border-bottom:1px solid var(--border);font-size:var(--fs-16);font-weight:600}.dialog-head .iconbtn{margin-left:auto}.dialog-body{padding:16px;overflow:auto;display:flex;flex-direction:column;gap:12px}.dialog-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border)}.kbd{display:inline-block;min-width:18px;padding:0 5px;height:18px;line-height:16px;border:1px solid var(--border);border-radius:4px;font-size:11px;font-family:var(--font-mono);color:var(--text-muted);text-align:center;background:var(--bg-sidebar)}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-row);padding:2px;gap:2px}.segmented button{height:22px;padding:0 8px;border-radius:4px;font-size:var(--fs-12);color:var(--text-muted)}.segmented button.on{background:var(--surface-selected);color:var(--accent)}.empty{padding:32px 16px;text-align:center;color:var(--text-faint);font-size:var(--fs-13)}.tooltip{position:fixed;z-index:1100;padding:3px 8px;font-size:var(--fs-12);background:var(--text);color:var(--bg);border-radius:4px;pointer-events:none;white-space:nowrap}.color-swatches{display:grid;grid-template-columns:repeat(6,22px);gap:6px;padding:4px}.swatch{width:22px;height:22px;border-radius:50%;border:2px solid transparent}.swatch.on{border-color:var(--text)}.swatch.none{background:transparent;border-color:var(--border);position:relative}.swatch.none:after{content:"";position:absolute;left:3px;right:3px;top:50%;height:1px;background:var(--text-faint);transform:rotate(-45deg)}.chip{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 6px;border-radius:4px;font-size:var(--fs-12);background:var(--surface-hover);color:var(--text-muted);white-space:nowrap}.chip.accent{background:var(--accent-soft);color:var(--accent)}.chip button{display:inline-flex;color:inherit;opacity:.7}.chip button:hover{opacity:1}.chip .dot{width:8px;height:8px;border-radius:50%}.dp{width:280px;padding:8px;display:flex;flex-direction:column;gap:8px}.dp-shortcuts{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.dp-shortcuts button{height:26px;border-radius:var(--radius-row);font-size:var(--fs-12);border:1px solid var(--border);color:var(--text)}.dp-shortcuts button:hover{background:var(--surface-hover)}.dp-head{display:flex;align-items:center;justify-content:space-between;height:28px;font-weight:500}.dp-grid{display:grid;grid-template-columns:repeat(7,1fr)}.dp-grid .wd{text-align:center;font-size:11px;color:var(--text-faint);height:20px;line-height:20px}.dp-grid button{height:30px;border-radius:var(--radius-row);font-size:var(--fs-13);color:var(--text)}.dp-grid button.other{color:var(--text-faint)}.dp-grid button.today{color:var(--accent);font-weight:600}.dp-grid button.sel{background:var(--accent);color:#fff}.dp-grid button:hover:not(.sel){background:var(--surface-hover)}.dp-row{display:flex;align-items:center;gap:8px;height:28px;font-size:var(--fs-13)}.dp-row>span:first-child{color:var(--text-muted);width:80px;flex:none;font-size:var(--fs-12)}.dp-row select,.dp-row input{flex:1;height:26px;border:1px solid var(--border);border-radius:var(--radius-row);background:var(--surface);padding:0 6px;font-size:var(--fs-13)}.dp-foot{display:flex;justify-content:flex-end;gap:6px;padding-top:4px;border-top:1px solid var(--border)}.dp-sub{display:flex;flex-direction:column;gap:6px;padding:6px;border:1px solid var(--border);border-radius:var(--radius-row)}.dp-weekdays{display:flex;gap:4px}.dp-weekdays button{flex:1;height:24px;border-radius:4px;font-size:var(--fs-12);border:1px solid var(--border);color:var(--text-muted)}.dp-weekdays button.on{background:var(--surface-selected);color:var(--accent);border-color:transparent}.dp-reminders{display:flex;flex-direction:column;gap:4px}.dp-reminder{display:flex;align-items:center;gap:6px;font-size:var(--fs-12)}.dp-reminder .grow{flex:1}.shell{display:flex;height:100%}.sidebar{width:var(--sidebar-w);flex:none;background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;position:relative}.sidebar-scroll{flex:1;overflow-y:auto;padding:8px}.sidebar-resizer{position:absolute;top:0;right:-3px;width:6px;height:100%;cursor:col-resize}.sidebar-section{margin-top:8px}.sidebar-section-head{display:flex;align-items:center;height:28px;padding:0 8px;color:var(--text-muted);font-size:var(--fs-12);font-weight:500;border-radius:var(--radius-row)}.sidebar-section-head:hover{background:var(--surface-hover)}.sidebar-section-head .iconbtn{margin-left:auto;opacity:0}.sidebar-section-head:hover .iconbtn{opacity:1}.sidebar-section-head .chev{transition:transform .12s;margin-right:4px}.sidebar-section-head .chev.closed{transform:rotate(-90deg)}.side-item{display:flex;align-items:center;gap:8px;height:var(--row-side);padding:0 8px;border-radius:var(--radius-row);color:var(--text);font-size:var(--fs-13);width:100%;text-align:left;cursor:default}.side-item:hover{background:var(--surface-hover)}.side-item.selected{background:var(--surface-selected);color:var(--accent)}.side-item svg.icon{width:16px;height:16px;color:var(--text-muted);flex:none}.side-item.selected svg.icon{color:var(--accent)}.side-item .name{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.side-item .count{font-size:var(--fs-12);color:var(--text-faint)}.side-item .count.warn{color:var(--overdue)}.side-item .chev{width:14px;height:14px;color:var(--text-faint);flex:none;transition:transform .12s}.side-item .chev.closed{transform:rotate(-90deg)}.side-item.nested{padding-left:24px}.side-item.nested2{padding-left:40px}.side-item.dragging{opacity:.5}.side-item.dropover{box-shadow:inset 0 -2px 0 var(--accent)}.sidebar-bottom{display:flex;align-items:center;justify-content:space-around;height:40px;border-top:1px solid var(--border);padding:0 4px;flex:none}.sync-dot{width:6px;height:6px;border-radius:50%;background:var(--text-faint)}.sync-dot.syncing{background:var(--accent)}.sync-dot.error{background:var(--overdue)}.sync-dot.idle{background:var(--ok)}.main{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg)}.main-head{display:flex;align-items:center;gap:4px;height:52px;padding:0 16px 0 12px;flex:none}.main-head h1{font-size:var(--fs-20);font-weight:600;flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:flex;align-items:center;gap:8px}.main-head h1 .sub{font-size:var(--fs-13);color:var(--text-faint);font-weight:400}.main-body{flex:1;overflow-y:auto;padding:0 16px 24px}.detail{width:var(--detail-w);flex:none;border-left:1px solid var(--border);background:var(--bg);display:flex;flex-direction:column;overflow:hidden}.qa{padding:4px 0 8px}.qa-box{display:flex;align-items:center;gap:8px;height:var(--row-task);padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-row);background:var(--surface)}.qa-box:focus-within{border-color:var(--accent)}.qa-box input{flex:1;border:0;background:transparent;font-size:var(--fs-14);height:100%}.qa-box svg{color:var(--text-faint);flex:none}.qa-chips{display:flex;flex-wrap:wrap;gap:4px;padding:6px 2px 0}.qa-hint{font-size:var(--fs-12);color:var(--text-faint);padding:4px 2px 0}.tl-group{margin-top:8px}.tl-group-head{display:flex;align-items:center;gap:6px;height:28px;padding:0 4px;font-size:var(--fs-13);font-weight:500;color:var(--text-muted);border-radius:var(--radius-row);cursor:default;user-select:none}.tl-group-head:hover{background:var(--surface-hover)}.tl-group-head .chev{width:14px;height:14px;color:var(--text-faint);transition:transform .12s}.tl-group-head .chev.closed{transform:rotate(-90deg)}.tl-group-head .count{font-weight:400;color:var(--text-faint);font-size:var(--fs-12)}.tl-group-head .actions{margin-left:auto;display:none}.tl-group-head:hover .actions{display:flex}.tl-group-head input{height:24px;border:1px solid var(--accent);border-radius:4px;padding:0 6px;font-size:var(--fs-13);background:var(--surface)}.tl-group-head.dropover{background:var(--surface-selected)}.task-row{display:flex;align-items:center;gap:8px;height:var(--row-task);padding:0 8px;border-radius:var(--radius-row);border-bottom:1px solid var(--border);position:relative;cursor:default;user-select:none}.task-row:hover{background:var(--surface-hover)}.task-row.selected{background:var(--surface-selected)}.task-row.dragging{opacity:.4}.task-row.overlay{background:var(--surface);box-shadow:var(--shadow-pop);border:0}.task-row .title{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:var(--fs-14)}.task-row.done .title{color:var(--text-faint);text-decoration:line-through}.task-row .meta{display:flex;align-items:center;gap:8px;flex:none;font-size:var(--fs-12);color:var(--text-muted)}.task-row .meta .date.overdue{color:var(--overdue)}.task-row .meta .date.today{color:var(--today)}.task-row .meta .cnt{display:inline-flex;align-items:center;gap:2px;color:var(--text-faint)}.task-row .meta .listname{color:var(--text-faint);max-width:120px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.task-row .pin{color:var(--text-muted);width:12px;height:12px;flex:none}.task-row .sub-toggle{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-faint);border-radius:4px;flex:none}.task-row .sub-toggle:hover{background:var(--border)}.task-row .sub-toggle.closed svg{transform:rotate(-90deg)}.task-row.depth-1{padding-left:32px}.task-row.depth-2{padding-left:56px}.task-row.depth-3{padding-left:80px}.task-row .grip{position:absolute;left:-14px;width:12px;height:100%;display:none;align-items:center;color:var(--text-faint);cursor:grab}.task-row:hover .grip{display:flex}.task-row .tagchips{display:inline-flex;gap:4px}.task-row .repeat-ic{color:var(--text-faint)}.bulkbar{position:sticky;bottom:0;display:flex;align-items:center;gap:4px;height:44px;padding:0 8px;margin:8px -16px -24px;background:var(--surface);border-top:1px solid var(--border);font-size:var(--fs-13)}.bulkbar .n{font-weight:500;margin-right:8px}.bulkbar .spacer{flex:1}.head-tools{display:flex;align-items:center;gap:2px}.dt-head{display:flex;align-items:center;gap:4px;height:44px;padding:0 8px 0 16px;border-bottom:1px solid var(--border);flex:none}.dt-head .spacer{flex:1}.dt-body{flex:1;overflow-y:auto;padding:12px 16px 16px;display:flex;flex-direction:column;gap:12px}.dt-title-row{display:flex;align-items:flex-start;gap:10px}.dt-title-row .check{margin-top:3px}.dt-title{flex:1;font-size:var(--fs-16);font-weight:600;border:0;background:transparent;resize:none;line-height:1.4;padding:0;min-height:22px}.dt-title.done{color:var(--text-faint);text-decoration:line-through}.dt-row{display:flex;align-items:center;gap:8px;min-height:28px;font-size:var(--fs-13)}.dt-row>.lbl{width:72px;flex:none;color:var(--text-muted);font-size:var(--fs-12)}.dt-row .val{flex:1;min-width:0}.dt-btn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 8px;border-radius:var(--radius-row);font-size:var(--fs-13);color:var(--text);max-width:100%}.dt-btn:hover{background:var(--surface-hover)}.dt-btn.muted{color:var(--text-muted)}.dt-btn.overdue{color:var(--overdue)}.dt-btn.today{color:var(--today)}.dt-btn svg{flex:none;color:var(--text-muted)}.dt-sep{height:1px;background:var(--border)}.dt-section-head{display:flex;align-items:center;height:24px;font-size:var(--fs-12);color:var(--text-muted)}.dt-section-head .actions{margin-left:auto;display:flex;gap:2px}.dt-content{min-height:120px;border:0;background:transparent;font-size:var(--fs-14);line-height:1.6;resize:none;padding:0;width:100%}.dt-preview{font-size:var(--fs-14);line-height:1.6;min-height:60px}.dt-preview p,.dt-preview ul,.dt-preview ol,.dt-preview pre,.dt-preview blockquote,.dt-preview h1,.dt-preview h2,.dt-preview h3{margin:0 0 8px}.dt-preview ul{list-style:disc;padding-left:20px}.dt-preview ol{list-style:decimal;padding-left:20px}.dt-preview h1{font-size:var(--fs-16);font-weight:600}.dt-preview h2,.dt-preview h3{font-size:var(--fs-14);font-weight:600}.dt-preview code{font-family:var(--font-mono);font-size:12px;background:var(--surface-hover);padding:1px 4px;border-radius:3px}.dt-preview pre{background:var(--surface-hover);padding:8px;border-radius:var(--radius-row);overflow-x:auto}.dt-preview a{color:var(--accent)}.dt-preview blockquote{border-left:2px solid var(--border);padding-left:8px;color:var(--text-muted)}.dt-preview.empty-note{color:var(--text-faint)}.ci-row{display:flex;align-items:center;gap:8px;height:28px}.ci-row input.ci-title{flex:1;border:0;background:transparent;font-size:var(--fs-13);height:100%}.ci-row.done input.ci-title{color:var(--text-faint);text-decoration:line-through}.ci-row .ci-date{font-size:var(--fs-12);color:var(--text-muted)}.ci-row .iconbtn{opacity:0}.ci-row:hover .iconbtn{opacity:1}.ci-row .grip{color:var(--text-faint);cursor:grab;display:inline-flex}.ci-add{display:flex;align-items:center;gap:8px;height:28px;color:var(--text-faint);font-size:var(--fs-13)}.ci-add input{flex:1;border:0;background:transparent;font-size:var(--fs-13)}.sub-row{display:flex;align-items:center;gap:8px;height:28px;font-size:var(--fs-13);border-radius:4px;padding:0 4px}.sub-row:hover{background:var(--surface-hover)}.sub-row .t{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sub-row.done .t{color:var(--text-faint);text-decoration:line-through}.att-row{display:flex;align-items:center;gap:8px;height:28px;font-size:var(--fs-13)}.att-row .name{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.att-row .size{color:var(--text-faint);font-size:var(--fs-12)}.dt-foot{display:flex;align-items:center;justify-content:space-between;height:32px;padding:0 16px;border-top:1px solid var(--border);font-size:var(--fs-12);color:var(--text-faint);flex:none}.tagpick{width:240px;padding:4px}.tagpick input{width:100%;height:28px;border:0;border-bottom:1px solid var(--border);background:transparent;padding:0 8px;font-size:var(--fs-13);margin-bottom:4px}.act-row{display:flex;gap:8px;font-size:var(--fs-12);padding:4px 0;border-bottom:1px solid var(--border)}.act-row .when{color:var(--text-faint);flex:none;width:120px}.dt-chips{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.num-input{width:64px;height:26px;border:1px solid var(--border);border-radius:var(--radius-row);padding:0 6px;font-size:var(--fs-13);background:var(--surface)}.plain-row{display:flex;align-items:center;gap:8px;height:var(--row-task);padding:0 8px;border-bottom:1px solid var(--border);font-size:var(--fs-14)}.plain-row .title{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.plain-row .sub{color:var(--text-faint);font-size:var(--fs-12)}.plain-row .actions{display:flex;gap:2px;opacity:0}.plain-row:hover .actions{opacity:1}.plain-row.done .title{color:var(--text-faint);text-decoration:line-through}.date-head{height:28px;display:flex;align-items:center;margin-top:12px;font-size:var(--fs-13);font-weight:500;color:var(--text-muted)}.summary-tools{display:flex;align-items:center;gap:8px;margin:8px 0}.summary-text{width:100%;min-height:360px;font-family:var(--font-mono);font-size:var(--fs-13);line-height:1.6}.palette{width:560px}.palette input.pal-input{width:100%;height:44px;border:0;border-bottom:1px solid var(--border);background:transparent;padding:0 16px;font-size:var(--fs-16)}.palette .pal-list{max-height:400px;overflow-y:auto;padding:4px}.palette .menu-item{height:32px}.palette .menu-item .hint{color:var(--text-faint);font-size:var(--fs-12)}.settings{width:720px;max-width:calc(100vw - 32px)}.settings .dialog-body{padding:0;flex-direction:row;gap:0;height:70vh}.settings-nav{width:160px;flex:none;border-right:1px solid var(--border);padding:8px;background:var(--bg-sidebar)}.settings-body{flex:1;overflow-y:auto;padding:16px 20px}.settings-body h2{font-size:var(--fs-16);font-weight:600;margin-bottom:12px}.set-row{display:flex;align-items:center;min-height:40px;border-bottom:1px solid var(--border);font-size:var(--fs-13);gap:12px}.set-row .lbl{flex:1}.set-row .lbl .desc{color:var(--text-faint);font-size:var(--fs-12)}.set-row .ctl{flex:none;display:flex;align-items:center;gap:8px}.set-row .ctl .input{width:200px}.set-row .ctl .input.w-sm{width:120px}.set-row .ctl .input.w-lg{width:320px}.set-group{margin-bottom:20px}.shortcut-table{width:100%;font-size:var(--fs-13);border-collapse:collapse}.shortcut-table td{height:32px;border-bottom:1px solid var(--border)}.shortcut-table td:last-child{text-align:right}.ph{height:100%;display:flex;flex-direction:column}.ph-head{display:flex;align-items:center;gap:8px;height:52px;padding:0 12px}.ph-head h1{font-size:var(--fs-20);font-weight:600}.mini{height:100%;display:flex;flex-direction:column;padding:12px;gap:8px;background:var(--bg)}.mini-head{display:flex;align-items:center;gap:8px;font-size:var(--fs-13);color:var(--text-muted);height:24px}.mini-head .name{flex:1;font-weight:500;color:var(--text)}.mini-list{flex:1;overflow-y:auto}.filter-editor{display:flex;flex-direction:column;gap:12px}.filter-editor .chips{display:flex;flex-wrap:wrap;gap:4px}.filter-editor .chips button{height:24px;padding:0 8px;border:1px solid var(--border);border-radius:4px;font-size:var(--fs-12);color:var(--text-muted)}.filter-editor .chips button.on{background:var(--surface-selected);color:var(--accent);border-color:transparent}.cal,.kb,.tlv,.mx{height:100%;display:flex;flex-direction:column;background:var(--bg)}.cal-head,.kb-head,.tlv-head,.mx-head{display:flex;align-items:center;gap:8px;height:52px;padding:0 16px 0 12px;flex:none;border-bottom:1px solid var(--border)}.cal-title,.kb-title,.tlv-title,.mx-title{font-size:var(--fs-20);font-weight:600;white-space:nowrap;display:flex;align-items:center;gap:8px}.kb-title .sub,.tlv-title .sub{font-size:var(--fs-13);color:var(--text-faint);font-weight:400}.cal-head .spacer,.kb-head .spacer,.tlv-head .spacer,.mx-head .spacer,.cal-bulk .spacer{flex:1}.cal-nav{display:flex;align-items:center;gap:2px}.cal-body,.kb-body,.tlv-body,.mx-body{flex:1;min-height:0;display:flex}.cal-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.cal-notice{height:28px;display:flex;align-items:center;padding:0 16px;font-size:var(--fs-12);color:var(--text-muted);border-bottom:1px solid var(--border);flex:none}.cal-bulk{display:flex;align-items:center;gap:4px;height:40px;padding:0 12px;border-bottom:1px solid var(--border);font-size:var(--fs-13);flex:none;background:var(--surface)}.cal-bulk .n{font-weight:500;margin-right:8px}.cal-bulk .days{display:inline-flex;align-items:center;gap:2px}.cal-listfilter{width:220px}.cal-listfilter .dot{width:8px;height:8px;border-radius:50%;flex:none}.cal-inline{height:24px;width:100%;border:1px solid var(--accent);border-radius:4px;padding:0 6px;font-size:var(--fs-12);background:var(--surface)}.cal-rubber{position:fixed;z-index:50;border:1px solid var(--accent);background:var(--accent-soft);opacity:.5;pointer-events:none}.cal-ghost{position:fixed;z-index:1200;pointer-events:none;max-width:240px;padding:4px 8px;font-size:var(--fs-12);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-row);box-shadow:var(--shadow-pop);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-ghost .to{margin-left:8px;color:var(--accent)}.cal-ev{--ev-color: var(--text-faint);cursor:default;user-select:none}.cal-chip{display:flex;align-items:center;gap:4px;height:20px;padding:0 4px 0 0;border-radius:4px;font-size:var(--fs-12);color:var(--text);overflow:hidden;white-space:nowrap}.cal-chip .band{flex:none;width:2px;height:14px;border-radius:1px;background:var(--ev-color);margin-left:2px}.cal-chip .pre{color:var(--text-muted);flex:none}.cal-chip .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.cal-chip .ic,.cal-block .ic{color:var(--text-faint);flex:none}.cal-chip:hover{background:var(--surface-hover)}.cal-chip.selected,.cal-block.selected{background:var(--surface-selected)}.cal-chip.done .t,.cal-block.done .bt{color:var(--text-faint);text-decoration:line-through}.cal-chip.kind-virtual,.cal-block.kind-virtual{color:var(--text-muted);border:1px dashed var(--border)}.cal-chip.kind-virtual .band,.cal-block.kind-virtual:before{opacity:.5}.cal-chip.kind-habit .hb{width:12px;height:12px;flex:none;border:1px solid var(--text-faint);border-radius:3px;color:transparent;padding:1px;margin-left:2px}.cal-chip.kind-habit .hb.on{background:var(--text-faint);border-color:var(--text-faint);color:#fff}.cal-chip.kind-habit .band{display:none}.cal-chip.kind-habit .t,.cal-chip.kind-ics .t,.cal-chip.kind-check .t{color:var(--text-muted)}.cal-chip.kind-check:before{content:"·";color:var(--text-faint)}.cal-block{position:absolute;overflow:hidden;padding:2px 4px 2px 6px;border-radius:4px;background:var(--surface-hover);font-size:var(--fs-12);line-height:1.3;z-index:1}.cal-block:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--ev-color)}.cal-block .bt{display:flex;align-items:center;gap:4px}.cal-block .bt .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-block .bs{color:var(--text-muted);font-size:11px}.cal-block.short{padding-top:0;padding-bottom:0;line-height:16px}.cal-block:hover{background:var(--surface-selected)}.cal-block.kind-focus{background:transparent;border:1px solid var(--border);color:var(--text-faint);z-index:0}.cal-block.kind-focus:before{display:none}.cal-block.kind-ics{background:var(--bg-sidebar);color:var(--text-muted)}.cal-block .rz{position:absolute;left:0;right:0;bottom:0;height:6px;cursor:ns-resize}.cal-tg{flex:1;min-height:0;display:flex;flex-direction:column;position:relative}.cal-tg-head,.cal-tg-allday,.cal-tg-body{display:flex}.cal-tg-gutter{flex:none;width:calc(var(--gutters, 1) * 56px)}.cal-tg-head{height:48px;border-bottom:1px solid var(--border);flex:none}.cal-tg-tzs{display:flex;align-items:flex-end;justify-content:flex-end;padding-bottom:4px}.cal-tg-tzs .tzl{width:56px;text-align:right;padding-right:8px;font-size:11px;color:var(--text-faint);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cal-tg-dayhead{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;border-left:1px solid var(--border)}.cal-tg-dayhead .wd{font-size:var(--fs-12);color:var(--text-muted)}.cal-tg-dayhead .num{font-size:var(--fs-16);font-weight:500;line-height:1.2}.cal-tg-dayhead.today .num{color:var(--accent)}.cal-tg-allday{min-height:28px;max-height:120px;overflow-y:auto;border-bottom:1px solid var(--border);flex:none}.cal-tg-allday .lbl{font-size:11px;color:var(--text-faint);text-align:right;padding:6px 8px 0 0}.cal-tg-adcell{flex:1;min-width:0;border-left:1px solid var(--border);padding:4px 2px;display:flex;flex-direction:column;gap:2px}.cal-tg-adcell.dropover,.cal-tg-col.dropover,.cal-mg-cell.dropover{background:var(--accent-soft)}.cal-tg-scroll{flex:1;min-height:0;overflow-y:auto}.cal-tg-body,.cal-tg-hours{position:relative}.cal-tg-hours .hr{position:absolute;right:0;display:flex;justify-content:flex-end;transform:translateY(-50%)}.cal-tg-hours .tzh{width:56px;text-align:right;padding-right:8px;font-size:11px;color:var(--text-faint)}.cal-tg-col{flex:1;min-width:0;position:relative;border-left:1px solid var(--border)}.cal-tg-col .hline{position:absolute;left:0;right:0;height:1px;background:var(--border)}.cal-tg-col.today{background:color-mix(in srgb,var(--accent-soft) 35%,transparent)}.cal-tg-ghost{position:absolute;left:0;right:0;height:1px;background:var(--accent);z-index:3;pointer-events:none}.cal-tg-ghost span{position:absolute;left:4px;top:-16px;font-size:11px;color:var(--accent);background:var(--surface);padding:0 2px}.cal-tg-create{position:absolute;left:2px;right:2px;z-index:4;display:flex;align-items:center;gap:4px;background:var(--surface)}.cal-tg-create .tm{font-size:11px;color:var(--text-muted);flex:none}.cal-now{position:absolute;left:0;right:0;height:1px;background:var(--accent);z-index:2;pointer-events:none}.cal-now:before{content:"";position:absolute;left:-4px;top:-3px;width:7px;height:7px;border-radius:50%;background:var(--accent)}.cal-mg{flex:1;min-height:0;display:flex;flex-direction:column}.cal-mg-wd{display:grid;grid-template-columns:repeat(7,1fr);height:28px;flex:none;border-bottom:1px solid var(--border)}.cal-mg-wd span{display:flex;align-items:center;justify-content:center;font-size:var(--fs-12);color:var(--text-muted)}.cal-mg-rows{flex:1;min-height:0;display:grid;grid-template-columns:repeat(7,1fr)}.cal-mg-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:2px;min-height:0;display:flex;flex-direction:column;overflow:hidden}.cal-mg-cell:nth-child(7n){border-right:0}.cal-mg-cell .num{height:24px;padding:0 6px;align-self:flex-start;font-size:var(--fs-13);color:var(--text);border-radius:var(--radius-row)}.cal-mg-cell .num:hover{background:var(--surface-hover)}.cal-mg-cell.today .num{color:var(--accent);font-weight:600}.cal-mg-cell.other .num{color:var(--text-faint)}.cal-mg-cell.other .cal-chip{opacity:.6}.cal-mg-cell .evs{display:flex;flex-direction:column;gap:1px;min-height:0}.cal-mg-cell .more{height:18px;padding:0 6px;text-align:left;font-size:11px;color:var(--text-muted);border-radius:4px}.cal-mg-cell .more:hover{background:var(--surface-hover)}.cal-year{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:16px 24px;padding:16px 24px;align-content:start}@media (max-width: 1100px){.cal-year{grid-template-columns:repeat(3,1fr)}}.cal-year-month .mh{font-size:var(--fs-13);font-weight:500;height:24px}.cal-year-month .mg{display:grid;grid-template-columns:repeat(7,1fr)}.cal-year-month .wd{font-size:10px;color:var(--text-faint);text-align:center;height:16px}.cal-year-month .dy{position:relative;height:24px;font-size:var(--fs-12);color:var(--text);border-radius:4px}.cal-year-month .dy:hover{background:var(--surface-hover)}.cal-year-month .dy.other{color:var(--text-faint);opacity:.5}.cal-year-month .dy.today{color:var(--accent);font-weight:600}.cal-year-month .dot{position:absolute;left:50%;bottom:1px;width:3px;height:3px;margin-left:-1.5px;border-radius:50%;background:var(--text-faint)}.cal-year-month .dot.many{width:5px;height:5px;margin-left:-2.5px}.cal-agenda{flex:1;overflow-y:auto;padding:0 16px 24px}.cal-agenda-day .dh{height:28px;margin-top:12px;display:flex;align-items:center;gap:8px;font-size:var(--fs-13);font-weight:500;color:var(--text-muted)}.cal-agenda-day .dh.today{color:var(--accent)}.cal-agenda-day .dh .sub{font-weight:400;font-size:var(--fs-12)}.cal-agenda-row{display:flex;align-items:center;gap:8px;height:var(--row-task);border-bottom:1px solid var(--border)}.cal-agenda-row .tm{width:96px;flex:none;font-size:var(--fs-12);color:var(--text-muted)}.cal-agenda-row .cal-chip.grow{flex:1;min-width:0;height:28px;font-size:var(--fs-14)}.cal-agenda-row .ln{font-size:var(--fs-12);color:var(--text-faint);flex:none}.cal-arrange{width:260px;flex:none;border-left:1px solid var(--border);display:flex;flex-direction:column;background:var(--bg)}.cal-arrange .ah{display:flex;align-items:center;gap:6px;height:44px;padding:0 8px 0 12px;border-bottom:1px solid var(--border);font-size:var(--fs-13);font-weight:500}.cal-arrange .ah .ttl{flex:1}.cal-arrange .ah .cnt{color:var(--text-faint);font-weight:400;font-size:var(--fs-12)}.cal-arrange .af{padding:8px 12px;border-bottom:1px solid var(--border)}.cal-arrange .al{flex:1;overflow-y:auto;padding:4px 8px}.cal-arrange .ar{display:flex;align-items:center;gap:6px;height:var(--row-task);padding:0 6px;border-radius:var(--radius-row);font-size:var(--fs-13);cursor:grab;user-select:none}.cal-arrange .ar:hover{background:var(--surface-hover)}.cal-arrange .ar.selected{background:var(--surface-selected)}.cal-arrange .ar .grip{color:var(--text-faint);flex:none}.cal-arrange .ar .t{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cal-arrange .ar .ln{font-size:11px;color:var(--text-faint);max-width:72px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cal-arrange .an{height:32px;display:flex;align-items:center;padding:0 12px;border-top:1px solid var(--border);font-size:11px;color:var(--text-faint)}.cal-sub-row{display:flex;align-items:center;gap:8px;height:32px;font-size:var(--fs-13)}.cal-sub-row .dot{width:8px;height:8px;border-radius:50%;flex:none}.cal-sub-row .cal-sub-name{width:140px;height:24px;border:1px solid transparent;border-radius:4px;padding:0 4px;background:transparent}.cal-sub-row .cal-sub-name:focus{border-color:var(--accent)}.cal-sub-row .url{flex:1;min-width:0;font-size:11px;color:var(--text-faint)}.cal-sub-row .err{font-size:11px;color:var(--overdue)}.kb-cols{flex:1;min-width:0;overflow-x:auto;overflow-y:hidden;display:flex;gap:12px;padding:12px 16px 16px;align-items:flex-start}.kb-col{width:280px;flex:none;max-height:100%;display:flex;flex-direction:column;background:var(--bg-sidebar);border-radius:var(--radius-card)}.kb-col.dropover{outline:1px solid var(--accent)}.kb-col-new{background:transparent;border:1px dashed var(--border)}.kb-col-head{display:flex;align-items:center;gap:6px;height:36px;padding:0 6px 0 12px;font-size:var(--fs-13);font-weight:500;color:var(--text-muted);flex:none}.kb-col-head .dot{width:8px;height:8px;border-radius:50%;flex:none}.kb-col-head .name{flex:1;min-width:0;color:var(--text)}.kb-col-head .cnt{font-weight:400;color:var(--text-faint);font-size:var(--fs-12)}.kb-col-head input{flex:1;height:24px;border:1px solid var(--accent);border-radius:4px;padding:0 6px;font-size:var(--fs-13);background:var(--surface)}.kb-col-head .iconbtn{opacity:0}.kb-col:hover .kb-col-head .iconbtn{opacity:1}.kb-col-body{flex:1;min-height:0;overflow-y:auto;padding:0 8px 8px;display:flex;flex-direction:column;gap:4px}.kb-card{display:flex;align-items:flex-start;gap:8px;min-height:var(--row-task);padding:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-row);cursor:default;user-select:none}.kb-card .check{margin-top:2px}.kb-card:hover{background:var(--surface-hover)}.kb-card.selected{background:var(--surface-selected);border-color:var(--accent)}.kb-card.dragging{opacity:.4}.kb-card.overlay{box-shadow:var(--shadow-pop);width:264px}.kb-card.done .t{color:var(--text-faint);text-decoration:line-through}.kb-card-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.kb-card-main .t{font-size:var(--fs-14);line-height:1.3;word-break:break-word}.kb-card-main .meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:var(--fs-12);color:var(--text-muted)}.kb-card-main .meta .date.overdue{color:var(--overdue)}.kb-card-main .meta .date.today{color:var(--today)}.kb-card-main .meta .cnt{display:inline-flex;align-items:center;gap:2px;color:var(--text-faint)}.kb-add{display:flex;align-items:center;gap:6px;height:32px;padding:0 8px;margin:0 8px 8px;border-radius:var(--radius-row);font-size:var(--fs-13);color:var(--text-muted);text-align:left;flex:none}.kb-add:hover{background:var(--surface-hover);color:var(--text)}.kb-col-new .kb-add{margin:0;width:100%;height:36px}.kb-add-input{height:32px;margin:0 8px 8px;padding:0 8px;border:1px solid var(--accent);border-radius:var(--radius-row);background:var(--surface);font-size:var(--fs-13);flex:none}.kb-col-new .kb-add-input{margin:2px}.tlv-main{flex:1;min-width:0;display:flex;flex-direction:column}.tlv-scroll{flex:1;min-height:0;overflow:auto;position:relative}.tlv-inner{position:relative}.tlv-headrow{position:sticky;top:0;z-index:4;display:flex;background:var(--bg);border-bottom:1px solid var(--border)}.tlv-corner{position:sticky;left:0;z-index:5;flex:none;display:flex;align-items:flex-end;padding:0 12px 6px;font-size:var(--fs-12);color:var(--text-muted);background:var(--bg);border-right:1px solid var(--border)}.tlv-timehead{position:relative;flex:none}.tlv-timehead .months{position:relative;height:22px;border-bottom:1px solid var(--border)}.tlv-timehead .months span{position:absolute;top:0;height:22px;line-height:22px;padding-left:6px;font-size:var(--fs-12);color:var(--text-muted);border-left:1px solid var(--border);overflow:hidden;white-space:nowrap}.tlv-timehead .ticks{position:relative;height:25px}.tlv-timehead .tick{position:absolute;top:0;height:25px;display:flex;align-items:center;justify-content:center;gap:3px;font-size:11px;color:var(--text-muted);border-left:1px solid var(--border)}.tlv-timehead .tick em{font-style:normal;color:var(--text-faint);font-size:10px}.tlv-timehead .tick.we{color:var(--text-faint)}.tlv-timehead .tick.today{color:var(--accent);font-weight:500}.tlv-rows{position:relative;z-index:1}.tlv-row-empty{padding:32px 12px;color:var(--text-faint);font-size:var(--fs-13);position:sticky;left:0}.tlv-grouprow,.tlv-taskrow{display:flex;border-bottom:1px solid var(--border)}.tlv-left{position:sticky;left:0;z-index:2;flex:none;display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--bg);border-right:1px solid var(--border);font-size:var(--fs-13);text-align:left}.tlv-taskrow:hover .tlv-left{background:var(--surface-hover)}.tlv-taskrow.selected .tlv-left{background:var(--surface-selected)}.tlv-taskrow.done .tlv-left .t{color:var(--text-faint);text-decoration:line-through}.tlv-taskrow.done .tlv-bar{background:var(--surface-hover);color:var(--text-faint)}.tlv-left .t{flex:1;min-width:0}.tlv-group{color:var(--text-muted);font-weight:500}.tlv-group .chev{color:var(--text-faint);transition:transform .12s;flex:none}.tlv-group .chev.closed{transform:rotate(-90deg)}.tlv-group .cnt{font-weight:400;color:var(--text-faint);font-size:var(--fs-12)}.tlv-grid{position:relative;flex:none}.tlv-grouprow .tlv-grid{background:var(--bg-sidebar)}.tlv-bar{position:absolute;top:6px;height:24px;display:flex;align-items:center;background:var(--surface-selected);border-radius:4px;font-size:var(--fs-12);cursor:grab;user-select:none;z-index:1}.tlv-bar .bt{flex:1;min-width:0;padding:0 4px}.tlv-bar .hl,.tlv-bar .hr{flex:none;width:6px;height:100%;cursor:ew-resize}.tlv-bar:hover{outline:1px solid var(--accent)}.tlv-todayline{position:absolute;bottom:0;width:1px;background:var(--accent);z-index:3;pointer-events:none}.tlv-weekends{position:absolute;bottom:0;z-index:0;pointer-events:none}.tlv-weekends span{position:absolute;top:0;bottom:0;background:var(--bg-sidebar);opacity:.6}.tlv-placeghost{position:absolute;bottom:0;background:var(--accent-soft);z-index:0;pointer-events:none}.tlv-unsched{flex:none;max-height:200px;display:flex;flex-direction:column;border-top:1px solid var(--border)}.tlv-unsched .uh{height:32px;display:flex;align-items:center;gap:8px;padding:0 12px;font-size:var(--fs-13);font-weight:500;color:var(--text-muted);flex:none}.tlv-unsched .uh .cnt{font-weight:400;color:var(--text-faint);font-size:var(--fs-12)}.tlv-unsched .uh .hint{margin-left:auto;font-weight:400;font-size:11px;color:var(--text-faint)}.tlv-unsched .ul{overflow-y:auto;padding:0 8px 8px}.tlv-unsched .ur{display:flex;align-items:center;gap:8px;height:var(--row-task);padding:0 8px;border-radius:var(--radius-row);font-size:var(--fs-13);cursor:grab;user-select:none}.tlv-unsched .ur:hover{background:var(--surface-hover)}.tlv-unsched .ur.selected{background:var(--surface-selected)}.tlv-unsched .ur .t{flex:1;min-width:0}.mx-grid{flex:1;min-width:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:1px;background:var(--border)}.mx-q{display:flex;flex-direction:column;min-height:0;background:var(--bg)}.mx-q.dropover{background:var(--accent-soft)}.mx-qh{display:flex;align-items:center;gap:8px;height:36px;padding:0 8px 0 16px;flex:none;font-size:var(--fs-13);font-weight:500;color:var(--text-muted)}.mx-q.q1 .mx-qh .name{color:var(--prio-high)}.mx-qh .name{flex:1}.mx-qh .cnt{font-weight:400;color:var(--text-faint);font-size:var(--fs-12)}.mx-qh .iconbtn{opacity:0}.mx-q:hover .mx-qh .iconbtn{opacity:1}.mx-ql{flex:1;min-height:0;overflow-y:auto;padding:0 12px 8px}.mx-row{display:flex;align-items:center;gap:8px;height:var(--row-task);padding:0 8px;border-radius:var(--radius-row);border-bottom:1px solid var(--border);font-size:var(--fs-14);cursor:default;user-select:none}.mx-row:hover{background:var(--surface-hover)}.mx-row.selected{background:var(--surface-selected)}.mx-row.dragging{opacity:.4}.mx-row.overlay{background:var(--surface);box-shadow:var(--shadow-pop);width:280px;border:0}.mx-row.adding{border-bottom:0}.mx-row .t{flex:1;min-width:0}.mx-row .date{font-size:var(--fs-12);color:var(--text-muted);flex:none}.mx-row .date.overdue{color:var(--overdue)}.mx-row .date.today{color:var(--today)}.mx-add{display:flex;align-items:center;gap:6px;height:32px;padding:0 8px;font-size:var(--fs-13);color:var(--text-faint);border-radius:var(--radius-row)}.mx-add:hover{background:var(--surface-hover);color:var(--text)}.pg{height:100%;display:flex;flex-direction:column;background:var(--bg)}.pg-head{display:flex;align-items:center;gap:8px;height:52px;padding:0 16px 0 12px;flex:none;border-bottom:1px solid var(--border)}.pg-head h1{font-size:var(--fs-20);font-weight:600;margin-right:8px}.pg-head .spacer{flex:1}.pg-head .back{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 8px;border-radius:var(--radius-row);color:var(--text-muted);font-size:var(--fs-13)}.pg-head .back:hover{background:var(--surface-hover);color:var(--text)}.pg-body{flex:1;overflow-y:auto;padding:0 16px 24px}.pg-row{flex:1;min-height:0;display:flex}.pg-main{flex:1;min-width:0;overflow-y:auto;padding:0 16px 24px}.pg-detail{width:var(--detail-w);flex:none;border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.pg-detail .dt-head .spacer{flex:1}.datenav{display:flex;align-items:center;gap:4px}.datenav-label{min-width:140px;text-align:center;font-size:var(--fs-13)}.stat-grid{display:grid;gap:8px}.stat-grid.two{grid-template-columns:repeat(2,1fr)}.stat-grid.four{grid-template-columns:repeat(4,1fr)}.stat-grid.five{grid-template-columns:repeat(5,1fr)}.stat{display:flex;flex-direction:column;gap:2px;padding:8px;border:1px solid var(--border);border-radius:var(--radius-row);min-width:0}.stat.big{align-items:flex-start}.stat-label{font-size:var(--fs-12);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-value{font-size:var(--fs-16);font-weight:500}.stat-value.warn{color:var(--overdue)}.chart{width:100%}.chart-svg{width:100%;height:auto;display:block}.chart-foot{display:flex;align-items:center;gap:12px;min-height:20px;font-size:var(--fs-12);color:var(--text-muted)}.chart-legend{display:flex;gap:12px}.chart-legend span{display:inline-flex;align-items:center;gap:4px}.chart-legend i{display:inline-block;width:12px;height:2px;border-radius:1px}.chart-hover{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hbars{display:flex;flex-direction:column;gap:4px}.hbar{display:grid;grid-template-columns:120px 1fr 48px;align-items:center;gap:8px;height:24px;font-size:var(--fs-13)}.hbar-label{color:var(--text)}.hbar-track{height:8px;background:var(--surface-hover);border-radius:2px;overflow:hidden}.hbar-fill{height:100%;background:var(--accent);border-radius:0 2px 2px 0}.hbar-value{text-align:right;font-size:var(--fs-12);color:var(--text-muted);font-variant-numeric:tabular-nums}.heat{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.heat-wd{text-align:center;font-size:11px;color:var(--text-faint);height:18px;line-height:18px}.heat-cell{height:28px;display:flex;align-items:center;justify-content:center;border-radius:4px;font-size:var(--fs-12);color:var(--text-muted);background:var(--surface-hover)}.heat-cell.none,.heat-cell.future{background:transparent;color:var(--text-faint)}.heat-cell.done{background:var(--accent);color:#fff}.heat-cell.partial{background:var(--accent-soft);color:var(--accent)}.heat-cell.skipped{background:transparent;border:1px solid var(--border);color:var(--text-faint)}.heat-cell.missed{background:var(--surface-hover);color:var(--text-faint)}.heat-cell.has{color:var(--text)}.habit-row{display:flex;align-items:center;gap:8px;height:var(--row-task);padding:0 8px;border-radius:var(--radius-row);border-bottom:1px solid var(--border);cursor:default;user-select:none}.habit-row:hover{background:var(--surface-hover)}.habit-row.selected{background:var(--surface-selected)}.habit-row.inactive .habit-name,.habit-row.inactive .habit-icon{color:var(--text-faint)}.habit-icon{display:inline-flex;color:var(--text-muted);flex:none}.habit-name{flex:1;min-width:0;font-size:var(--fs-14)}.habit-meta{font-size:var(--fs-12);color:var(--text-muted);flex:none}.habit-row.inactive .habit-meta{color:var(--text-faint)}.habit-count{font-size:var(--fs-12);color:var(--text-muted);flex:none;font-variant-numeric:tabular-nums}.habit-check{flex:none;width:28px;height:28px;border-radius:50%;border:1.5px solid var(--text-faint);display:inline-flex;align-items:center;justify-content:center;color:#fff;background:transparent}.habit-check:hover{border-color:var(--accent)}.habit-check.done{background:var(--accent);border-color:var(--accent)}.habit-check.partial{border-color:var(--accent)}.habit-check.skipped{border-color:var(--border);color:var(--text-faint)}.habit-row.inactive .habit-check{border-color:var(--border)}.hd-icon{display:inline-flex;color:var(--text-muted)}.hd-name{font-size:var(--fs-16);font-weight:600;min-width:0}.hlogs{display:flex;flex-direction:column}.hlog{display:flex;align-items:center;gap:6px;height:32px;border-bottom:1px solid var(--border);font-size:var(--fs-13)}.hlog-date{width:40px;flex:none;color:var(--text-muted);font-size:var(--fs-12);font-variant-numeric:tabular-nums}.hlog .num-input{width:56px}.hlog-status.input{width:88px;height:26px;flex:none}.hlog-note.input{flex:1;min-width:0;height:26px;border-color:transparent;background:transparent}.hlog-note.input:hover,.hlog-note.input:focus{border-color:var(--border);background:var(--surface)}.hlog .iconbtn{opacity:0}.hlog:hover .iconbtn{opacity:1}.hf-icons{display:grid;grid-template-columns:repeat(12,28px);gap:4px}.hf-icon{width:28px;height:28px;border-radius:var(--radius-row);border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted)}.hf-icon:hover{background:var(--surface-hover)}.hf-icon.on{background:var(--surface-selected);border-color:var(--accent);color:var(--accent)}.hf-reminders{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.hf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.hf-grid.two{grid-template-columns:repeat(2,1fr)}.hf-check{display:flex;align-items:center;gap:8px;font-size:var(--fs-13);height:24px}.focus{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 0 16px;border-bottom:1px solid var(--border)}.focus-mode{display:flex}.focus-timer{position:relative;width:240px;height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.focus-ring{position:absolute;inset:0;width:100%;height:100%}.focus-phase{font-size:var(--fs-13);color:var(--text-muted)}.focus-clock{font-size:56px;font-weight:500;line-height:1;letter-spacing:-.5px;color:var(--text)}.focus-timer.paused .focus-clock{color:var(--text-faint)}.focus-sub{font-size:var(--fs-12);color:var(--text-faint);min-height:16px}.focus-target{display:flex}.target-btn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-row);font-size:var(--fs-13);color:var(--text-muted);max-width:320px}.target-btn:hover{background:var(--surface-hover);color:var(--text)}.target-btn:disabled{opacity:.6;cursor:default}.target-btn.wide{width:100%;max-width:none;justify-content:flex-start}.target-btn .truncate{flex:1;min-width:0;text-align:left}.target-pop{width:300px;padding:0}.target-search{width:100%;height:32px;border:0;border-bottom:1px solid var(--border);background:transparent;padding:0 10px;font-size:var(--fs-13)}.target-list{max-height:280px;overflow-y:auto;padding:4px}.focus-buttons{display:flex;gap:8px}.focus-noise{display:flex;align-items:center;gap:8px;font-size:var(--fs-12)}.focus-noise .input.w-sm{width:140px;height:26px}.focus-bottom{padding-top:12px;display:flex;flex-direction:column;gap:8px}.focus-tabs{display:flex}.flog{display:flex;flex-direction:column}.flog-time{font-size:var(--fs-12);color:var(--text-muted);font-variant-numeric:tabular-nums;width:96px;flex:none}.flog-min{font-size:var(--fs-13);font-variant-numeric:tabular-nums;width:48px;text-align:right;flex:none}.fstats{display:flex;flex-direction:column;gap:8px}.stats{display:flex;flex-direction:column;gap:12px;padding-top:12px}.card{border:1px solid var(--border);border-radius:var(--radius-card);padding:12px;display:flex;flex-direction:column;gap:8px;min-width:0}.card-head{display:flex;align-items:center;height:24px;font-size:var(--fs-13);font-weight:500}.card-head .actions{margin-left:auto;display:flex;gap:2px}.score-card{gap:12px}.score{display:flex;flex-direction:column;gap:2px}.score-value{font-size:var(--fs-28);font-weight:500;line-height:1.2}.score-level{font-size:var(--fs-13);color:var(--text-muted)}.stats-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stats-cols.three{grid-template-columns:repeat(3,1fr)}.report{font-family:var(--font-mono);font-size:var(--fs-13);line-height:1.6;white-space:pre-wrap;color:var(--text)}@media (max-width: 960px){.stats-cols,.stats-cols.three{grid-template-columns:1fr}.stat-grid.five{grid-template-columns:repeat(3,1fr)}}.cd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;padding-top:12px}.cd-card{border:1px solid var(--border);border-left-width:3px;border-radius:var(--radius-card);padding:12px;display:flex;flex-direction:column;gap:4px;cursor:default;user-select:none;background:var(--surface)}.cd-card:hover{background:var(--surface-hover)}.cd-card.dragging{opacity:.4}.cd-name{font-size:var(--fs-14);display:flex;align-items:center;gap:6px}.cd-pin{color:var(--text-muted);flex:none}.cd-count{font-size:var(--fs-13);color:var(--text-muted);display:flex;align-items:baseline;gap:4px;margin:4px 0}.cd-count.today{color:var(--today);font-size:var(--fs-28);font-weight:500}.cd-days{font-size:var(--fs-28);font-weight:500;color:var(--text);line-height:1.1}.cd-date{font-size:var(--fs-12);color:var(--text-muted)}
