:root{--tc-bg: #fdfdf9;--tc-card: #ffffff;--tc-grid: rgba(92, 118, 150, .13);--tc-grid-cell: 24px;--tc-grid-image: linear-gradient(to right, var(--tc-grid) 1px, transparent 1px), linear-gradient(to bottom, var(--tc-grid) 1px, transparent 1px);--tc-ink: #2b2b33;--tc-muted: #7a7a85;--tc-border: #dcdad1;--tc-rule: #d2cfc1;--tc-accent: #3b4a99;--tc-accent-soft: #e9ecf8;--tc-good: #2f7a4c;--tc-danger: #c8433a;--tc-q-do: #d1453b;--tc-q-schedule: #3a6fb0;--tc-q-delegate: #c2781c;--tc-q-someday: #7d7d88;--tc-radius: 13px 15px 12px 14px;--tc-radius-sm: 10px 12px 9px 11px;--tc-gap: 12px;--tc-pad: 16px;--tc-shadow: 0 1px 1px rgba(43, 43, 51, .04), 0 2px 6px rgba(43, 43, 51, .07);--tc-shadow-lift: 0 2px 4px rgba(43, 43, 51, .08), 0 10px 24px rgba(43, 43, 51, .16);--tc-font: "LXGW WenKai Screen", "LXGW WenKai", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif;--tc-font-display: "Caveat", "LXGW WenKai Screen", var(--tc-font);--tc-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--tc-header-h: 56px;--tc-tabbar-h: 56px;--tc-omni-space: 104px;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background-color:var(--tc-bg);background-image:var(--tc-grid-image);background-size:var(--tc-grid-cell) var(--tc-grid-cell);background-attachment:fixed;color:var(--tc-ink);font-family:var(--tc-font);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}h1,h2,h3,p,figure{margin:0}button,input,textarea,select{font:inherit;color:inherit}.tc-app{position:relative;display:flex;flex-direction:column;min-height:100%;height:100dvh;transition:background-color .4s ease}.tc-topstack{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;flex-direction:column;align-items:stretch;pointer-events:none}.tc-topstack>*{pointer-events:auto}.tc-header{display:flex;align-items:center;gap:4px;height:calc(var(--tc-header-h) + env(safe-area-inset-top));padding:env(safe-area-inset-top) 8px 0;background:var(--tc-bg);border-bottom:2px solid var(--tc-rule);flex:0 0 auto}.tc-app.is-xray .tc-header{background:#f2f0e8}.tc-wordmark{position:absolute;left:50%;transform:translate(-50%);font-family:var(--tc-font-display);font-size:28px;font-weight:700;letter-spacing:1.5px;line-height:1;color:var(--tc-ink)}.tc-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:0;border-radius:50%;background:none;color:var(--tc-muted);cursor:pointer;transition:color .15s ease,background .15s ease}.tc-header>.tc-iconbtn:first-child{margin-right:auto}.tc-iconbtn.is-on{color:var(--tc-accent)}.tc-iconbtn--sm{width:28px;height:28px}.tc-searchbar{display:flex;align-items:center;gap:8px;height:44px;margin:6px var(--tc-pad);padding:0 12px;border-radius:var(--tc-radius);background:var(--tc-card);border:1.5px solid var(--tc-border);box-shadow:var(--tc-shadow);color:var(--tc-muted);animation:tc-drop .18s ease-out}.tc-searchinput{flex:1 1 auto;min-width:0;border:0;background:none;outline:none;font-size:15px;color:var(--tc-ink)}.tc-searchinput::placeholder{color:var(--tc-muted);opacity:.7}.tc-filterchip{align-self:center;display:inline-flex;align-items:center;gap:6px;height:26px;margin:4px 0;padding:0 10px;border:0;border-radius:999px;background:var(--tc-accent);color:#fff;font-size:12px;cursor:pointer;box-shadow:0 2px 4px #2b2b332e;animation:tc-drop .18s ease-out}.tc-xray-label{align-self:center;padding:2px 0;font-size:10px;font-weight:700;letter-spacing:2px;color:color-mix(in srgb,var(--tc-accent) 60%,transparent);animation:tc-drop .18s ease-out}.tc-main{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--tc-pad);padding-top:calc(var(--tc-header-h) + env(safe-area-inset-top) + var(--tc-top-extra, 0px) + 8px);padding-bottom:calc(env(safe-area-inset-bottom) + var(--tc-omni-space))}.tc-app.is-xray{--tc-grid: rgba(92, 118, 150, .1);background-color:transparent}.tc-app.is-xray:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-color:#f1efe7;background-image:var(--tc-grid-image);background-size:var(--tc-grid-cell) var(--tc-grid-cell)}.tc-omni-wrap{position:fixed;left:0;right:0;bottom:calc(24px + env(safe-area-inset-bottom));z-index:25;display:flex;justify-content:center;pointer-events:none;transition:transform .3s cubic-bezier(.68,-.35,.27,1.35),opacity .3s ease}.tc-omni-wrap.is-hidden{transform:translateY(160px);opacity:0}.tc-omni{pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;padding:0;border:2px solid var(--tc-card);border-radius:50%;background:var(--tc-accent);color:#fff;cursor:pointer;touch-action:none;box-shadow:0 3px #2b2b331a,0 8px 18px #2b2b3338;transform:translate(var(--tc-omni-x, 0px),var(--tc-omni-y, 0px));transition:transform .18s cubic-bezier(.2,.9,.3,1.3)}.tc-omni.is-dragging{transition:transform .05s linear}.tc-pucks{position:absolute;bottom:0;left:50%;width:0;height:64px;pointer-events:none}.tc-puck{position:absolute;display:flex;flex-direction:column;align-items:center;gap:4px;transform:translate(-50%);animation:tc-fade .2s ease-out}.tc-puck--import{bottom:90px}.tc-puck--calendar{bottom:-8px;flex-direction:column-reverse}.tc-puck--filter{bottom:20px;margin-left:-90px}.tc-puck--view{bottom:20px;margin-left:90px}.tc-puck-dot{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;border:1.5px solid var(--tc-border);background:var(--tc-card);color:var(--tc-ink);box-shadow:var(--tc-shadow);transition:transform .2s ease,background .2s ease,color .2s ease}.tc-puck-label{font-size:11px;font-weight:600;color:var(--tc-muted)}.tc-puck.is-selected .tc-puck-dot{transform:scale(1.2);border-color:var(--tc-accent);background:var(--tc-accent);color:#fff;box-shadow:0 3px 8px #2b2b3333}.tc-puck.is-selected .tc-puck-label{color:var(--tc-accent)}.tc-toast{position:fixed;left:50%;bottom:calc(112px + env(safe-area-inset-bottom));z-index:26;transform:translate(-50%);padding:6px 16px;border-radius:999px;background:#2b2b33e6;color:#fff;font-size:13px;letter-spacing:.05em;pointer-events:none;animation:tc-fade .18s ease-out}.tc-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;flex-direction:column;background-color:var(--tc-bg);background-image:var(--tc-grid-image);background-size:var(--tc-grid-cell) var(--tc-grid-cell);animation:tc-slide-in .2s ease-out}.tc-overlay-header{display:flex;align-items:center;gap:8px;flex:0 0 auto;height:calc(var(--tc-header-h) + env(safe-area-inset-top));padding:env(safe-area-inset-top) 8px 0;background:var(--tc-bg);border-bottom:2px solid var(--tc-rule)}.tc-overlay-title{font-size:17px;font-weight:700}.tc-overlay-body{flex:1 1 auto;overflow-y:auto;padding:var(--tc-pad);padding-bottom:calc(var(--tc-pad) + env(safe-area-inset-bottom))}@keyframes tc-drop{0%{transform:translateY(-8px);opacity:0}to{transform:none;opacity:1}}@keyframes tc-fade{0%{opacity:0}to{opacity:1}}@keyframes tc-slide-in{0%{transform:translate(-16px);opacity:0}to{transform:none;opacity:1}}.tc-card{background:var(--tc-card);border:1px solid var(--tc-border);border-radius:var(--tc-radius);box-shadow:var(--tc-shadow);padding:var(--tc-pad)}.tc-stack{display:flex;flex-direction:column;gap:var(--tc-gap)}.tc-section-title{font-size:13px;font-weight:600;color:var(--tc-muted);letter-spacing:.04em;margin:4px 2px}.tc-muted{color:var(--tc-muted)}.tc-mono{font-family:var(--tc-font-mono)}.tc-empty{padding:40px 16px;text-align:center;color:var(--tc-muted);font-size:14px}.tc-divider{height:1px;border:0;margin:var(--tc-gap) 0;background:repeating-linear-gradient(to right,var(--tc-border) 0 7px,transparent 7px 12px)}.tc-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 14px;border:1.5px solid var(--tc-border);border-radius:var(--tc-radius-sm);background:var(--tc-card);color:var(--tc-ink);cursor:pointer;transition:background .15s ease,opacity .15s ease}.tc-btn:active{opacity:.75}.tc-btn:disabled{opacity:.45;cursor:default}.tc-btn--primary{background:var(--tc-accent);border-color:var(--tc-accent);color:#fff}.tc-btn--ghost{background:transparent;border-color:transparent;color:var(--tc-muted)}.tc-btn--danger{color:var(--tc-danger);border-color:var(--tc-border)}.tc-input,.tc-textarea{width:100%;padding:10px 12px;border:1.5px solid var(--tc-border);border-radius:var(--tc-radius-sm);background:var(--tc-card);outline:none}.tc-input:focus,.tc-textarea:focus{border-color:var(--tc-accent);box-shadow:0 0 0 3px var(--tc-accent-soft)}.tc-textarea{resize:vertical;min-height:72px}.tc-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;border:1px solid var(--tc-border);background:var(--tc-bg);color:var(--tc-muted);font-size:12px;line-height:1.6}.tc-chip--accent{background:var(--tc-accent-soft);border-color:var(--tc-accent-soft);color:var(--tc-accent)}.tc-chip--danger{background:#fbeae8;border-color:#fbeae8;color:var(--tc-danger)}.tc-chip--good{background:#e7f2ea;border-color:#e7f2ea;color:var(--tc-good)}.tc-dot{width:8px;height:8px;border-radius:50%;background:var(--tc-dot, var(--tc-muted));flex:0 0 auto}.tc-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#2b2b3352}.tc-sheet{position:fixed;left:0;right:0;bottom:0;z-index:31;max-height:88dvh;overflow-y:auto;padding:var(--tc-pad);padding-bottom:calc(var(--tc-pad) + env(safe-area-inset-bottom));background:var(--tc-card);border-top:1.5px solid var(--tc-border);border-radius:21px 19px 0 0;box-shadow:var(--tc-shadow-lift);animation:tc-rise .18s ease-out}@keyframes tc-rise{0%{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.tcf-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:32;background:#2b2b3352;animation:tc-fade .2s ease-out}.tcf-dialog{position:fixed;left:16px;right:16px;bottom:calc(40px + env(safe-area-inset-bottom));z-index:33;max-height:70dvh;overflow-y:auto;padding:24px;border:1.5px solid var(--tc-border);border-radius:24px 26px 23px 25px;background:var(--tc-card);box-shadow:0 10px 30px 5px #2b2b3329;animation:tcf-rise .28s cubic-bezier(.16,1,.3,1)}@keyframes tcf-rise{0%{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}.tcf-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.tcf-title{font-size:20px;font-weight:700}.tcf-close{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin-right:-6px;padding:0;border:0;border-radius:50%;background:none;color:var(--tc-muted);cursor:pointer}.tcf-close:active{background:color-mix(in srgb,var(--tc-ink) 6%,transparent)}.tcf-section{margin-top:20px;margin-bottom:10px;font-size:11px;font-weight:800;letter-spacing:1.2px;color:var(--tc-muted)}.tcf-section:first-of-type{margin-top:0}.tcf-chips{display:flex;flex-wrap:wrap;gap:8px}.tcf-chip{padding:8px 16px;border:1.5px solid var(--tc-border);border-radius:20px;background:var(--tc-bg);color:var(--tc-ink);font-size:13px;font-weight:500;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}.tcf-chip.is-selected{background:color-mix(in srgb,var(--tcf-tint, var(--tc-accent)) 20%,transparent);border-color:var(--tcf-tint, var(--tc-accent));color:var(--tcf-tint, var(--tc-accent));font-weight:700}.tcf-empty{padding:12px 16px;border-radius:var(--tc-radius-sm);background:var(--tc-bg);color:var(--tc-muted);font-size:13px}.tcc-card{position:relative;display:flex;align-items:stretch;gap:0;min-height:85px;margin:6px 2px;border:1.5px solid var(--tc-border);border-radius:var(--tc-radius);background:var(--tc-card);box-shadow:0 1px color-mix(in srgb,var(--tcc-accent) 14%,transparent),0 2px 6px #2b2b3312;overflow:hidden;transition:box-shadow .15s ease,opacity .15s ease}.tcc-card.is-compact{min-height:64px;margin:4px 0}.tcc-card.is-done{background:#f6f5ef;border-color:transparent;box-shadow:none;opacity:.72}.tcc-bar{flex:0 0 6px;width:6px;background:var(--tcc-accent)}.tcc-card.is-done .tcc-bar{opacity:.4;filter:grayscale(.7)}.tcc-check{flex:0 0 auto;align-self:center;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin:12px;padding:0;border:2px solid color-mix(in srgb,var(--tcc-accent) 50%,transparent);border-radius:50%;background:transparent;color:var(--tcc-accent);cursor:pointer;transition:background .15s ease,transform .1s ease}.tcc-check:active{transform:scale(.9)}.tcc-card.is-done .tcc-check{border-color:color-mix(in srgb,var(--tcc-accent) 30%,transparent);background:color-mix(in srgb,var(--tcc-accent) 20%,transparent);color:color-mix(in srgb,var(--tcc-accent) 70%,transparent)}.tcc-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:12px 14px 12px 12px;border:0;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}.tcc-card.is-compact .tcc-body{padding:8px 10px}div.tcc-body{cursor:default}.tcc-title{font-size:16px;font-weight:700;color:var(--tc-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tcc-card.is-done .tcc-title{color:var(--tc-muted);text-decoration:line-through}.tcc-note{font-size:12px;line-height:1.25;color:var(--tc-muted);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tcc-meta{display:flex;align-items:center;gap:8px;margin-top:4px;overflow-x:auto;scrollbar-width:none;white-space:nowrap}.tcc-meta::-webkit-scrollbar{display:none}.tcc-due{font-size:11px;font-weight:600;color:var(--tc-muted);flex:0 0 auto}.tcc-due.is-overdue{color:var(--tc-danger)}.tcc-due.is-today{color:var(--tc-q-delegate)}.tcc-badge{flex:0 0 auto;display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;color:var(--tc-muted)}.tcc-badge--accent{color:var(--tc-accent)}.tcc-tag{flex:0 0 auto;padding:3px 8px;border-radius:5px 7px 4px 6px;background:color-mix(in srgb,var(--tcc-accent) 10%,transparent);color:var(--tcc-accent);font-size:10px;font-weight:700}.tcc-card.is-done .tcc-tag{background:var(--tc-bg);color:var(--tc-muted)}.d-overlay{z-index:45}.d-header{position:relative}.d-header-title{position:absolute;left:50%;transform:translate(-50%);font-size:17px;font-weight:700;pointer-events:none}.d-donebtn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin-left:auto;padding:0;border:2px solid var(--tc-border);border-radius:50%;background:transparent;color:transparent;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.d-donebtn.is-done{border-color:var(--tc-good);background:var(--tc-good);color:#fff}.d-deletebtn{color:var(--tc-danger)}.d-confirm{display:flex;align-items:center;gap:8px;padding:8px var(--tc-pad);background:color-mix(in srgb,var(--tc-danger) 10%,var(--tc-card));animation:tc-drop .18s ease-out}.d-confirm-text{flex:1 1 auto;font-size:13px;color:var(--tc-danger)}.d-body{display:flex;flex-direction:column;gap:var(--tc-gap);padding-bottom:calc(120px + env(safe-area-inset-bottom))}.d-field{display:flex;flex-direction:column;gap:2px}.d-title{width:100%;padding:4px 2px 8px;border:0;border-bottom:2px solid var(--tc-rule);background:transparent;outline:none;font-size:26px;font-weight:700;line-height:1.3;color:var(--tc-ink)}.d-title:focus{border-bottom-color:var(--tc-accent)}.d-title.is-error{border-bottom-color:var(--tc-danger)}.d-error{font-size:12px;color:var(--tc-danger)}.d-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--tc-gap);align-items:start}.d-quad-card,.d-plan-card{padding:12px}.d-quad-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}.d-quad-tile{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;min-height:48px;padding:6px;border:2px solid transparent;border-radius:var(--tc-radius-sm);background:var(--tc-bg);color:var(--tc-muted);cursor:pointer;text-align:left;transition:background .15s ease,border-color .15s ease,color .15s ease}.d-quad-tile.is-on{border-color:var(--d-q);background:color-mix(in srgb,var(--d-q) 20%,transparent);color:var(--d-q)}.d-quad-dot{width:8px;height:8px;border-radius:50%;background:var(--d-q)}.d-quad-label{font-size:10px;line-height:1.2;font-weight:600}.d-plan-row{display:flex;align-items:center;gap:6px;margin-top:6px}.d-date,.d-select{flex:1 1 auto;min-width:0;height:34px;padding:0 4px;border:0;border-bottom:1px solid var(--tc-border);border-radius:0;background:transparent;outline:none;font-size:13px;color:var(--tc-ink)}.d-date:focus,.d-select:focus{border-bottom-color:var(--tc-accent)}.d-clear{min-height:28px;padding:0 6px;font-size:12px}.d-tag-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px}.d-tag-row--suggest{padding-top:6px;border-top:1px dashed var(--tc-border)}.d-tag-empty{font-size:12px;color:var(--tc-muted)}.d-tag-x,.d-step-x{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;font-size:14px;line-height:1;cursor:pointer;opacity:.7}.d-tag-add{border-style:dashed;background:transparent;cursor:pointer}.d-newtag-open{margin-top:8px;padding:0;border:0;background:none;color:var(--tc-accent);font-size:13px;font-weight:600;cursor:pointer}.d-newtag{display:flex;align-items:center;gap:6px;margin-top:8px}.d-newtag-input{flex:1 1 auto;min-width:0}.d-note{margin-top:6px}.d-steps-head{display:flex;align-items:baseline;justify-content:space-between}.d-steps-pct{font-weight:500;margin-left:auto}.d-ai{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;min-height:28px;margin-left:10px;padding:0 10px;border:1.5px dashed var(--tc-border);border-radius:999px;background:var(--tc-bg);color:var(--tc-accent);font-size:12px;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,opacity .15s ease}.d-ai:not(:disabled):active{background:var(--tc-accent-soft);border-color:var(--tc-accent)}.d-ai:disabled{opacity:.4;color:var(--tc-muted);cursor:default}.d-ai-spin{width:12px;height:12px;border:2px solid var(--tc-accent-soft);border-top-color:var(--tc-accent);border-radius:50%;animation:d-spin .7s linear infinite}@keyframes d-spin{to{transform:rotate(360deg)}}.d-ai-error{margin:6px 0 0;font-size:12px;color:var(--tc-danger)}.d-suggest{margin:10px 0;padding:10px 12px;border:1.5px dashed var(--tc-accent);border-radius:var(--tc-radius);background:var(--tc-accent-soft)}.d-suggest-list{list-style:none;margin:4px 0 8px;padding:0;display:flex;flex-direction:column;gap:6px}.d-suggest-row{display:flex;align-items:flex-start;gap:8px;opacity:.5;transition:opacity .15s ease}.d-suggest-row.is-on{opacity:1}.d-suggest-tick{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-top:1px;padding:0;border:1.5px solid var(--tc-border);border-radius:6px 7px 5px;background:var(--tc-card);color:#fff;cursor:pointer;transition:background .15s ease,border-color .15s ease}.d-suggest-row.is-on .d-suggest-tick{background:var(--tc-accent);border-color:var(--tc-accent)}.d-suggest-title{flex:1 1 auto;min-width:0;font-size:14px;line-height:1.5;overflow-wrap:anywhere}.d-suggest-foot{display:flex;justify-content:flex-end;gap:8px}.d-progress{height:4px;margin:2px 0 10px;border-radius:999px;background:var(--tc-border);overflow:hidden}.d-progress-fill{height:100%;border-radius:999px;background:var(--tc-accent);transition:width .25s ease}.d-steps-add{display:flex;align-items:center;gap:6px}.d-steps-addbtn{flex:0 0 auto;width:40px;padding:0}.d-timeline{list-style:none;margin:10px 0 0;padding:0}.d-step{display:flex;align-items:stretch;gap:10px}.d-step.is-later{opacity:.5}.d-rail{position:relative;display:flex;flex-direction:column;align-items:center;width:22px;flex:0 0 auto;padding-top:10px}.d-rail-line{position:absolute;top:0;left:50%;width:2px;height:10px;transform:translate(-50%);background:var(--tc-border)}.d-rail-line.is-done{background:var(--tc-good)}.d-rail-dot{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:2px solid var(--tc-border);border-radius:50%;background:transparent;color:#fff;cursor:pointer;flex:0 0 auto;transition:background .15s ease,border-color .15s ease}.d-step.is-done .d-rail-dot{border-color:var(--tc-good);background:var(--tc-good)}.d-step.is-current .d-rail-dot{border-color:var(--tc-accent)}.d-step.is-current .d-rail-dot:after{content:"";width:6px;height:6px;border-radius:50%;background:var(--tc-accent)}.d-step:not(:last-child) .d-rail:after{content:"";position:absolute;top:28px;bottom:-2px;left:50%;width:2px;transform:translate(-50%);background:var(--tc-border)}.d-step.is-done:not(:last-child) .d-rail:after{background:var(--tc-good)}.d-step-card{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0;margin-bottom:8px;padding:8px 10px;border:1.5px solid var(--tc-border);border-radius:var(--tc-radius-sm);background:var(--tc-card)}.d-step-title{flex:1 1 auto;min-width:0;font-size:14px;word-break:break-word}.d-step.is-done .d-step-title{text-decoration:line-through;color:var(--tc-muted)}.d-step.is-current .d-step-title{font-weight:700}.d-save{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));z-index:46;display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;padding:0;border:0;border-radius:50%;transform:translate(-50%);background:var(--tc-accent);color:#fff;cursor:pointer;box-shadow:0 3px #2b2b331a,0 8px 18px #2b2b3338;transition:transform .15s ease}.d-save:active{transform:translate(-50%) scale(.94)}.tc-cal-head{display:flex;align-items:center;gap:8px}.tc-cal-title{font-size:17px;font-weight:600;min-width:7.5em}.tc-cal-step{min-height:34px;width:34px;padding:0;border-radius:50%;font-size:16px;line-height:1}.tc-cal-today-btn{margin-left:auto;min-height:34px;padding:0 12px;font-size:13px}.tc-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.tc-cal-weekday{text-align:center;font-size:12px;color:var(--tc-muted);padding-bottom:6px}.tc-cal-cell{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;min-height:46px;padding:6px 0 4px;border:1px solid transparent;border-radius:var(--tc-radius-sm);background:none;color:var(--tc-ink);font-size:14px;cursor:pointer;transition:background .12s ease}.tc-cal-cell:active{background:var(--tc-accent-soft)}.tc-cal-cell.is-outside{color:var(--tc-muted);opacity:.45}.tc-cal-cell.is-today{border-color:var(--tc-accent);color:var(--tc-accent);font-weight:600}.tc-cal-cell.is-selected{background:var(--tc-accent-soft);border-color:var(--tc-accent)}.tc-cal-dots{display:flex;gap:3px;min-height:5px}.tc-cal-dot{width:5px;height:5px;--tc-dot: var(--tc-accent)}.tc-cal-dot--overdue{--tc-dot: var(--tc-danger)}.tc-cal-dot--done{--tc-dot: var(--tc-good)}.tc-cal-hint{font-size:12px}.tc-cal-day-head{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}.tc-cal-day-title{margin:0}.tc-cal-day-ymd{font-size:12px}.tc-cal-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}.tc-cal-item{display:flex;align-items:center;gap:8px}.tc-cal-item-card{flex:1 1 auto;min-width:0}.tc-cal-ics{flex:0 0 auto;min-height:32px;padding:0 10px;font-size:13px}.i-sheet{display:flex;flex-direction:column;gap:12px;border-radius:30px 28px 0 0}.i-head{display:flex;align-items:baseline;gap:8px}.i-title{font-size:18px;font-weight:700;color:var(--tc-ink)}.i-quota{flex:1 1 auto;font-family:var(--tc-font-mono);font-size:11px;color:var(--tc-muted)}.i-close{flex:0 0 auto;align-self:center;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin-right:-6px;padding:0;border:0;border-radius:50%;background:none;color:var(--tc-muted);cursor:pointer}.i-hint{font-size:13px;line-height:1.6;color:var(--tc-muted)}.i-text{min-height:110px;font-size:14px;line-height:1.6}.i-text:disabled{opacity:.6}.i-photorow{display:flex;align-items:center;gap:8px;min-width:0}.i-photo{flex:0 0 auto;cursor:pointer}.i-photo.is-off{opacity:.45;cursor:default}.i-file{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.i-filename{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--tc-muted)}.i-dropphoto{flex:0 0 auto;min-height:32px;padding:0 8px}.i-error{margin:0;padding:8px 10px;border-radius:var(--tc-radius-sm);background:#fbeae8;color:var(--tc-danger);font-size:13px}.i-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px}.i-again{margin-right:auto}.i-go{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 20px;border:0;border-radius:999px;background:var(--tc-accent);color:#fff;font-size:15px;font-weight:600;cursor:pointer;box-shadow:0 2px #2b2b331a,0 6px 14px #2b2b332e;transition:opacity .15s ease,transform .15s ease}.i-go:active{transform:scale(.97)}.i-go:disabled{opacity:.4;box-shadow:none;cursor:default}.i-spin{width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:i-spin .7s linear infinite}@keyframes i-spin{to{transform:rotate(360deg)}}.i-previewhead{display:flex;align-items:center;justify-content:space-between;gap:8px}.i-selectall{min-height:32px;padding:0 10px;font-size:13px}.i-list{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;max-height:46dvh;overflow-y:auto}.i-row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--tc-border);border-radius:var(--tc-radius);background:var(--tc-card);opacity:.55;transition:opacity .15s ease,border-color .15s ease}.i-row.is-on{opacity:1;border-color:var(--tc-accent);box-shadow:var(--tc-shadow)}.i-tick{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-top:2px;padding:0;border:1.5px solid var(--tc-border);border-radius:7px 6px 8px;background:var(--tc-bg);color:#fff;cursor:pointer;transition:background .15s ease,border-color .15s ease}.i-row.is-on .i-tick{background:var(--tc-accent);border-color:var(--tc-accent)}.i-rowmain{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}.i-rowtitle{font-size:15px;font-weight:600;line-height:1.4;color:var(--tc-ink);overflow-wrap:anywhere}.i-rownote{font-size:12px;line-height:1.5;color:var(--tc-muted);overflow-wrap:anywhere}.i-rowmeta{display:flex;flex-wrap:wrap;gap:4px}.i-quad{flex:0 0 auto;display:grid;grid-template-columns:1fr 1fr;gap:3px;width:46px;margin-top:2px}.i-quadtile{display:inline-flex;align-items:center;justify-content:center;height:20px;padding:0;border:0;border-radius:6px 7px 5px;background:color-mix(in srgb,var(--i-q) 20%,transparent);color:#fff;cursor:pointer;transition:background .15s ease,box-shadow .15s ease}.i-quadtile.is-on{background:var(--i-q);box-shadow:0 0 0 2px var(--tc-card),0 2px 5px #2b2b3333}.a-sheet{border-radius:30px 28px 0 0;display:flex;flex-direction:column;gap:12px}.a-head{font-size:18px;font-weight:700;color:var(--tc-muted)}.a-titlerow{display:flex;align-items:baseline;gap:8px}.a-title{flex:1 1 auto;min-width:0;padding:4px 0;border:0;background:transparent;outline:none;font-size:18px;font-weight:600;color:var(--tc-ink)}.a-title::placeholder{color:var(--tc-muted);opacity:.7;font-weight:400}.a-counter{flex:0 0 auto;font-family:var(--tc-font-mono);font-size:11px;color:var(--tc-muted)}.a-counter.is-warn{color:var(--tc-q-delegate);font-weight:700}.a-options{display:flex;align-items:center;gap:8px}.a-spacer{flex:1 1 auto}.a-chip{display:inline-flex;align-items:center;gap:4px;min-height:32px;padding:0 10px;border:1.5px solid var(--tc-border);border-radius:999px;background:var(--tc-bg);color:var(--tc-muted);font-size:13px;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.a-chip--date.is-on{background:var(--tc-accent-soft);border-color:var(--tc-accent-soft);color:var(--tc-accent)}.a-chip--repeat.is-on{background:#efe9f7;border-color:#efe9f7;color:#6a4a9c}.a-chip--tag.is-on{background:var(--tc-accent-soft);border-color:var(--tc-accent);color:var(--tc-accent);font-weight:600}.a-chip--new{padding:0 8px;border-style:dashed}.a-ai{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1.5px dashed var(--tc-border);border-radius:50%;background:var(--tc-bg);color:var(--tc-accent);cursor:pointer;transition:background .15s ease,border-color .15s ease,opacity .15s ease}.a-ai:not(:disabled):active{background:var(--tc-accent-soft);border-color:var(--tc-accent)}.a-ai:disabled{opacity:.35;color:var(--tc-muted);cursor:default}.a-ai-spin{width:14px;height:14px;border:2px solid var(--tc-accent-soft);border-top-color:var(--tc-accent);border-radius:50%;animation:a-spin .7s linear infinite}@keyframes a-spin{to{transform:rotate(360deg)}}.a-ai-error{margin:0;font-size:12px;color:var(--tc-danger)}.a-quad{display:grid;grid-template-columns:1fr 1fr;gap:4px;width:84px;flex:0 0 auto}.a-quad-tile{display:inline-flex;align-items:center;justify-content:center;height:24px;padding:0;border:0;border-radius:7px 9px 6px 8px;background:color-mix(in srgb,var(--a-q) 20%,transparent);color:#fff;cursor:pointer;transition:background .15s ease,box-shadow .15s ease}.a-quad-tile.is-on{background:var(--a-q);box-shadow:0 0 0 2px var(--tc-card),0 2px 6px #2b2b3333}.a-daterow{display:flex;align-items:center;gap:8px;animation:tc-drop .18s ease-out}.a-date{flex:1 1 auto;min-width:0;height:40px;padding:0 12px;border:1.5px solid var(--tc-border);border-radius:var(--tc-radius-sm);background:var(--tc-card);outline:none;font-size:14px}.a-date:focus{border-color:var(--tc-accent);box-shadow:0 0 0 3px var(--tc-accent-soft)}.a-clear{flex:0 0 auto;min-height:32px;padding:0 8px}.a-tags{display:flex;align-items:center;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.a-tags::-webkit-scrollbar{display:none}.a-tags>*{flex:0 0 auto}.a-newtag{min-height:32px;width:110px;padding:0 10px;border:1.5px solid var(--tc-accent);border-radius:999px;background:var(--tc-card);outline:none;font-size:13px}.a-submitrow{display:flex;justify-content:flex-end}.a-submit{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 20px;border:0;border-radius:999px;background:var(--tc-accent);color:#fff;font-size:15px;font-weight:600;cursor:pointer;box-shadow:0 2px #2b2b331a,0 6px 14px #2b2b332e;transition:opacity .15s ease,transform .15s ease}.a-submit:active{transform:scale(.97)}.a-submit:disabled{opacity:.4;box-shadow:none;cursor:default}.tcl-group-title{display:flex;align-items:baseline;gap:6px}.tcl-cards{display:flex;flex-direction:column;gap:8px}.tcl-done-toggle{display:flex;align-items:center;gap:4px;width:100%;padding:6px 2px;margin-bottom:2px;border:0;background:none;color:var(--tc-muted);font-size:13px;font-weight:600;letter-spacing:.04em;cursor:pointer}.tcl-caret{display:inline-block;transition:transform .15s ease}.tcl-caret.is-open{transform:rotate(90deg)}.tcl-doodle{display:flex;justify-content:center;padding:10px 0 2px}.tcm-page{display:flex;flex-direction:column;gap:28px}.tcm-section-title{margin:0 4px 12px;font-size:12px;font-weight:700;letter-spacing:1px;color:var(--tc-muted)}.tcm-card{padding:8px 16px}.tcm-row{display:flex;align-items:center;gap:14px;width:100%;padding:12px 0;border:0;background:none;color:inherit;text-align:left}.tcm-row--tappable{cursor:pointer}.tcm-row--tappable:active{opacity:.7}.tcm-tile{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px 10px 7px 9px;background:color-mix(in srgb,var(--tc-accent) 10%,transparent);color:var(--tc-accent)}.tcm-tile.is-danger{background:color-mix(in srgb,var(--tc-danger) 10%,transparent);color:var(--tc-danger)}.tcm-row-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.tcm-row-title{font-size:15px;font-weight:500;overflow-wrap:anywhere}.tcm-row-title.is-danger{color:var(--tc-danger)}.tcm-row-sub{font-size:12.5px;color:var(--tc-muted);overflow-wrap:anywhere}.tcm-row-chevron{flex:0 0 auto;display:inline-flex;color:var(--tc-muted);opacity:.6}.tcm-divider{height:1px;margin-left:50px;background:var(--tc-border)}.tcm-note{padding:4px 0 10px;font-size:12.5px}.tcm-confirm{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 12px;padding:10px 12px;border:1.5px solid var(--tc-border);border-radius:var(--tc-radius-sm);background:var(--tc-bg);font-size:14px}.tcm-confirm-text{flex:1 1 auto}.tcm-confirm-actions{margin-left:auto;display:flex;gap:8px}.tcm-confirm .tc-btn{min-height:34px;padding:0 12px;font-size:13px}.tcm-msg{margin:0 0 12px;font-size:13px}.tcm-msg--error{color:var(--tc-danger)}.tcm-msg--good{color:var(--tc-good)}.tcm-file{display:none}.tcm-tagsheet{display:flex;flex-direction:column;gap:16px}.tcm-tagsheet-head{display:flex;align-items:center;gap:12px}.tcm-tagsheet-mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px 10px 7px 9px;background:color-mix(in srgb,var(--tc-accent) 10%,transparent);color:var(--tc-accent)}.tcm-tagsheet-title{flex:1 1 auto;font-size:18px;font-weight:700}.tcm-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:none;color:var(--tc-muted);cursor:pointer}.tcm-iconbtn:active{background:color-mix(in srgb,var(--tc-ink) 6%,transparent)}.tcm-iconbtn--danger{color:var(--tc-danger)}.tcm-tagsheet-add{display:flex;gap:8px}.tcm-tagsheet-add .tc-input{flex:1 1 auto;min-width:0}.tcm-tagsheet-addbtn{flex:0 0 auto;padding:0 12px}.tcm-taglist{list-style:none;margin:0;padding:0}.tcm-tagrow{padding:6px 0;border-top:1px solid var(--tc-border)}.tcm-tagrow:first-child{border-top:0}.tcm-tagrow-main{display:flex;align-items:center;gap:10px}.tcm-tagrow-icon{display:inline-flex;color:var(--tc-muted)}.tcm-tagrow-name{flex:1 1 auto;min-width:0;font-weight:500;overflow-wrap:anywhere}.tcm-tagrow-unused{flex:0 0 auto}.tcm-tagsheet-note{font-size:12px}.q-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:10px;height:calc(100dvh - var(--tc-header-h) - env(safe-area-inset-top) - var(--tc-top-extra, 0px) - 8px - env(safe-area-inset-bottom) - var(--tc-omni-space));min-height:420px}.tc-card.q-cell{display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:0;background:color-mix(in srgb,var(--q-color, var(--tc-muted)) 6%,var(--tc-card));border:1.5px solid color-mix(in srgb,var(--q-color, var(--tc-muted)) 32%,transparent);border-radius:18px 20px 17px 19px;cursor:pointer;transition:background .2s ease,border-color .2s ease}.tc-card.q-cell.is-over{background:color-mix(in srgb,var(--q-color, var(--tc-muted)) 16%,var(--tc-card));border:2px solid color-mix(in srgb,var(--q-color, var(--tc-muted)) 65%,transparent)}.q-cell-head{display:flex;align-items:baseline;gap:6px;flex:0 0 auto;padding:10px 10px 6px;border-bottom:1.5px solid color-mix(in srgb,var(--q-color, var(--tc-muted)) 24%,transparent)}.q-cell-label{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--q-color, var(--tc-ink));white-space:nowrap}.q-cell-action{font-size:11px;color:var(--tc-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.q-cell-count{margin-left:auto;font-size:12px;color:var(--tc-muted);font-family:var(--tc-font-mono)}.q-cell-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4px 6px}.q-draggable{touch-action:pan-y}.q-draggable.is-source{opacity:.3}.q-cell-empty{padding:20px 8px;font-size:12px;color:color-mix(in srgb,var(--q-color, var(--tc-muted)) 55%,transparent);text-align:center}.q-cta{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;padding:18px 8px;border:0;background:none;cursor:pointer;animation:tc-fade .6s ease-out}.q-cta-main{font-size:13px;font-weight:600;color:color-mix(in srgb,var(--q-color, var(--tc-accent)) 75%,transparent)}.q-cta-hint{font-size:11px;color:color-mix(in srgb,var(--q-color, var(--tc-muted)) 45%,transparent)}.q-ghost{position:fixed;z-index:60;pointer-events:none;transform:scale(1.05);transform-origin:center;filter:drop-shadow(0 8px 18px rgba(43,43,51,.26))}.q-delzone{position:fixed;left:0;right:0;bottom:0;z-index:28;height:110px;display:flex;align-items:center;justify-content:center;pointer-events:none;background:linear-gradient(to bottom,color-mix(in srgb,var(--tc-danger) 0%,transparent),color-mix(in srgb,var(--tc-danger) 55%,transparent));animation:q-rise-strip .3s cubic-bezier(.34,1.3,.64,1)}.q-delzone.is-over{background:linear-gradient(to bottom,color-mix(in srgb,var(--tc-danger) 0%,transparent),color-mix(in srgb,var(--tc-danger) 88%,transparent))}.q-delzone-text{padding-bottom:env(safe-area-inset-bottom);color:#fff;font-size:14px;font-weight:700;letter-spacing:.08em;transition:transform .2s ease}.q-delzone.is-over .q-delzone-text{transform:scale(1.15)}@keyframes q-rise-strip{0%{transform:translateY(100%)}to{transform:none}}.q-snack{position:fixed;left:50%;bottom:calc(112px + env(safe-area-inset-bottom));z-index:45;transform:translate(-50%);display:flex;align-items:center;gap:12px;max-width:calc(100vw - 2 * var(--tc-pad));padding:8px 8px 8px 16px;border-radius:999px;background:#2b2b33ed;color:#fff;font-size:13px;box-shadow:var(--tc-shadow-lift);animation:tc-fade .18s ease-out}.q-snack-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.q-snack-btn{flex:0 0 auto;padding:4px 12px;border:0;border-radius:999px;background:#ffffff24;color:#f0b429;font-size:13px;font-weight:700;cursor:pointer}.tc-sheet.q-sheet{display:flex;flex-direction:column;height:75dvh;max-height:75dvh;overflow:hidden;padding:0}.q-sheet-handle{flex:0 0 auto;width:40px;height:4px;margin:12px auto 8px;border-radius:2px;background:color-mix(in srgb,var(--tc-muted) 45%,transparent)}.q-sheet-title{flex:0 0 auto;padding:4px 0 12px;text-align:center;font-size:18px;font-weight:700;letter-spacing:.12em;border-bottom:1px solid var(--tc-border);transition:color .3s ease}.q-pager{flex:1 1 auto;min-height:0;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.q-pager::-webkit-scrollbar{display:none}.q-page{flex:0 0 100%;width:100%;min-width:100%;scroll-snap-align:start;overflow-y:auto;padding:12px var(--tc-pad)}.q-page-empty{padding:48px 16px;text-align:center;color:var(--tc-muted);font-size:14px}.q-dots{flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 0 calc(20px + env(safe-area-inset-bottom))}.q-dot{width:8px;height:8px;padding:0;border:0;border-radius:4px;background:color-mix(in srgb,var(--tc-muted) 30%,transparent);cursor:pointer;transition:width .3s ease,background .3s ease}.q-dot.is-active{width:24px;background:var(--q-color, var(--tc-accent))}@media(min-width:640px){.q-grid{gap:var(--tc-gap);max-width:720px;margin:0 auto}.q-cell-label{font-size:14px}.tc-sheet.q-sheet{width:min(560px,100vw);margin:0 auto}}
