*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--accent: #22C55E;--on-accent: #ffffff;--bg: #ffffff;--surface: #f7f7f7;--border: #ececec;--border-strong: #d6d6d6;--line: #eeeeee;--text: #1a1a1a;--text-muted: #767676;--text-meta: #6b7280;--event-chip-bg: rgba(139, 92, 246, .1);--event-chip-color: #7c3aed;--event-chip-hover: rgba(139, 92, 246, .18);--board-bg: #f1f2ef;--card-bg: #ffffff;--card-border: #e7e8e4;--check-done: #22C55E;--list-w: 915px;--check-ghost-o: .22;--check-ghost-o-focus: .5;--pri-p1: #EF4444;--pri-p2: #f48333;--pri-p3: #3B82F6;--danger: #dc2626;--danger-hover: #b91c1c;--success: #16a34a;--warning: #b45309;--info: #2563eb;--danger-fill: #dc2626;--success-fill: #16a34a;--text-sm: 14px;--text-task: 15.5px;--rowh: 36px;--m-row-pad: 12px 18px;--radius-input: 6px;--font-mono: ui-monospace, "SF Mono", Menlo, monospace;--font-emoji: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;--font-heading: "Bebas Neue", "Barlow Condensed", sans-serif;font-family:Hanken Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.dark{--bg: #121212;--surface: #1a1a1a;--border: #262626;--border-strong: #3a3a3a;--line: #262626;--text: #e8e8e8;--text-muted: #8a8a8a;--text-meta: #9ca3af;--event-chip-bg: rgba(167, 139, 250, .15);--event-chip-color: #a78bfa;--event-chip-hover: rgba(167, 139, 250, .25);--board-bg: #0d0d0d;--card-bg: #181818;--card-border: #262626;--check-done: #22C55E;--check-ghost-o: .5;--check-ghost-o-focus: .9;--danger: #f87171;--danger-hover: #ef4444;--success: #4ade80;--warning: #fbbf24;--info: #60a5fa}.emoji-picker-portal{position:fixed;z-index:99999;display:grid;grid-template-columns:repeat(6,1fr);gap:2px;padding:8px;background:var(--bg);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 28px #00000024;width:208px}.emoji-picker-portal .emoji-opt{background:none;border:none;font-size:18px;padding:4px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .1s;line-height:1}.emoji-picker-portal .emoji-opt:hover{background:var(--surface)}.kt-tip{position:fixed;top:0;left:0;z-index:99999;max-width:260px;padding:5px 9px;background:#1f1f1f;color:#f4f4f4;border:1px solid rgba(255,255,255,.1);border-radius:6px;box-shadow:0 6px 20px #00000040;font-size:12.5px;line-height:1.35;font-weight:500;overflow-wrap:anywhere;pointer-events:none;opacity:0;visibility:hidden}.kt-tip.on{opacity:1;visibility:visible}.kt-tip:after{content:"";position:absolute;top:var(--kt-arrow-top, 50%);left:-4px;width:7px;height:7px;margin-top:-4px;background:#1f1f1f;border-left:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1);transform:rotate(45deg)}.kt-tip.flip:after{left:auto;right:-4px;border-left:none;border-bottom:none;border-right:1px solid rgba(255,255,255,.1);border-top:1px solid rgba(255,255,255,.1)}.text-s{--text-sm: 12px;--text-task: 13.5px}.text-m{--text-sm: 14px;--text-task: 15.5px}.text-l{--text-sm: 16px;--text-task: 17.5px}.spacing-s{--rowh: 30px}.spacing-m{--rowh: 36px}.spacing-l{--rowh: 46px}.dodo-title{--title-size: 1.4rem;display:inline-block;font-family:var(--font-heading);font-size:var(--title-size);font-weight:500;letter-spacing:.02em;line-height:1;text-transform:uppercase}.dodo-title:first-letter{font-size:calc(var(--title-size) * 1.44)}.dodo-title[contenteditable=true]:first-letter{font-size:inherit}body{background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;height:100vh;overflow:hidden;transition:background .2s,color .2s;-webkit-user-select:none;user-select:none;touch-action:manipulation}input,textarea,[contenteditable=true],[contenteditable=""]{-webkit-user-select:text;user-select:text}#app{height:100vh;display:flex;flex-direction:column}input,button,textarea{font-family:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent)!important;outline-offset:2px}input:focus-visible,textarea:focus-visible,[contenteditable]:focus-visible{outline:none!important}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.surface-btn{background:var(--surface);border:none;border-radius:4px;color:var(--text-muted);cursor:pointer;transition:color .15s,background .15s}.surface-btn:hover{background:var(--border);color:var(--text)}.dodo-seg{display:flex;flex-shrink:0;background:var(--surface);border-radius:4px;overflow:hidden}.dodo-seg-btn{display:flex;align-items:center;justify-content:center;border:none;background:none;padding:5px 10px;font:inherit;font-size:11px;font-weight:600;letter-spacing:.04em;white-space:nowrap;color:var(--text-muted);cursor:pointer;transition:color .15s,background .15s}.dodo-seg-btn:hover:not(:disabled):not(.act):not(.active){background:var(--border);color:var(--text)}.dodo-seg-btn.act,.dodo-seg-btn.active{background:var(--accent);color:var(--on-accent, #fff)}.dodo-seg-btn:disabled{opacity:.4;cursor:not-allowed}.dodo-seg-btn.icon{padding:5px 9px}.dodo-seg-btn.icon svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.app-fab{width:56px;height:56px;border:none;border-radius:50%;background:var(--accent);color:var(--on-accent, #1a1510);display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;box-shadow:0 6px 20px #00000047;transition:transform .12s,opacity .12s}.app-fab:active{transform:scale(.96)}.app-fab svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round}.app-fab--main{position:absolute;right:16px;bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:30}.beta-tag{display:inline-block;vertical-align:middle;padding:1px 5px;border-radius:3px;background:var(--accent);color:var(--on-accent, #1a1510);font-family:var(--font-heading);font-size:9px;font-weight:700;letter-spacing:.06em;line-height:1.4;text-transform:uppercase}*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--text) 22%,transparent) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-corner{background:transparent}::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text) 22%,transparent);border:2px solid transparent;background-clip:content-box;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--text) 40%,transparent);border:2px solid transparent;background-clip:content-box}:root[data-motion=off] *:not(.dodo-loader,.dodo-loader *),:root[data-motion=off] *:not(.dodo-loader,.dodo-loader *):before,:root[data-motion=off] *:not(.dodo-loader,.dodo-loader *):after{animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important;scroll-behavior:auto!important}:root[data-motion=off] .toast-timer{display:none}@keyframes task-check-pop{0%{transform:scale(1)}40%{transform:scale(1.35)}70%{transform:scale(.88)}to{transform:scale(1)}}@keyframes task-check-draw{0%{stroke-dashoffset:24}to{stroke-dashoffset:0}}@keyframes task-strike-in{0%{text-decoration-color:transparent}to{text-decoration-color:currentColor}}.task-ui.completing .task-ui-check{opacity:1;animation:task-check-pop .42s cubic-bezier(.34,1.56,.64,1)}.task-ui.completing .task-ui-check svg{display:block}.task-ui.completing .task-ui-check svg polyline{stroke-dasharray:24;stroke-dashoffset:24;animation:task-check-draw .26s ease-out .08s forwards}.task-ui.completing .task-ui-title{color:var(--text-muted);text-decoration-line:line-through;text-decoration-thickness:1.5px;text-decoration-color:transparent;transition:color .26s ease;animation:task-strike-in .26s ease-out forwards}.task-ui.vanishing{opacity:0;transform:translate(18px);pointer-events:none;transition:opacity .2s ease-in,transform .24s cubic-bezier(.4,0,1,1)}.task-ui.burning{position:relative;pointer-events:none;overflow:hidden;z-index:3;animation:task-burn-collapse .7s ease-in forwards}.task-ui.burning .task-ui-title,.task-ui.burning .task-text,.task-ui.burning .task-meta{animation:task-burn-letters .7s ease-in forwards}.task-ui.burning .task-ui-title{position:relative}.task-ui.burning .task-ui-title:after{content:"";position:absolute;top:-2px;right:0;bottom:-2px;left:0;background:radial-gradient(60% 55% at 18% 40%,rgba(255,180,40,.55),transparent 70%),radial-gradient(55% 50% at 52% 55%,rgba(255,90,0,.5),transparent 72%),radial-gradient(60% 55% at 82% 45%,rgba(255,140,0,.5),transparent 70%);mix-blend-mode:screen;pointer-events:none;animation:task-burn-embers .7s ease-in forwards}@keyframes task-burn-letters{0%{opacity:1;color:var(--text);text-shadow:none;filter:blur(0);transform:translateY(0);letter-spacing:normal}30%{opacity:1;color:#ff7a18;text-shadow:0 0 5px rgba(255,150,40,.95),0 0 11px rgba(255,60,0,.7)}to{opacity:0;color:#ffb020;text-shadow:0 0 8px rgba(255,120,0,.6);filter:blur(2.5px) brightness(1.8);transform:translateY(-5px);letter-spacing:.08em}}@keyframes task-burn-embers{0%{opacity:0;transform:translateY(2px) scaleY(.9)}35%{opacity:1;transform:translateY(0) scaleY(1)}to{opacity:0;transform:translateY(-70%) scaleY(.6)}}@keyframes task-burn-collapse{0%{opacity:1}75%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.task-ui.completing .task-ui-check,.task-ui.completing .task-ui-check svg polyline,.task-ui.completing .task-ui-title{animation:none}.task-ui.completing .task-ui-title{text-decoration-color:currentColor}.task-ui.vanishing{transition:opacity .15s ease}.task-ui.burning{animation:task-burn-reduced .2s ease forwards}.task-ui.burning .task-ui-title,.task-ui.burning .task-text,.task-ui.burning .task-meta{animation:none;opacity:0}.task-ui.burning .task-ui-title:after{display:none}}@keyframes task-burn-reduced{to{opacity:0}}
