:root{--paper: #fdf7f1;--paper-2: #f7ede3;--card: #fffcf9;--ink: #2c2521;--ink-2: #6b5d54;--ink-3: #a2938a;--line: #ece0d4;--line-2: #f4ebe2;--accent: #d1553c;--accent-soft: #f6dfd7;--amber: #d99a25;--slate: #8fa2ad;--radius-lg: 18px;--radius: 14px;--radius-sm: 10px;--shadow-sm: 0 1px 2px rgba(72, 48, 34, .05);--shadow: 0 2px 4px rgba(72, 48, 34, .05), 0 12px 28px -18px rgba(72, 48, 34, .35);--shadow-lg: 0 18px 48px -20px rgba(72, 48, 34, .4);--serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--ease-out: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none;padding:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.app{position:relative;min-height:100%;padding:clamp(28px,6vw,72px) clamp(14px,4vw,32px) 96px;background:radial-gradient(120% 70% at 12% -10%,#fff4e7,#fff4e700 60%),radial-gradient(90% 60% at 92% 4%,#fbe6dd,#fbe6dd00 55%),linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 100%);background-attachment:fixed;overflow-x:hidden}.app:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.35;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.16'/%3E%3C/svg%3E")}.app__glow{position:fixed;top:-220px;left:50%;width:min(780px,120vw);height:420px;transform:translate(-50%);pointer-events:none;background:radial-gradient(closest-side,#d1553c24,#d1553c00);filter:blur(8px)}.shell{position:relative;width:min(720px,100%);margin:0 auto}.masthead{margin-bottom:clamp(24px,4vw,38px);animation:rise .7s var(--ease-out) both}.masthead__logo{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(2.1rem,6vw,2.9rem);letter-spacing:-.02em;line-height:1.05}.masthead__logo em{font-style:italic;color:var(--accent)}.masthead__date{margin:6px 0 0;color:var(--ink-2);font-size:.95rem;letter-spacing:.01em}.progress{margin-top:18px;display:flex;flex-direction:column;gap:8px}.progress__label{font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.progress__track{height:4px;border-radius:999px;background:var(--line);overflow:hidden}.progress__fill{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--amber),var(--accent));transition:width .62s var(--ease-out)}.capture{margin-bottom:clamp(26px,5vw,40px);animation:rise .7s 60ms var(--ease-out) both}.capture__field{display:flex;align-items:center;gap:10px;padding:10px 12px 10px 16px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);transition:border-color .2s,box-shadow .2s,transform .2s var(--ease-out)}.capture__field:focus-within{border-color:var(--accent-soft);box-shadow:var(--shadow-lg);transform:translateY(-1px)}.capture__glyph{font-family:var(--serif);font-size:1.35rem;line-height:1;color:var(--ink-3)}.capture__input{flex:1;min-width:0;border:none;background:none;padding:8px 0;font-size:1.02rem}.capture__input:focus{outline:none}.capture__input::placeholder{color:var(--ink-3)}.capture__chips{display:flex;align-items:center;gap:6px;flex-shrink:0}.capture__submit{padding:8px 16px;border-radius:999px;background:var(--ink);color:var(--paper);font-size:.85rem;font-weight:600;letter-spacing:.01em;transition:background .18s,opacity .18s,transform .18s var(--ease-out)}.capture__submit:hover:not(:disabled){background:var(--accent);transform:translateY(-1px)}.capture__submit:disabled{opacity:.28;cursor:default}.capture__hint{margin:10px 0 0 18px;font-size:.76rem;color:var(--ink-3)}kbd{font-family:var(--sans);font-size:.72rem;padding:1px 5px;border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;background:var(--card)}.chip{padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:.79rem;color:var(--ink-2);white-space:nowrap;transition:border-color .18s,color .18s,background .18s}.chip:hover{border-color:var(--ink-3);color:var(--ink)}.chip--active{border-color:var(--accent-soft);background:var(--accent-soft);color:#97382a}.prio{display:inline-flex;align-items:center;gap:7px;padding:6px 12px 6px 10px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:.79rem;color:var(--ink-2);transition:border-color .18s,background .18s}.prio:hover{border-color:var(--ink-3)}.prio__dot{width:8px;height:8px;border-radius:50%;background:var(--dot, var(--slate));box-shadow:0 0 0 3px color-mix(in srgb,var(--dot, var(--slate)) 18%,transparent);transition:background .22s,box-shadow .22s}.prio--high{--dot: var(--accent)}.prio--medium{--dot: var(--amber)}.prio--low{--dot: var(--slate)}.prio--compact{padding:6px;border-color:transparent;background:none}.prio--compact:hover{background:var(--line-2)}.popover-anchor{position:relative}.popover{position:absolute;top:calc(100% + 8px);right:0;z-index:20;min-width:172px;padding:6px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);animation:pop .18s var(--ease-out) both}.popover__item{display:block;width:100%;text-align:left;padding:8px 10px;border-radius:var(--radius-sm);font-size:.88rem;color:var(--ink-2);transition:background .14s,color .14s}.popover__item:hover,.popover__item.is-active{background:var(--line-2);color:var(--ink)}.popover__date{display:flex;flex-direction:column;gap:6px;padding:10px;margin-top:4px;border-top:1px solid var(--line);font-size:.76rem;color:var(--ink-3)}.popover__date input{border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 8px;background:var(--paper);font-size:.85rem}.group{margin-bottom:clamp(22px,4vw,34px);animation:rise .7s .12s var(--ease-out) both}.group__header{display:flex;align-items:center;gap:10px;margin-bottom:10px;padding:0 4px}.group__title{margin:0;font-family:var(--serif);font-weight:400;font-size:1.24rem;letter-spacing:-.01em}.group__count{min-width:20px;height:20px;padding:0 6px;display:grid;place-items:center;border-radius:999px;background:var(--line-2);color:var(--ink-3);font-size:.72rem;font-weight:700}.group__rule{flex:1;height:1px;background:linear-gradient(90deg,var(--line),rgba(236,224,212,0))}.group__subtitle{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.group__empty{margin:0;padding:18px 20px;border:1px dashed var(--line);border-radius:var(--radius);color:var(--ink-3);font-family:var(--serif);font-style:italic;font-size:.98rem}.group__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.row{position:relative;display:flex;align-items:flex-start;gap:12px;padding:13px 14px 13px 18px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;animation:row-in .32s var(--ease-out) both;transition:box-shadow .2s,border-color .2s,transform .2s var(--ease-out)}.row:hover{border-color:#e2d3c4;box-shadow:var(--shadow)}.row__rail{position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--rail, var(--slate));opacity:.85}.row--high{--rail: var(--accent)}.row--medium{--rail: var(--amber)}.row--low{--rail: var(--slate)}.row__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;padding-top:1px}.row__title{position:relative;display:block;width:100%;text-align:left;font-size:.98rem;line-height:1.45;color:var(--ink);word-break:break-word}.row__strike{position:absolute;left:0;top:50%;width:100%;height:1.5px;background:var(--ink-2);transform:scaleX(0);transform-origin:left center;border-radius:2px}.row__edit{width:100%;padding:2px 6px;margin:-2px -6px;border:none;border-radius:6px;background:var(--line-2);font-size:.98rem;line-height:1.45}.row__edit:focus{outline:2px solid var(--accent-soft)}.row__meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pill{padding:2px 9px;border-radius:999px;background:var(--line-2);color:var(--ink-2);font-size:.72rem;letter-spacing:.01em;white-space:nowrap}.pill--late{background:var(--accent-soft);color:#97382a;font-weight:600}.row__notes{font-size:.78rem;color:var(--ink-3);font-style:italic;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row__controls{display:flex;align-items:center;gap:2px;opacity:0;transform:translate(4px);transition:opacity .2s,transform .2s var(--ease-out)}.row:hover .row__controls,.row:focus-within .row__controls{opacity:1;transform:none}.row__date,.row__delete{position:relative;display:grid;place-items:center;width:30px;height:30px;border-radius:8px;color:var(--ink-3);cursor:pointer;transition:background .16s,color .16s}.row__date:hover,.row__delete:hover{background:var(--line-2);color:var(--ink)}.row__delete:hover{color:var(--accent)}.row__date svg,.row__delete svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.row__date input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.checkbox{flex-shrink:0;width:22px;height:22px;margin-top:1px;border-radius:7px;border:1.5px solid #d8c8b8;background:var(--paper);display:grid;place-items:center;transition:border-color .2s,background .2s,transform .16s var(--ease-out)}.checkbox:hover{border-color:var(--accent);transform:scale(1.06)}.checkbox svg{width:15px;height:15px;fill:none;stroke:var(--paper);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.checkbox__tick{stroke-dasharray:22;stroke-dashoffset:22}.checkbox.is-checked{background:var(--accent);border-color:var(--accent)}.checkbox.is-checked .checkbox__tick{animation:draw .26s var(--ease-out) forwards}.row--completing{animation:glow .6s var(--ease-out) forwards;pointer-events:none}.row--completing .row__strike{animation:strike .3s .12s var(--ease-out) forwards}.row--completing .row__title-text{animation:fade-label .4s .16s var(--ease-out) forwards}@keyframes glow{0%{box-shadow:var(--shadow-sm)}38%{box-shadow:0 0 0 3px var(--accent-soft),0 10px 26px -14px #d1553c99;background:#fffaf7}70%{opacity:1;max-height:120px;margin-bottom:0;transform:none}to{opacity:0;max-height:0;padding-top:0;padding-bottom:0;margin-bottom:-8px;border-width:0;transform:translate(10px) scale(.985)}}@keyframes strike{to{transform:scaleX(1)}}@keyframes fade-label{to{color:var(--ink-3)}}@keyframes draw{to{stroke-dashoffset:0}}.tray{margin-top:6px;border-top:1px solid var(--line);padding-top:14px}.tray__toggle{display:inline-flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;border-radius:999px;font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);transition:color .16s,background .16s}.tray__toggle:hover{color:var(--ink);background:var(--line-2)}.tray__chevron{width:0;height:0;margin-left:4px;border-left:5px solid currentColor;border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .24s var(--ease-out)}.tray.is-open .tray__chevron{transform:rotate(90deg)}.tray__count{padding:1px 7px;border-radius:999px;background:var(--line-2);font-size:.7rem}.tray__list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:2px;animation:rise .32s var(--ease-out) both}.tray__row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);transition:background .16s}.tray__row:hover{background:var(--line-2)}.tray__check{display:grid;place-items:center;width:17px;height:17px;flex-shrink:0;border-radius:5px;background:#d9cec4}.tray__check svg{width:11px;height:11px;fill:none;stroke:var(--card);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.tray__title{flex:1;min-width:0;font-size:.9rem;color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--line);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tray__time{font-size:.72rem;color:var(--ink-3);flex-shrink:0}.tray__undo{flex-shrink:0;font-size:.76rem;font-weight:600;color:var(--accent);padding:2px 6px;border-radius:6px;opacity:0;transition:opacity .16s,background .16s}.tray__row:hover .tray__undo,.tray__undo:focus-visible{opacity:1}.tray__undo:hover{background:var(--accent-soft)}.banner{margin:0 0 18px;padding:14px 18px;border-radius:var(--radius);background:var(--card);border:1px solid var(--line);color:var(--ink-2);font-size:.9rem}.banner--error{border-color:var(--accent-soft);background:var(--accent-soft);color:#97382a}.footer{margin-top:46px;text-align:center;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);opacity:.75}.toast-layer{position:fixed;left:50%;bottom:26px;transform:translate(-50%);z-index:40;pointer-events:none}.toast{display:flex;align-items:center;gap:14px;padding:11px 12px 11px 18px;border-radius:999px;background:var(--ink);color:#f6ece3;font-size:.86rem;box-shadow:var(--shadow-lg);pointer-events:auto;animation:toast-in .32s var(--ease-out) both;max-width:min(92vw,520px)}.toast__message{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast__action{flex-shrink:0;padding:5px 13px;border-radius:999px;background:#ffffff1f;color:#ffd9cd;font-size:.8rem;font-weight:600;transition:background .16s}.toast__action:hover{background:#ffffff38}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes row-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:none}}@keyframes toast-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media (max-width: 560px){.capture__field{flex-wrap:wrap}.capture__input{flex:1 1 100%;order:1}.capture__glyph{display:none}.capture__chips{order:2;width:100%;justify-content:flex-end}.row__controls{opacity:1;transform:none}.row__notes{display:none}}@media (max-width: 400px){.row{padding-left:14px;gap:10px}.group__subtitle{display:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.row--completing{opacity:0}.checkbox.is-checked .checkbox__tick{stroke-dashoffset:0}}
