:root{--serif:"Nanum Myeongjo", Georgia, "Times New Roman", "Apple SD Gothic Neo", serif;--sans:"Pretendard", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--bg:#f2ede1;--card:#fbf8f0;--card-2:#fbf8f0;--border:#ded4bf;--border-strong:#c7ba9e;--hairline:#e4ddcb;--text:#221d16;--muted:#6d6454;--faint:#948a76;--chip:#efe8d9;--shadow:0 1px 2px #3c301c0f;--shadow-hover:0 4px 14px #3c301c1a;--brand:#2f6b45;--brand-strong:#24583a;--sc:var(--muted);--pending:#2f6b45;--overdue:#9b2f2f;--soon:#a76d18;--done:#6d6454;--error:#9b2f2f}:root[data-theme=dark]{--bg:#16130d;--card:#1e1a12;--card-2:#221d14;--border:#342e21;--border-strong:#4a4230;--hairline:#2b261c;--text:#eee6d4;--muted:#a99f89;--faint:#7d7562;--chip:#241f16;--shadow:0 1px 2px #0006;--shadow-hover:0 6px 18px #00000080;--brand:#6fae82;--brand-strong:#5b9a6e;--pending:#6fae82;--overdue:#d18585;--soon:#d0a24e;--done:#a99f89;--error:#d18585}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body,#root{min-height:100%;margin:0;padding:0}body{color:var(--text);background:var(--bg);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overscroll-behavior-y:none}button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.wrap{max-width:820px;padding:max(24px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) 64px max(20px, env(safe-area-inset-left));margin:0 auto}.header{border-bottom:2px solid var(--text);justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:14px;display:flex}.headerRight{align-items:center;gap:8px;display:inline-flex}.brand{align-items:center;gap:13px;min-width:0;display:flex}.brandLogo{border:1px solid var(--border);background:var(--card);width:40px;height:40px;color:var(--brand);border-radius:6px;flex-shrink:0;place-items:center;display:grid}.title{font-family:var(--serif);letter-spacing:-.01em;margin:0;font-size:24px;font-weight:800;line-height:1.15}.subtitle{font-family:var(--serif);color:var(--muted);margin:3px 0 0;font-size:13px;font-style:italic}.iconBtn{background:var(--card);width:40px;height:40px;color:var(--muted);border:1px solid var(--border);cursor:pointer;border-radius:8px;flex:none;place-items:center;transition:color .15s,border-color .15s,transform .12s,background .15s;display:grid}.iconBtn:hover:not(:disabled){color:var(--text);border-color:var(--border-strong);background:var(--card-2)}.iconBtn:active:not(:disabled){transform:scale(.92)}.iconBtn:disabled{opacity:.6;cursor:default}.iconBtn .spin{transform-origin:50%;animation:.8s linear infinite spin}.themeSeg{background:var(--card);border:1px solid var(--border);border-radius:8px;flex:none;gap:2px;padding:3px;display:inline-flex}.themeSeg button{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;transition:color .15s,background .15s,transform .12s;display:grid}.themeSeg button:hover{color:var(--text)}.themeSeg button:active{transform:scale(.9)}.themeSeg button[aria-pressed=true]{background:var(--text);color:var(--card)}.meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0 2px 14px;display:flex}.live{color:var(--text);font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-start;gap:3px;font-size:13px;font-weight:600;display:inline-flex}.liveTime{align-items:center;gap:8px;display:inline-flex}.liveDot{background:var(--pending);width:8px;height:8px;box-shadow:0 0 0 0 color-mix(in srgb, var(--pending) 60%, transparent);border-radius:50%;animation:2.4s infinite pulse}.liveDot.busy{background:var(--soon);animation-duration:1s}.pollNote{font-family:var(--serif);color:var(--faint);font-size:11.5px;font-style:italic;font-weight:400}.statsRow{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.statPill{border:1px solid var(--border);background:var(--card);box-shadow:var(--shadow);border-radius:8px;flex-direction:column;gap:2px;padding:12px 14px;display:flex}.statPill strong{font-family:var(--serif);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:22px;font-weight:800;line-height:1.1}.statPill span{color:var(--muted);font-size:12px;font-weight:700}.statPill.s-pending strong{color:var(--pending)}.statPill.s-overdue strong{color:var(--overdue)}.statPill.s-soon strong{color:var(--soon)}.statPill.s-done strong{color:var(--done)}.listTabs{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.listTab{background:var(--card);height:40px;color:var(--muted);border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:7px;padding:0 15px;font-size:13px;font-weight:700;transition:color .15s,border-color .15s,background .15s,transform .12s;display:inline-flex}.listTab:hover{color:var(--text);border-color:var(--border-strong)}.listTab:active{transform:scale(.96)}.listTab[aria-pressed=true]{color:var(--brand);background:color-mix(in srgb, var(--brand) 12%, var(--card));border-color:color-mix(in srgb, var(--brand) 45%, transparent)}.listTabCount{min-width:20px;height:20px;font-family:var(--serif);color:var(--brand);background:color-mix(in srgb, var(--brand) 13%, var(--card));border:1px solid color-mix(in srgb, var(--brand) 35%, transparent);border-radius:999px;place-items:center;padding:0 6px;font-size:11px;font-weight:800;display:inline-grid}.grid{gap:12px;display:grid}.card{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:8px;padding:16px 18px;transition:box-shadow .2s,border-color .2s}.card:hover{box-shadow:var(--shadow-hover);border-color:var(--border-strong)}.cardHead{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px;display:flex}.cardTitle{font-family:var(--serif);letter-spacing:-.01em;margin:0 0 5px;font-size:19px;font-weight:800;line-height:1.3}.cardSub{color:var(--muted);margin:0;font-size:12.5px;font-weight:500}.sectionLabel{font-family:var(--serif);color:var(--muted);border-bottom:1px solid var(--hairline);margin:14px 0 8px;padding-bottom:6px;font-size:13px;font-weight:800}.taskList{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.taskRow{--sc:var(--muted);border:1px solid var(--border);background:var(--card);border-radius:6px;align-items:flex-start;gap:12px;padding:12px 14px 12px 18px;display:flex;position:relative;overflow:hidden}.taskRow.s-pending{--sc:var(--pending)}.taskRow.s-soon{--sc:var(--soon)}.taskRow.s-overdue{--sc:var(--overdue)}.taskRow.s-done{--sc:var(--done);opacity:.78}.statusRail{background:var(--sc);width:4px;position:absolute;top:0;bottom:0;left:0}.taskCheck{width:20px;height:20px;accent-color:var(--brand);flex:none;margin-top:2px}.taskBody{flex:auto;min-width:0}.taskTitle{font-family:var(--serif);letter-spacing:-.01em;overflow-wrap:anywhere;margin:0 0 4px;font-size:15.5px;font-weight:700;line-height:1.4}.taskTitle.done{color:var(--muted);font-weight:600;text-decoration:line-through}.taskMeta{color:var(--sc);background:color-mix(in srgb, var(--sc) 11%, var(--card));border:1px solid color-mix(in srgb, var(--sc) 38%, transparent);border-radius:5px;align-items:center;gap:6px;margin-top:2px;padding:4px 9px;font-size:11.5px;font-weight:700;display:inline-flex}.taskNotes{color:var(--muted);background:var(--chip);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:5px;margin:8px 0 0;padding:8px 10px;font-size:12.5px;line-height:1.55}.badge{--sc:var(--muted);font-family:var(--serif);white-space:nowrap;color:var(--sc);background:color-mix(in srgb, var(--sc) 11%, var(--card));border:1px solid color-mix(in srgb, var(--sc) 38%, transparent);border-radius:5px;flex:none;align-items:center;gap:7px;padding:6px 12px;font-size:13px;font-weight:700;display:inline-flex}.badge.s-pending{--sc:var(--pending)}.cardError{border-color:color-mix(in srgb, var(--error) 45%, var(--border))}.errText{color:var(--error);margin:6px 0 0;font-size:14px;font-weight:700}.emptyNote{font-family:var(--serif);text-align:center;color:var(--muted);margin:0;padding:44px 0;font-size:15px;font-style:italic}.loadingNote{font-family:var(--serif);text-align:center;color:var(--muted);margin:0;padding:32px 0;font-size:15px;font-style:italic}.taskRow.is-busy{opacity:.6;pointer-events:none}.taskDelete{border:1px solid var(--border);background:var(--card);width:36px;height:36px;color:var(--muted);cursor:pointer;border-radius:6px;flex:none;place-items:center;transition:color .15s,border-color .15s,background .15s,transform .12s;display:grid}.taskDelete:hover:not(:disabled){color:var(--overdue);border-color:color-mix(in srgb, var(--overdue) 40%, transparent);background:color-mix(in srgb, var(--overdue) 8%, var(--card))}.taskDelete:active:not(:disabled){transform:scale(.92)}.taskDelete:disabled{opacity:.5;cursor:default}.addTaskForm{border-bottom:1px solid var(--hairline);flex-direction:column;gap:8px;margin-bottom:14px;padding-bottom:14px;display:flex}.addTaskRow{gap:8px;display:flex}.addTaskInput,.addTaskNotes{border:1px solid var(--border);background:var(--card);width:100%;color:var(--text);font-family:var(--sans);border-radius:6px;padding:10px 12px;font-size:14px;font-weight:500;transition:border-color .15s}.addTaskInput:focus,.addTaskNotes:focus{border-color:var(--brand);outline:none}.addTaskInput{font-family:var(--serif);flex:1;font-weight:700}.addTaskNotes{color:var(--muted);font-size:13px}.addTaskBtn{background:var(--brand);height:42px;color:var(--card);cursor:pointer;border:none;border-radius:6px;flex:none;padding:0 18px;font-size:13px;font-weight:700;transition:opacity .15s,transform .12s}.addTaskBtn:hover:not(:disabled){opacity:.92}.addTaskBtn:active:not(:disabled){transform:scale(.96)}.addTaskBtn:disabled{opacity:.5;cursor:default}.addTaskError{color:var(--error);margin:0;font-size:12.5px;font-weight:700}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--pending) 50%, transparent)}70%{box-shadow:0 0 0 7px #0000}to{box-shadow:0 0 #0000}}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=640px){.wrap{padding:max(22px, env(safe-area-inset-top)) max(15px, env(safe-area-inset-right)) calc(48px + env(safe-area-inset-bottom)) max(15px, env(safe-area-inset-left))}.title{font-size:21px}.statsRow{gap:6px}.statPill{text-align:center;align-items:center;padding:10px 6px}.statPill strong{font-size:18px}.statPill span{font-size:10px}.card{padding:16px}.cardTitle{font-size:18px}}@media (prefers-reduced-motion:reduce){.liveDot,.iconBtn .spin{animation:none}}
