.prompt-fallback{min-height:320px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px}.import-textarea{min-height:260px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px}.import-preview{display:flex;flex-direction:column;gap:12px}.solution-preview{padding:14px 16px;display:flex;flex-direction:column;gap:8px}.solution-preview h3{font-size:16px}.solution-md-preview{max-height:220px;overflow:auto}.char-count{margin:4px 0 0;text-align:right;font-size:12px;color:var(--text-muted)}.char-count.is-over{color:var(--danger);font-weight:600}.checkbox-line{display:flex;align-items:center;gap:8px;margin-top:12px}.plan-group h4{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-size:15px}.plan-group ul{margin:0 0 6px;padding-left:22px}.draft-cat{padding:12px 14px;display:flex;flex-direction:column;gap:8px}.draft-cat.is-off{opacity:.55}.draft-cat-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.draft-cat-head .input{flex:1 1 180px}.draft-icon{font-size:20px}.draft-tasks{list-style:none;margin:0;padding:0 0 0 26px;display:flex;flex-direction:column;gap:6px}.draft-tasks li{display:flex;align-items:center;gap:8px}.help ul{padding-left:20px}.help h3{font-size:15px;margin:14px 0 6px}.help h3:first-child{margin-top:0}.code-block{margin:0 0 12px;padding:12px 14px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);overflow:auto;font-size:12.5px;line-height:1.5}.menu{position:relative}.menu-list{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:260px;padding:6px;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.menu-list>*{display:block;width:100%;padding:9px 12px;border:0;border-radius:var(--radius-sm);background:none;color:var(--text);font:inherit;text-align:left;text-decoration:none;cursor:pointer}.menu-list>*:hover{background:var(--surface-2)}@media(max-width:520px){.hide-sm{display:none}}.plan-section{display:flex;flex-direction:column;gap:8px;padding:10px 0 0;border-top:1px solid var(--border)}.plan-section-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:16px}.plan-when{font-size:13px;font-weight:400}.target-group{max-width:420px}.target-group-hint{font-size:13px}.app{min-height:100dvh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;padding-top:max(10px,env(safe-area-inset-top));background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px;min-width:0;font-weight:700;font-size:16px;text-decoration:none}.brand span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-logo{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;border-radius:9px;background:var(--accent-soft)}.topbar-actions{display:flex;align-items:center;gap:6px}.main{flex:1;width:100%;max-width:1600px;margin:0 auto;padding:20px 16px 48px}@media(min-width:900px){.main{padding:28px 32px 64px}.topbar{padding-left:32px;padding-right:32px}}.login{min-height:100dvh;display:grid;place-items:center;padding:16px;position:relative}.login-card{width:min(380px,100%);display:flex;flex-direction:column;gap:12px;padding:32px 28px;text-align:center}.login-card h1{font-size:22px}.login-card p{margin:0}.login-logo{font-size:40px}.login-theme{position:absolute;top:16px;right:16px}.checkbox-line{display:flex;align-items:center;gap:8px}.settings-links{display:flex;gap:8px;flex-wrap:wrap;justify-content:space-between;margin:4px 0 18px;padding-top:14px;border-top:1px solid var(--border)}.label-manage-list{display:flex;flex-direction:column;gap:6px}.label-manage-row{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.label-manage-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.category{display:flex;flex-direction:column;gap:14px;max-width:980px;margin:0 auto}.back-link{color:var(--text-muted);text-decoration:none;font-weight:500;align-self:flex-start}.back-link:hover{color:var(--text)}.category-head{display:flex;flex-direction:column;gap:14px;padding:18px 20px}.category-title{display:flex;align-items:center;gap:12px}.category-title h1{font-size:clamp(20px,3vw,26px);min-width:0}.category-icon{font-size:28px}.category-progress{display:flex;flex-direction:column;gap:6px}.category-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.category-actions .btn-danger-ghost{margin-left:auto}.task-list{display:flex;flex-direction:column;gap:8px}.task-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-wrap:wrap}.task-row.is-selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.task-row-title{flex:1 1 200px;min-width:0;font-weight:500;text-decoration:none;overflow-wrap:anywhere}.task-row-title:hover{color:var(--accent)}.task-row.is-done .task-row-title{text-decoration:line-through;color:var(--text-muted)}.task-row-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--text-muted);font-size:13px}.mini-progress{display:inline-flex;align-items:center;gap:6px;width:88px}.meta-icon{white-space:nowrap}.task-select{width:18px;height:18px;accent-color:var(--accent)}.status-chip{flex-shrink:0;min-width:84px;min-height:28px;padding:0 10px;border-radius:999px;border:1px solid transparent;font:inherit;font-size:12px;font-weight:700;cursor:pointer;transition:transform .12s ease}.status-chip:active{transform:scale(.95)}.status-open{background:var(--surface-2);color:var(--text-muted);border-color:var(--border)}.status-doing{background:var(--accent-soft);color:var(--accent)}.status-done{background:var(--success-soft);color:var(--success)}.selection-bar{position:sticky;bottom:max(12px,env(safe-area-inset-bottom));z-index:10;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;box-shadow:var(--shadow-lg)}.selection-bar span{font-weight:600;margin-right:auto}.add-task{display:flex;gap:8px}.task-row-labels{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap;min-width:0}.category-head.has-color{border-top:4px solid var(--cat)}.category-settings{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}.category-group{display:flex;align-items:center;gap:8px;min-width:0;flex:0 1 320px}.category-group .input{min-width:0}@media(max-width:640px){.task-row.has-thumb{align-items:flex-start}.task-row.has-thumb>.drag-handle,.task-row.has-thumb>.task-select{order:0;align-self:center}.task-row.has-thumb>.task-thumb{order:1}.task-row.has-thumb>.task-row-title{order:2;flex:1 1 0;min-width:0;align-self:center;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}.task-row.has-thumb:after{content:"";order:3;flex:0 0 100%;height:0}.task-row.has-thumb>.status-chip{order:4}.task-row.has-thumb>.task-row-labels{order:5}.task-row.has-thumb>.task-row-meta{order:6}}.dashboard{display:flex;flex-direction:column;gap:20px}.row-end{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.link-btn{font:inherit;color:var(--accent);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.hero{display:grid;gap:24px;padding:22px;background:linear-gradient(135deg,var(--accent-soft),var(--surface) 65%)}@media(min-width:900px){.hero{grid-template-columns:1.25fr 1fr;align-items:center;padding:28px 32px}}.hero-title{font-size:clamp(22px,3vw,30px);letter-spacing:-.01em;overflow-wrap:anywhere}.hero-progress-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;font-weight:600}.hero-progress-head strong{font-size:28px;font-variant-numeric:tabular-nums}.hero-progress p{margin:8px 0 0}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media(min-width:700px){.stats{grid-template-columns:repeat(4,1fr)}}.stat{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:14px 16px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;box-shadow:var(--shadow-sm)}.stat:hover{border-color:var(--border-strong)}.stat.is-active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.stat-value{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}.stat-label{font-size:13px;color:var(--text-muted)}.stat-doing .stat-value{color:var(--accent)}.stat-done .stat-value{color:var(--success)}.stat-overdue.is-alert{border-color:var(--danger);background:var(--danger-soft)}.stat-overdue.is-alert .stat-value{color:var(--danger)}.filtered{padding:16px 18px}.filtered-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.filtered-head h2{font-size:16px}.filtered-list{list-style:none;margin:0;padding:0}.filtered-list li:has(>.task-thumb){display:flex;align-items:center;gap:4px}.filtered-list li>a{flex:1;min-width:0}.filtered-list a{display:flex;align-items:center;gap:10px;padding:8px;border-radius:8px;text-decoration:none}.filtered-list a:hover{background:var(--surface-2)}.filtered-title{flex:1;min-width:0;overflow-wrap:anywhere}.filtered-cat{font-size:13px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:8px}.section-head h2{font-size:18px}.section-actions{display:flex;gap:8px;flex-wrap:wrap}.tile-grid{display:grid;gap:14px;grid-template-columns:1fr}@media(min-width:640px){.tile-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1100px){.tile-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1500px){.tile-grid{grid-template-columns:repeat(4,1fr)}}.sortable-item{display:flex;min-width:0}.sortable-item>*{flex:1;min-width:0}.sortable-item.is-dragging>*{box-shadow:var(--shadow-lg)}.tile{display:flex;flex-direction:column;gap:12px;min-height:156px;padding:18px;color:inherit;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.tile.is-complete{border-color:color-mix(in srgb,var(--success) 45%,var(--border))}.tile-head{display:flex;align-items:center;gap:10px}.tile-icon{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;border-radius:11px;background:var(--surface-2);font-size:22px}.tile-name{flex:1;min-width:0;margin:0;font-size:16px;line-height:1.25;overflow-wrap:anywhere}.tile-meta{display:flex;justify-content:space-between;font-size:13px;color:var(--text-muted)}.tile-meta strong{color:var(--text);font-variant-numeric:tabular-nums}.tile-foot{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}.tile-empty{margin:auto 0 0}.tile-add{display:flex;align-items:center;justify-content:center;min-height:156px;border:2px dashed var(--border-strong);border-radius:var(--radius-lg);background:transparent;color:var(--text-muted);font:inherit;font-weight:600;cursor:pointer}.tile-add:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.tile-add-form{display:flex;flex-direction:column;gap:10px;padding:16px}.tile.has-color{border-top:4px solid var(--cat)}.emoji-row{display:flex;align-items:center;gap:10px}.emoji-row-hint{color:var(--text-muted);font-size:13px}.group-list{display:flex;flex-direction:column;gap:16px}.group{padding:12px 16px}.group.has-color{border-left:4px solid var(--cat)}.group-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.group-title{flex:1 1 180px;min-width:0;font-size:18px}.group-toggle{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:4px 6px;margin:0 -6px;border:0;border-radius:var(--radius);background:transparent;color:var(--text);font:inherit;font-weight:700;text-align:left;cursor:pointer}.group-toggle:hover{background:var(--surface-2)}.group-chevron{flex-shrink:0;display:inline-block;width:14px;color:var(--text-muted);font-size:13px;transition:transform .15s ease}.group-toggle[aria-expanded=true] .group-chevron{transform:rotate(90deg)}.group-icon{display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;border-radius:10px;background:var(--surface-2);font-size:20px;font-weight:400}.group-name{min-width:0;overflow-wrap:anywhere}.group-meta{order:3;flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:13px}.group-progress{display:inline-flex;align-items:center;gap:8px;width:min(220px,100%)}.group-progress .progress{flex:1}.group-progress strong{font-variant-numeric:tabular-nums;white-space:nowrap}.group-menu{order:2}.group-menu .menu-list{min-width:180px}.menu-list>.menu-danger{color:var(--danger)}@media(min-width:900px){.group-meta{order:0;flex:0 1 auto;justify-content:flex-end}.group-menu{order:0}}.group-body{margin-top:12px}.group-body[hidden]{display:none}.group-empty{margin:0 0 10px;font-size:14px}.countdown{display:inline-flex;align-items:baseline;gap:6px;padding:3px 10px;border-radius:999px;background:var(--accent-soft);color:var(--text);font-size:13px;white-space:nowrap}.countdown-value{font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent)}.countdown-caption{color:var(--text-muted);white-space:normal}.countdown.is-reached{font-weight:700;background:var(--success-soft);color:var(--success)}.group-add{display:flex;align-items:center;justify-content:center;min-height:56px;border:2px dashed var(--border-strong);border-radius:var(--radius-lg);background:transparent;color:var(--text-muted);font:inherit;font-weight:600;cursor:pointer}.group-add:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.group-add-form{padding:16px 18px;max-width:560px}.group-add-form h3{font-size:16px;margin-bottom:12px}@media(max-width:640px){.filtered-list li:has(>.task-thumb)>a{flex-wrap:wrap;align-items:flex-start}.filtered-list li:has(>.task-thumb) .filtered-title{flex:1 1 0;min-width:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}.filtered-list li:has(>.task-thumb)>a:after{content:"";order:3;flex:0 0 100%;height:0}.filtered-list li:has(>.task-thumb) .filtered-cat{order:4}.filtered-list li:has(>.task-thumb) .badge{order:5}}.panel-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;justify-content:flex-end;background:#0a0c1059;animation:fade-in .15s ease}.panel{width:min(580px,100%);height:100%;display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);animation:slide-in .22s cubic-bezier(.22,1,.36,1)}@keyframes slide-in{0%{transform:translate(24px);opacity:0}}@media(max-width:640px){.panel{border-left:0}}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;padding-top:max(10px,env(safe-area-inset-top));border-bottom:1px solid var(--border)}.panel-head-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.panel-body{flex:1;overflow:auto;display:flex;flex-direction:column;gap:14px;padding:18px 20px;padding-bottom:max(32px,env(safe-area-inset-bottom))}.panel-title{font-size:20px;font-weight:700;border-color:transparent}.panel-title:hover{border-color:var(--border)}.panel-fields{display:grid;grid-template-columns:1fr;gap:0 16px}@media(min-width:520px){.panel-fields{grid-template-columns:1fr 1fr}.panel-fields>.field:first-child{grid-column:1 / -1}}.deadline-row{display:flex;align-items:center;gap:6px}.panel-section{display:flex;flex-direction:column;gap:10px;padding-top:14px;border-top:1px solid var(--border)}.panel-section h3{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.panel-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding-top:14px;border-top:1px solid var(--border);font-size:13px}.checklist-items{display:flex;flex-direction:column;gap:2px}.check-item{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:var(--radius-sm)}.check-item:hover{background:var(--surface-2)}.check-text{flex:1;min-width:0}.check-item.is-done .check-text{text-decoration:line-through;color:var(--text-muted)}.check{position:relative;display:inline-grid;place-items:center;flex-shrink:0;width:24px;height:24px;cursor:pointer}.check input{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;opacity:0;cursor:pointer}.check-box{display:grid;place-items:center;width:20px;height:20px;border-radius:6px;border:2px solid var(--border-strong);background:var(--surface);transition:background-color .15s ease,border-color .15s ease}.check-box:after{content:"";width:10px;height:5px;margin-top:-2px;border-left:2px solid var(--on-strong);border-bottom:2px solid var(--on-strong);transform:rotate(-45deg) scale(0);transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.check input:checked+.check-box{background:var(--success);border-color:var(--success)}.check input:checked+.check-box:after{transform:rotate(-45deg) scale(1)}.check input:focus-visible+.check-box{outline:2px solid var(--accent);outline-offset:2px}.check-add{margin-top:4px}.ai-loading{display:flex;align-items:center;gap:12px;padding:24px 0}.improve-grid{display:grid;gap:14px}@media(min-width:700px){.improve-grid{grid-template-columns:1fr 1fr}}.improve-col{padding:14px;border-radius:var(--radius);background:var(--surface-2)}.improve-col.is-new{background:var(--accent-soft)}.improve-col h4,.suggestions-head{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.improve-col p{margin:0 0 6px;white-space:pre-wrap}.suggestions-head{margin-top:18px}.suggestions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.suggestions label{display:flex;align-items:center;gap:8px}.row-start{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}.gallery-thumb{position:relative;display:grid;place-items:center;aspect-ratio:1;padding:0;overflow:hidden;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);cursor:pointer}.gallery-thumb img{width:100%;height:100%;object-fit:cover}.gallery-caption{position:absolute;left:0;right:0;bottom:0;padding:4px 6px;font-size:11px;color:#fff;background:linear-gradient(transparent,#000000b3);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gallery-thumb.is-error{cursor:default;aspect-ratio:auto;grid-column:1 / -1;padding:10px;place-items:stretch;border-color:var(--danger);background:var(--danger-soft)}.upload-error{display:flex;flex-direction:column;gap:8px;color:var(--danger);font-size:13px}.lightbox{position:relative;display:grid;place-items:center;background:var(--surface-2);border-radius:var(--radius);overflow:hidden}.lightbox img{max-height:70dvh;width:auto;height:auto;object-fit:contain}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:0;background:#00000073;color:#fff;font-size:26px;cursor:pointer}.lightbox-nav.is-prev{left:10px}.lightbox-nav.is-next{right:10px}.lightbox-bar{display:flex;gap:8px;margin-top:12px}.section-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.solution-empty{padding:14px;border-radius:var(--radius);border:1px dashed var(--border-strong)}.solution-empty p{margin:0 0 10px}.solution-edit{min-height:220px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px}.solution-md{line-height:1.6;overflow-wrap:anywhere}.solution-md h1,.solution-md h2,.solution-md h3{font-size:15px;margin:16px 0 6px}.solution-md h1:first-child,.solution-md h2:first-child,.solution-md h3:first-child{margin-top:0}.solution-md p,.solution-md ul,.solution-md ol{margin:0 0 10px}.solution-md ul,.solution-md ol{padding-left:22px}.solution-md code{padding:1px 5px;border-radius:4px;background:var(--surface-2);font-size:.92em}.solution-md blockquote{margin:0 0 10px;padding:6px 12px;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.materials h4{margin:4px 0 6px;font-size:13px;color:var(--text-muted)}.materials ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.materials label{display:flex;gap:8px;align-items:center}.materials label.is-checked{text-decoration:line-through;color:var(--text-muted)}.label-picker{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.label-form{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:var(--radius);background:var(--surface-2)}:root,:root[data-theme=light]{color-scheme:light;--bg: #f5f6f8;--surface: #ffffff;--surface-2: #f0f2f5;--surface-3: #e7eaef;--border: #e1e4ea;--border-strong: #c9ced8;--text: #1a1e26;--text-muted: #5a6371;--text-faint: #8a93a1;--accent: #4f46e5;--accent-hover: #4338ca;--accent-soft: #eef0fe;--accent-contrast: #ffffff;--on-strong: #ffffff;--success: #15803d;--success-soft: #e8f5ec;--warning: #b45309;--warning-soft: #fdf3e6;--danger: #c2261d;--danger-soft: #fdecea;--progress-track: #e6e9ef;--progress-fill: var(--accent);--progress-done: #16a34a;--shadow-sm: 0 1px 2px rgb(16 24 40 / .06);--shadow-md: 0 4px 12px rgb(16 24 40 / .08), 0 1px 3px rgb(16 24 40 / .06);--shadow-lg: 0 16px 40px rgb(16 24 40 / .16);--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--c-slate-bg: #e8ebf0;--c-slate-fg: #3d4654;--c-slate-solid: #64748b;--c-red-bg: #fde8e8;--c-red-fg: #a31d1d;--c-red-solid: #dc2626;--c-orange-bg: #ffedd9;--c-orange-fg: #9a4a07;--c-orange-solid: #d2640a;--c-amber-bg: #fdf1c7;--c-amber-fg: #7a5200;--c-amber-solid: #a87700;--c-green-bg: #dcf5e3;--c-green-fg: #146535;--c-green-solid: #1e9a52;--c-teal-bg: #d5f4f1;--c-teal-fg: #0d6460;--c-teal-solid: #0b8a7f;--c-blue-bg: #e0ecfd;--c-blue-fg: #1d4fa8;--c-blue-solid: #2f72e8;--c-violet-bg: #ece6fd;--c-violet-fg: #5b2fc0;--c-violet-solid: #8b5cf6;--c-pink-bg: #fde5f0;--c-pink-fg: #a3195e;--c-pink-solid: #dc3c8c;--font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif}:root[data-theme=dark]{color-scheme:dark;--bg: #14161b;--surface: #1c1f26;--surface-2: #232730;--surface-3: #2b303a;--border: #2f3440;--border-strong: #3d4452;--text: #e6e8ec;--text-muted: #a0a8b6;--text-faint: #6f7786;--accent: #8b93f8;--accent-hover: #a3a9fa;--accent-soft: #262a47;--accent-contrast: #14161b;--on-strong: #14161b;--success: #5cc38a;--success-soft: #1b2e24;--warning: #e3a857;--warning-soft: #33291a;--danger: #f07a70;--danger-soft: #3a2020;--progress-track: #2c313b;--progress-fill: var(--accent);--progress-done: #4fb87e;--shadow-sm: none;--shadow-md: 0 0 0 1px var(--border-strong);--shadow-lg: 0 16px 40px rgb(0 0 0 / .5);--c-slate-bg: #2c323d;--c-slate-fg: #c3cad6;--c-slate-solid: #94a3b8;--c-red-bg: #3f2224;--c-red-fg: #f7a3a3;--c-red-solid: #f87171;--c-orange-bg: #3d2a18;--c-orange-fg: #f8b878;--c-orange-solid: #fb923c;--c-amber-bg: #3a3016;--c-amber-fg: #f0cb64;--c-amber-solid: #fbbf24;--c-green-bg: #1c3527;--c-green-fg: #8fdcaa;--c-green-solid: #4ade80;--c-teal-bg: #173533;--c-teal-fg: #7fdcd3;--c-teal-solid: #2dd4bf;--c-blue-bg: #202f4d;--c-blue-fg: #a4c4fb;--c-blue-solid: #60a5fa;--c-violet-bg: #2f2850;--c-violet-fg: #c5b4fa;--c-violet-solid: #a78bfa;--c-pink-bg: #3d2233;--c-pink-fg: #f6a8cc;--c-pink-solid: #f472b6}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased}html.theme-transition,html.theme-transition *,html.theme-transition *:before,html.theme-transition *:after{transition:background-color .2s ease,color .2s ease,border-color .2s ease!important}h1,h2,h3{line-height:1.25;margin:0}a{color:inherit}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.muted{color:var(--text-muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;min-height:36px;padding:0 14px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;font-weight:500;cursor:pointer;text-decoration:none;white-space:nowrap}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-ghost{border-color:transparent;background:transparent}.btn-ghost:hover{background:var(--surface-2)}.btn-danger-ghost{border-color:transparent;background:transparent;color:var(--danger)}.btn-danger-ghost:hover{background:var(--danger-soft)}.btn-sm{min-height:28px;padding:0 10px;font-size:13px}.icon-btn{display:inline-grid;place-items:center;width:36px;height:36px;flex-shrink:0;border-radius:var(--radius);border:0;background:transparent;color:var(--text-muted);cursor:pointer;font:inherit;font-size:16px}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn-sm{width:28px;height:28px;font-size:13px}.input{width:100%;min-height:38px;padding:8px 12px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit}textarea.input{resize:vertical;min-height:90px}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field-label{font-size:13px;font-weight:600;color:var(--text-muted)}.form-error{color:var(--danger);margin:.5em 0 0}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface-2);color:var(--text-muted);white-space:nowrap}.badge-success{background:var(--success-soft);color:var(--success)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.segmented{display:inline-flex;padding:3px;gap:2px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border)}.segmented button{display:inline-flex;align-items:center;gap:6px;min-height:30px;min-width:34px;padding:0 10px;border:0;border-radius:7px;background:transparent;color:var(--text-muted);font:inherit;font-size:13px;font-weight:500;cursor:pointer;justify-content:center}.segmented button.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}:root[data-theme=dark] .segmented button.is-active{background:var(--surface-3)}.loading{padding:48px;text-align:center;color:var(--text-muted)}.error-box{padding:24px;text-align:center}.empty{padding:32px;text-align:center}.spinner{display:inline-block;width:20px;height:20px;border-radius:50%;border:2px solid var(--border-strong);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.drag-handle{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;color:var(--text-faint);padding:4px 2px;font-size:14px;letter-spacing:-2px;line-height:1}.drag-handle:active{cursor:grabbing}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.progress{position:relative;width:100%;height:8px;border-radius:999px;background:var(--progress-track);overflow:hidden}.progress-sm{height:4px}.progress-lg{height:12px}.progress-fill{height:100%;border-radius:inherit;background:var(--progress-fill);transition:width .6s cubic-bezier(.22,1,.36,1)}.progress.is-complete .progress-fill{background:var(--progress-done)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:16px;background:#0a0c1073;animation:fade-in .15s ease}.modal{width:min(560px,100%);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:pop-in .18s cubic-bezier(.22,1,.36,1)}.modal-wide{width:min(920px,100%)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px 12px 20px;border-bottom:1px solid var(--border)}.modal-head h2{font-size:17px;overflow-wrap:anywhere}.modal-body{padding:20px;overflow:auto}.modal-foot{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;padding:14px 20px;border-top:1px solid var(--border)}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px) scale(.98)}}.toasts{position:fixed;z-index:60;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translate(-50%);display:flex;flex-direction:column;gap:8px;width:min(420px,calc(100% - 32px));pointer-events:none}.toast{padding:10px 14px;border-radius:var(--radius);background:var(--text);color:var(--bg);box-shadow:var(--shadow-lg);font-weight:500;animation:pop-in .2s ease;pointer-events:auto}.toast-error{background:var(--danger);color:var(--on-strong)}.toast-success{background:var(--success);color:var(--on-strong)}.inline-edit{font:inherit;color:inherit;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);padding:2px 6px;margin:-3px -7px;cursor:text;text-align:left;overflow-wrap:anywhere}.inline-edit:hover{border-color:var(--border);background:var(--surface-2)}.inline-edit-input{min-height:32px;padding:4px 8px}.label-chip{display:inline-flex;align-items:center;max-width:100%;min-height:22px;padding:0 9px;border-radius:999px;border:1px solid transparent;background:var(--chip-bg);color:var(--chip-fg);font:inherit;font-size:12px;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.label-slate{--chip-bg: var(--c-slate-bg);--chip-fg: var(--c-slate-fg);--chip-solid: var(--c-slate-solid)}.label-red{--chip-bg: var(--c-red-bg);--chip-fg: var(--c-red-fg);--chip-solid: var(--c-red-solid)}.label-orange{--chip-bg: var(--c-orange-bg);--chip-fg: var(--c-orange-fg);--chip-solid: var(--c-orange-solid)}.label-amber{--chip-bg: var(--c-amber-bg);--chip-fg: var(--c-amber-fg);--chip-solid: var(--c-amber-solid)}.label-green{--chip-bg: var(--c-green-bg);--chip-fg: var(--c-green-fg);--chip-solid: var(--c-green-solid)}.label-teal{--chip-bg: var(--c-teal-bg);--chip-fg: var(--c-teal-fg);--chip-solid: var(--c-teal-solid)}.label-blue{--chip-bg: var(--c-blue-bg);--chip-fg: var(--c-blue-fg);--chip-solid: var(--c-blue-solid)}.label-violet{--chip-bg: var(--c-violet-bg);--chip-fg: var(--c-violet-fg);--chip-solid: var(--c-violet-solid)}.label-pink{--chip-bg: var(--c-pink-bg);--chip-fg: var(--c-pink-fg);--chip-solid: var(--c-pink-solid)}.label-chip.is-toggle{gap:7px;min-height:32px;padding:0 12px;font-size:13px;cursor:pointer;border-color:var(--chip-solid);background:transparent;color:var(--text)}.label-chip.is-toggle:before{content:"";flex-shrink:0;width:9px;height:9px;border-radius:50%;background:var(--chip-solid)}.label-chip.is-toggle:hover{background:var(--chip-bg)}.label-chip.is-toggle.is-on{background:var(--chip-bg);color:var(--chip-fg)}.label-filter{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.label-chip.is-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.label-chip-more{font-size:12px;color:var(--text-muted)}.color-picker{display:flex;flex-wrap:wrap;gap:6px}.color-swatch{display:grid;place-items:center;width:28px;height:28px;padding:0;border-radius:50%;border:2px solid transparent;box-shadow:0 0 0 1px var(--border-strong);color:var(--text-muted);font-size:14px;cursor:pointer;background:var(--surface)}.color-swatch.is-active{border-color:var(--surface);box-shadow:0 0 0 2px var(--text)}.color-swatch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.emoji-picker{position:relative;display:inline-block}.emoji-trigger{display:inline-grid;place-items:center;min-width:40px;height:40px;padding:0 8px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);font:inherit;font-size:22px;line-height:1;cursor:pointer}.emoji-trigger:hover{background:var(--surface-2);border-color:var(--border-strong)}.emoji-trigger[aria-expanded=true]{border-color:var(--accent);background:var(--accent-soft)}.category-icon .emoji-trigger{font-size:28px;height:46px;min-width:46px}.emoji-pop{font-size:15px;font-weight:400;position:fixed;z-index:80;top:0;left:0;width:min(340px,calc(100vw - 32px));display:flex;flex-direction:column;gap:8px;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:pop-in .15s ease}.emoji-pop{max-height:calc(100dvh - 16px)}.emoji-scroll{flex:1 1 auto;min-height:0;max-height:260px;overflow:auto;overscroll-behavior:contain}.emoji-rubric{margin:8px 0 4px;font-size:12px;font-weight:600;color:var(--text-muted)}.emoji-rubric:first-child{margin-top:0}.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:2px}.emoji-btn{height:38px;border-radius:8px;border:1px solid transparent;background:transparent;font-size:22px;line-height:1;cursor:pointer}.emoji-btn:hover{background:var(--surface-2)}.emoji-btn.is-active{border-color:var(--accent);background:var(--accent-soft)}.emoji-empty{margin:8px 0;color:var(--text-muted);font-size:14px}.emoji-custom{display:flex;gap:8px;padding-top:8px;border-top:1px solid var(--border)}.emoji-custom .input{flex:1;min-width:0}@media(max-width:600px){.emoji-backdrop{position:fixed;z-index:75;top:0;right:0;bottom:0;left:0;background:#0a0c1073}.emoji-pop{position:fixed;z-index:80;left:0;right:0;top:auto;bottom:0;width:auto;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:12px 16px max(12px,env(safe-area-inset-bottom));animation:sheet-in .2s cubic-bezier(.22,1,.36,1)}.emoji-scroll{max-height:min(50dvh,320px)}}@keyframes sheet-in{0%{transform:translateY(24px);opacity:0}}@media(prefers-reduced-motion:reduce){.emoji-pop{animation:none}}.task-thumb{position:relative;flex:none;width:56px;height:56px;padding:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface-2);cursor:zoom-in}.task-thumb img{display:block;width:100%;height:100%;object-fit:cover}.task-thumb:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.task-thumb-badge{position:absolute;right:2px;bottom:2px;padding:0 5px;border-radius:999px;background:#000000b3;color:#fff;font-size:11px;font-weight:600;line-height:16px}@media(max-width:640px){.task-thumb{width:64px;height:64px}}.image-viewer{overscroll-behavior:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;height:100dvh;background:#0a0a0a;color:#fff;display:flex;flex-direction:column;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.image-viewer-top{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:8px 12px;flex:none}.image-viewer-count{margin-right:auto;font-size:14px;opacity:.85}.image-viewer-btn{min-width:48px;height:48px;border:0;border-radius:50%;background:#ffffff24;color:#fff;font-size:22px;cursor:pointer}.image-viewer-btn:hover{background:#ffffff40}.image-viewer-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}.image-viewer-btn[aria-pressed=true]{background:#ffffff59}.image-viewer-close{font-size:26px}.image-viewer-stage{flex:1;min-height:0;overflow:hidden;display:grid;place-items:center;touch-action:pinch-zoom;overscroll-behavior:none}.image-viewer-stage.is-zoomed{touch-action:pinch-zoom pan-x pan-y;overflow:auto;place-items:start;-webkit-overflow-scrolling:touch}.image-viewer-frame{position:relative;display:grid;place-items:center;width:100%;height:100%}.image-viewer-stage.is-zoomed .image-viewer-frame{width:200%;height:200%}.image-viewer-frame img{grid-area:1 / 1;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.image-viewer-thumb{filter:blur(8px);transform:scale(1.02)}.image-viewer-thumb.is-hidden{visibility:hidden}.image-viewer-img{opacity:0;transition:opacity .2s}.image-viewer-img.is-loaded{opacity:1}.image-viewer-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;font-size:30px;background:#00000080}.image-viewer-nav.is-prev{left:max(8px,env(safe-area-inset-left))}.image-viewer-nav.is-next{right:max(8px,env(safe-area-inset-right))}.image-viewer-caption{flex:none;margin:0;padding:10px 16px 14px;text-align:center;font-size:15px;background:#0009;overflow-wrap:anywhere}@media(prefers-reduced-motion:reduce){.image-viewer-img{transition:none}}.image-viewer-error{grid-area:1 / 1;z-index:1;text-align:center;background:#000000b3;padding:16px 20px;border-radius:12px}.image-viewer-error p{margin:0 0 10px}
