:root{--bg: #fff5f7;--bg-gradient-1: #fff0f5;--bg-gradient-2: #f3ebfb;--surface: #ffffff;--surface-soft: #fbf5fe;--primary: #c8a8e9;--primary-dark: #9b7ecf;--primary-soft: #eadff7;--pink: #ffb7c5;--pink-soft: #ffe4ea;--mint: #b8e0d2;--mint-soft: #dff3eb;--text: #4a3b52;--text-soft: #8a7894;--text-muted: #b8a8c2;--border: #f0e6f2;--shadow-sm: 0 2px 8px rgba(155, 126, 207, .08);--shadow-md: 0 8px 24px rgba(155, 126, 207, .12);--shadow-lg: 0 16px 40px rgba(155, 126, 207, .18);--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{font-family:Quicksand,-apple-system,BlinkMacSystemFont,sans-serif;color:var(--text);background:linear-gradient(135deg,var(--bg-gradient-1) 0%,var(--bg-gradient-2) 100%);min-height:100vh;-webkit-font-smoothing:antialiased}body{padding:24px 16px 120px}@media (min-width: 640px){body{padding:32px 20px 120px}}button{font-family:inherit}.container{max-width:560px;margin:0 auto}.header{display:flex;align-items:center;gap:14px;margin-bottom:28px;padding:0 4px}.mascot{width:56px;height:56px;flex-shrink:0;filter:drop-shadow(0 4px 10px rgba(200,168,233,.35));animation:float 4s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.title-group h1{font-size:26px;font-weight:700;color:var(--text);letter-spacing:-.3px}.title-group p{font-size:14px;color:var(--text-soft);margin-top:2px;font-weight:500}.card{background:var(--surface);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-md);border:1px solid var(--border)}.add-form{display:flex;flex-direction:column;gap:12px}.input-row{display:flex;gap:10px}.input-task{flex:1;border:1.5px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;font-family:inherit;font-size:15px;color:var(--text);background:var(--surface-soft);transition:all .2s ease;outline:none}.input-task::placeholder{color:var(--text-muted)}.input-task:focus{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 4px var(--primary-soft)}.input-time{border:1.5px solid var(--border);border-radius:var(--radius-md);padding:14px;font-family:inherit;font-size:15px;color:var(--text);background:var(--surface-soft);transition:all .2s ease;outline:none;width:130px;cursor:pointer}.input-time:focus{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 4px var(--primary-soft)}.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;border:none;border-radius:var(--radius-md);padding:14px 24px;font-family:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #9b7ecf40}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px #9b7ecf59}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.input-date{border:1.5px solid var(--border);border-radius:var(--radius-md);padding:14px;font-family:inherit;font-size:15px;color:var(--text);background:var(--surface-soft);transition:all .2s ease;outline:none;cursor:pointer;flex:1;min-width:0}.input-date:focus{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 4px var(--primary-soft)}.input-date[hidden]{display:none}.recurrence-group{display:flex;flex-direction:column;gap:8px}.seg-control{display:flex;gap:4px;background:var(--surface-soft);border:1.5px solid var(--border);border-radius:var(--radius-md);padding:4px}.seg-btn{flex:1;border:none;background:transparent;color:var(--text-soft);font-family:inherit;font-size:13.5px;font-weight:600;padding:9px 10px;border-radius:12px;cursor:pointer;transition:background .16s,color .16s}.seg-btn:hover{color:var(--text)}.seg-btn.active{background:var(--surface);color:var(--primary-dark);box-shadow:var(--shadow-sm)}.weekday-row{display:flex;gap:6px;flex-wrap:wrap}.weekday-row[hidden]{display:none}.day-chip{flex:1 1 0;min-width:38px;border:1.5px solid var(--border);background:var(--surface-soft);color:var(--text-soft);font-family:inherit;font-size:12.5px;font-weight:600;padding:9px 4px;border-radius:999px;cursor:pointer;transition:all .16s}.day-chip:hover{border-color:var(--primary-soft);color:var(--text)}.day-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.btn-secondary{background:var(--surface-soft);color:var(--primary-dark);border:1.5px solid var(--primary-soft);border-radius:var(--radius-md);padding:10px 16px;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-secondary:hover{background:var(--primary-soft)}.list-section{margin-top:28px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding:0 4px}.section-header h2{font-size:14px;font-weight:600;color:var(--text-soft);text-transform:uppercase;letter-spacing:.8px}.count-badge{background:var(--primary-soft);color:var(--primary-dark);padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700}.task-list{display:flex;flex-direction:column;gap:10px;list-style:none}.task-item{background:var(--surface);border-radius:var(--radius-md);padding:14px 16px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow-sm);border:1px solid var(--border);transition:all .25s ease;animation:slideIn .3s ease}.task-row{display:flex;align-items:center;gap:14px}@keyframes slideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.task-item:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.task-item.completed{background:var(--mint-soft);border-color:var(--mint)}.task-item.completed .task-text{text-decoration:line-through;color:var(--text-muted)}.task-item.fired{border-color:var(--pink);background:linear-gradient(135deg,#fff 0%,var(--pink-soft) 100%)}.checkbox{width:24px;height:24px;border-radius:8px;border:2px solid var(--primary-soft);background:var(--surface);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease;padding:0}.checkbox:hover{border-color:var(--primary)}.task-item.completed .checkbox{background:var(--mint);border-color:var(--mint)}.checkbox svg{width:14px;height:14px;stroke:#fff;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity .2s ease}.task-item.completed .checkbox svg{opacity:1}.task-content{flex:1;min-width:0}.task-text{font-size:15px;font-weight:500;color:var(--text);word-wrap:break-word}.task-time{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--primary-dark);background:var(--primary-soft);padding:2px 8px;border-radius:999px}.task-item.completed .task-time{background:var(--mint);color:var(--text)}.task-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px}.snoozed-badge{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:4px;font:inherit;font-size:11px;font-weight:700;letter-spacing:.2px;color:#8a6312;background:#fff1c7;padding:2px 8px 2px 6px;border-radius:999px;line-height:1.4;transition:background .18s ease,color .18s ease,transform .12s ease}.snoozed-badge svg{flex-shrink:0}.snoozed-badge:hover,.snoozed-badge:focus-visible{background:#ffe7a1;color:#6e4c0a;outline:none}.snoozed-badge:active{transform:translateY(1px)}.task-item.snoozed,.task-item.snoozed.fired{border-color:#f5d982;background:linear-gradient(135deg,#fff,#fff7df)}.btn-delete{width:32px;height:32px;border-radius:10px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.btn-delete:hover{background:var(--pink-soft);color:#e67b8a}.btn-icon{width:32px;height:32px;border-radius:10px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.btn-icon:hover,.task-item.editing .btn-icon.btn-edit{background:var(--primary-soft);color:var(--primary-dark)}.task-edit-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;animation:pickerIn .18s ease}.input-task-edit{flex:1 1 160px;min-width:0;padding:10px 12px;font-size:15px}.task-edit-row .input-time{padding:10px 12px;font-size:14px}.task-edit-actions{display:flex;gap:6px;flex-shrink:0}.btn-small{padding:8px 14px;font-size:13px;font-weight:600;border-radius:8px;box-shadow:none}.btn-primary.btn-small:hover{transform:none;box-shadow:0 2px 6px #9b7ecf40}.empty-state{text-align:center;padding:48px 20px;color:var(--text-soft)}.empty-state .mascot-small{width:80px;height:80px;margin:0 auto 16px;opacity:.7}.empty-state p{font-size:15px;font-weight:500}.door-knock{position:fixed;top:50%;right:0;transform:translateY(-50%);width:2px;height:2px;z-index:99;pointer-events:none;opacity:0;visibility:hidden}.door-knock.knocking{opacity:1;visibility:visible}.knock-text{position:absolute;right:36px;top:50%;font-family:Quicksand,sans-serif;font-size:11px;font-weight:700;color:var(--primary-dark);letter-spacing:.6px;text-transform:uppercase;white-space:nowrap;opacity:0;transform:translateY(-50%)}.door-knock.knocking .knock-text{animation:knock-text-pop .9s ease forwards}@keyframes knock-text-pop{0%{opacity:0;transform:translate(8px,-50%)}20%{opacity:1;transform:translateY(-50%)}80%{opacity:1;transform:translateY(-50%)}to{opacity:0;transform:translate(-4px,-50%)}}.knock-ring{position:absolute;right:0;top:50%;width:24px;height:24px;margin-right:-12px;margin-top:-12px;border-radius:50%;border:2.5px solid var(--pink);opacity:0;transform:scale(.2)}.door-knock.knocking .ring-1{animation:ring-pulse .7s cubic-bezier(.3,.8,.4,1) .05s}.door-knock.knocking .ring-2{animation:ring-pulse .7s cubic-bezier(.3,.8,.4,1) .3s}@keyframes ring-pulse{0%{transform:scale(.2);opacity:0;border-color:var(--pink)}20%{opacity:.85}to{transform:scale(3.8);opacity:0;border-color:var(--primary)}}.reminder{position:fixed;top:50%;right:16px;transform:translate(calc(100% + 32px),-50%);display:flex;flex-direction:column;align-items:flex-end;gap:10px;z-index:100;pointer-events:none;transition:transform .55s cubic-bezier(.34,1.4,.5,1);width:260px;max-width:calc(100vw - 32px)}.reminder.visible{transform:translateY(-50%);pointer-events:auto}.reminder-character{width:88px;height:116px;filter:drop-shadow(0 8px 16px rgba(155,126,207,.32));transform-origin:bottom center}.reminder.visible .reminder-character{animation:arrive .6s cubic-bezier(.34,1.56,.64,1),peek-idle 3.2s ease-in-out .6s infinite}@keyframes arrive{0%{transform:scale(.6) rotate(-8deg)}55%{transform:scale(1.08) rotate(3deg)}80%{transform:scale(.97) rotate(-1deg)}to{transform:scale(1) rotate(0)}}@keyframes peek-idle{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(-1deg)}}.reminder.visible .right-arm{animation:wave-arm .65s ease-in-out .75s 2,wave-arm-idle 2.6s ease-in-out 2.1s infinite;transform-box:fill-box;transform-origin:0% 100%}@keyframes wave-arm{0%,to{transform:rotate(0)}50%{transform:rotate(-22deg)}}@keyframes wave-arm-idle{0%,to{transform:rotate(0)}50%{transform:rotate(-10deg)}}.minic-water-arm{animation:minic-water-drink 3.2s ease-in-out .6s infinite;transform-box:fill-box;transform-origin:center top}@keyframes minic-water-drink{0%,10%{transform:translate(0) rotate(0)}32%{transform:translate(-30px,-8px) rotate(-12deg)}50%{transform:translate(-30px,-10px) rotate(-12deg)}72%,to{transform:translate(0) rotate(0)}}.minic-clean-broom{animation:minic-sweep 2s cubic-bezier(.4,0,.5,1) infinite;transform-box:fill-box;transform-origin:center top}@keyframes minic-sweep{0%{transform:translateY(0) rotate(-13deg)}42%{transform:translateY(0) rotate(13deg)}50%{transform:translateY(-3px) rotate(14deg)}86%{transform:translateY(-3px) rotate(-14deg)}96%,to{transform:translateY(0) rotate(-13deg)}}.minic-clean-dust circle{transform-box:fill-box;transform-origin:center;animation:minic-dust-puff 2s ease-out infinite;opacity:0}.minic-clean-dust circle:nth-child(1){animation-delay:.12s}.minic-clean-dust circle:nth-child(2){animation-delay:.22s}.minic-clean-dust circle:nth-child(3){animation-delay:.4s}.minic-clean-dust circle:nth-child(4){animation-delay:.56s}.minic-clean-dust circle:nth-child(5){animation-delay:.68s}@keyframes minic-dust-puff{0%{opacity:0;transform:translate(0) scale(.5)}12%{opacity:.9;transform:translateY(-.5px) scale(1)}32%{opacity:0;transform:translateY(-3.5px) scale(1.5)}to{opacity:0;transform:translateY(-3.5px) scale(1.5)}}.minic-read-book{animation:minic-read-bob 3.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center center}@keyframes minic-read-bob{0%,to{transform:rotate(-2.2deg) translateY(0)}50%{transform:rotate(2.2deg) translateY(-1.4px)}}.minic-study-pencil{animation:minic-scribble 1.4s cubic-bezier(.5,0,.5,1) infinite;transform-box:fill-box;transform-origin:right center}@keyframes minic-scribble{0%{transform:translate(0) rotate(0)}8%{transform:translate(-1px,.4px) rotate(-3deg)}16%{transform:translate(-2px) rotate(2deg)}24%{transform:translate(-3px,.4px) rotate(-3deg)}32%{transform:translate(-4px) rotate(2deg)}40%{transform:translate(-4.5px,.3px) rotate(-2deg)}48%{transform:translate(-3.5px) rotate(2deg)}60%{transform:translate(-1.5px,-.8px) rotate(1deg)}72%{transform:translate(0) rotate(0)}to{transform:translate(0) rotate(0)}}.minic-water-level{animation:minic-water-level 3.2s ease-in-out .6s infinite;transform-box:fill-box;transform-origin:center bottom}@keyframes minic-water-level{0%,22%{transform:scaleY(1)}32%{transform:scaleY(.95)}42%,52%{transform:scaleY(.45)}65%{transform:scaleY(.5)}85%,to{transform:scaleY(1)}}.minic-eyes{transform-box:fill-box;transform-origin:center center;animation:minic-blink 4.8s ease-in-out infinite}@keyframes minic-blink{0%,92%{transform:scaleY(1)}94%{transform:scaleY(.08)}96%,to{transform:scaleY(1)}}.reminder-bubble{background:var(--surface);border-radius:var(--radius-lg);padding:14px 16px;box-shadow:var(--shadow-lg);border:1px solid var(--primary-soft);display:flex;gap:10px;align-items:flex-start;position:relative;width:100%;cursor:pointer;opacity:0;transform:translateY(-6px) scale(.95);transition:opacity .35s ease 1.3s,transform .35s cubic-bezier(.34,1.56,.64,1) 1.3s}.reminder.visible .reminder-bubble{opacity:1;transform:translateY(0) scale(1)}.reminder-bubble:before{content:"";position:absolute;top:-7px;right:28px;width:14px;height:14px;background:var(--surface);border-top:1px solid var(--primary-soft);border-left:1px solid var(--primary-soft);transform:rotate(45deg);border-radius:3px 0 0}.reminder-bubble:after{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,var(--primary),var(--pink));border-radius:var(--radius-lg) var(--radius-lg) 0 0}.toast-content{flex:1;min-width:0}.toast-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.9px;color:var(--primary-dark);margin-bottom:3px}.toast-text{font-size:14px;font-weight:600;color:var(--text);line-height:1.4;word-wrap:break-word}.toast-close{width:26px;height:26px;border-radius:8px;border:none;background:var(--surface-soft);color:var(--text-soft);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:15px;line-height:1;font-family:inherit;transition:all .2s ease}.toast-close:hover,.toast-close:active{background:var(--primary-soft);color:var(--primary-dark)}.toast-actions{display:flex;gap:6px;margin-top:8px}.toast-snooze{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--primary-soft);background:transparent;color:var(--primary-dark);font:inherit;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;cursor:pointer;transition:background .18s ease,border-color .18s ease}.toast-snooze:hover,.toast-snooze:focus-visible{background:var(--primary-soft);border-color:var(--primary);outline:none}.toast-snooze:active{transform:translateY(1px)}.notify-banner{display:none;align-items:flex-start;gap:12px;background:linear-gradient(135deg,#fff4f8,#f5ebfb);border:1px solid var(--pink-soft);border-radius:var(--radius-md);padding:14px 16px;margin-bottom:18px;box-shadow:var(--shadow-sm);animation:banner-in .36s cubic-bezier(.34,1.56,.64,1)}.notify-banner.visible{display:flex}@keyframes banner-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.notify-banner-icon{width:34px;height:34px;flex-shrink:0;filter:drop-shadow(0 2px 6px rgba(200,168,233,.3))}.notify-banner-text{flex:1;min-width:0}.notify-banner-text strong{display:block;font-size:14px;font-weight:600;color:var(--text);letter-spacing:-.1px}.notify-banner-text p{font-size:12.5px;color:var(--text-soft);margin-top:2px;line-height:1.45}.notify-banner-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.notify-banner-actions button{border:none;cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:600;padding:8px 14px;border-radius:999px;transition:transform .12s,background .16s,color .16s}.btn-notify-allow{background:var(--primary);color:#fff}.btn-notify-allow:hover{background:var(--primary-dark);transform:translateY(-1px)}.btn-notify-allow:active{transform:translateY(0)}.btn-notify-later{background:transparent;color:var(--text-soft);padding:8px 10px}.btn-notify-later:hover{color:var(--text)}.notify-denied-note{display:none;font-size:12px;color:var(--text-muted);padding:10px 14px;background:var(--surface-soft);border-radius:var(--radius-sm);margin-bottom:14px;text-align:center}.notify-denied-note.visible{display:block}.notify-granted-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,60px);background:var(--text);color:#fff;padding:12px 18px;border-radius:999px;font-size:13px;font-weight:500;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity .3s,transform .4s cubic-bezier(.34,1.56,.64,1);z-index:90}.notify-granted-toast.visible{opacity:1;transform:translate(-50%)}.undo-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,60px);display:flex;align-items:center;gap:10px;max-width:min(92vw,440px);padding:10px 10px 10px 18px;background:var(--text);color:#fff;border-radius:999px;font-size:13px;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity .26s ease,transform .36s cubic-bezier(.34,1.56,.64,1);z-index:95}.undo-toast.visible{opacity:1;transform:translate(-50%);pointer-events:auto}.undo-toast-content{display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.undo-toast-label{font-weight:600;letter-spacing:.1px;flex-shrink:0}.undo-toast-name{opacity:.72;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.undo-toast-action{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;color:var(--pink);border:none;font:inherit;font-size:13px;font-weight:700;letter-spacing:.3px;padding:6px 10px;border-radius:999px;cursor:pointer;transition:background .18s ease;flex-shrink:0}.undo-toast-action:hover,.undo-toast-action:focus-visible{background:#ffffff1a;outline:none}.undo-toast-action:disabled{opacity:.5;cursor:default}.undo-toast-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;color:#fff9;font-size:18px;line-height:1;width:26px;height:26px;border-radius:999px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;transition:background .18s ease,color .18s ease}.undo-toast-close:hover,.undo-toast-close:focus-visible{background:#ffffff1a;color:#fff;outline:none}.dev-tools{margin-top:24px;padding:14px 16px;background:var(--surface-soft);border-radius:var(--radius-md);border:1px dashed var(--primary-soft);display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--text-soft)}.dev-tools span{font-weight:500}.dev-tools-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}@media (max-width: 480px){.header{margin-bottom:20px}.mascot{width:48px;height:48px}.title-group h1{font-size:22px}.title-group p{font-size:13px}.card{padding:16px;border-radius:20px}.input-row{flex-direction:column}.input-time{width:100%}.input-task,.input-time,.input-date{padding:16px;font-size:16px}.input-date{width:100%}.btn-primary{padding:16px 24px;width:100%}.seg-btn{font-size:14px;padding:11px 8px}.day-chip{font-size:13px;padding:11px 4px}.task-item{padding:14px}.checkbox{width:26px;height:26px}.btn-delete{width:36px;height:36px}.reminder{right:12px;width:240px}.reminder-character{width:72px;height:95px}.focus-card{padding:28px 22px 20px;max-width:94vw}.focus-countdown{font-size:56px}.focus-task-text{font-size:18px}.focus-actions{flex-direction:column-reverse;width:100%}.focus-actions button{width:100%}}.btn-focus{width:32px;height:32px;border-radius:10px;border:none;background:transparent;color:var(--primary-dark);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.btn-focus:hover:not(:disabled){background:var(--primary-soft);color:var(--primary-dark)}.btn-focus:disabled{opacity:.35;cursor:not-allowed}.task-item.picker-open .btn-focus{background:var(--primary-soft)}.focus-picker{display:flex;align-items:center;gap:8px;padding-top:8px;border-top:1px dashed var(--border);animation:pickerIn .22s ease;flex-wrap:wrap}@keyframes pickerIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.focus-picker-prompt{font-size:13px;color:var(--text-soft);margin-right:4px}.focus-chip{background:var(--primary-soft);color:var(--primary-dark);border:none;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600;cursor:pointer;transition:all .18s ease}.focus-chip:hover{background:var(--primary);color:#fff;transform:translateY(-1px)}.focus-picker-close{margin-left:auto;width:28px;height:28px;border-radius:8px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .18s ease}.focus-picker-close:hover{background:var(--pink-soft);color:#e67b8a}.focus-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;background:radial-gradient(circle at 50% 35%,#fff6fad9,#f3ebfbeb);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:overlayIn .28s ease}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.focus-card{background:var(--surface);border-radius:var(--radius-lg);padding:40px 32px 28px;max-width:440px;width:100%;box-shadow:var(--shadow-lg);border:1px solid var(--border);text-align:center;animation:cardIn .32s cubic-bezier(.2,.9,.3,1.2)}@keyframes cardIn{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.focus-task-text{font-size:20px;font-weight:600;color:var(--text);margin-bottom:18px;line-height:1.35;word-wrap:break-word}.focus-countdown{font-family:Quicksand,-apple-system,sans-serif;font-size:72px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--primary-dark);letter-spacing:2px;margin:4px 0 20px;line-height:1}.focus-minic{display:flex;justify-content:center;margin-bottom:22px}.mascot-focus{width:68px;height:90px;animation:minicBreathe 3.4s ease-in-out infinite}@keyframes minicBreathe{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.03)}}.mascot-focus.celebrating{animation:minicCelebrate .9s ease-in-out infinite}@keyframes minicCelebrate{0%,to{transform:translateY(0) rotate(-2deg)}25%{transform:translateY(-8px) rotate(2deg)}50%{transform:translateY(-2px) rotate(-2deg)}75%{transform:translateY(-6px) rotate(2deg)}}.focus-actions{display:flex;gap:10px;justify-content:center;margin-top:4px}.btn-focus-finish{background:linear-gradient(135deg,var(--mint) 0%,#9ed4bd 100%);color:var(--text);border:none;border-radius:var(--radius-sm);padding:11px 22px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 10px #9bc8b44d}.btn-focus-finish:hover{transform:translateY(-1px);box-shadow:0 6px 14px #9bc8b466}.btn-focus-close{background:transparent;color:var(--text-soft);border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 22px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-focus-close:hover{background:var(--surface-soft);color:var(--text)}.focus-overlay.done .focus-card{background:linear-gradient(135deg,#ffffff 0%,var(--mint-soft) 100%);border-color:var(--mint)}.focus-done-minic{display:flex;justify-content:center;margin-bottom:18px}.focus-done-title{font-size:26px;font-weight:700;color:var(--text);margin-bottom:6px}.focus-done-body{font-size:15px;color:var(--text-soft);margin-bottom:18px}.focus-done-task{display:inline-block;background:var(--mint-soft);color:var(--text);border:1px solid var(--mint);padding:6px 14px;border-radius:999px;font-size:13px;font-weight:600;margin-bottom:24px;text-decoration:line-through}.all-done{position:fixed;left:50%;bottom:32px;transform:translate(-50%) translateY(28px) scale(.92);opacity:0;pointer-events:none;z-index:60;transition:transform .5s cubic-bezier(.34,1.56,.64,1),opacity .35s ease}.all-done.visible{transform:translate(-50%) translateY(0) scale(1);opacity:1;pointer-events:auto}.all-done-card{position:relative;display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,#ffffff 0%,var(--pink-soft) 100%);border:1px solid var(--pink);border-radius:var(--radius-lg);padding:18px 56px 18px 20px;box-shadow:var(--shadow-lg),0 0 0 6px #ffb7c52e;min-width:300px;max-width:min(92vw,440px)}.all-done-mascot{width:72px;height:auto;flex-shrink:0;animation:all-done-bob 2.6s ease-in-out infinite}.all-done.visible .all-done-mascot{animation:all-done-pop .7s cubic-bezier(.34,1.56,.64,1) both,all-done-bob 2.6s ease-in-out .7s infinite}.all-done-text{flex:1;min-width:0}.all-done-title{display:block;font-size:16px;font-weight:700;color:var(--text);margin-bottom:2px}.all-done-body{font-size:14px;color:var(--text-soft);line-height:1.4}.all-done-close{position:absolute;top:10px;right:12px;width:28px;height:28px;border-radius:50%;border:none;background:transparent;color:var(--text-muted);font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.all-done-close:hover{background:#fff9;color:var(--text)}.all-done-spark{position:absolute;width:10px;height:10px;border-radius:50%;background:radial-gradient(circle,#ffffff 0%,var(--pink) 60%,transparent 70%);opacity:0;pointer-events:none}.all-done.visible .all-done-spark{animation:all-done-spark 1.6s ease-out forwards}.all-done-spark-a{top:-8px;left:18%;animation-delay:.1s}.all-done-spark-b{top:10%;right:-6px;width:8px;height:8px;animation-delay:.3s}.all-done-spark-c{bottom:-10px;left:58%;width:12px;height:12px;animation-delay:.5s}@keyframes all-done-pop{0%{transform:scale(.6)}60%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes all-done-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes all-done-spark{0%{opacity:0;transform:translate(0) scale(.4)}30%{opacity:.85}to{opacity:0;transform:translate(var(--tx, 0),var(--ty, -18px)) scale(1.1)}}.all-done-spark-a{--tx: -12px;--ty: -22px}.all-done-spark-b{--tx: 14px;--ty: -10px}.all-done-spark-c{--tx: 4px;--ty: 18px}@media (prefers-reduced-motion: reduce){.all-done,.all-done-mascot,.all-done-spark{transition:opacity .2s ease;animation:none!important}.all-done{transform:translate(-50%) translateY(0) scale(1)}}.welcome-toast{position:fixed;left:50%;bottom:32px;transform:translate(-50%) translateY(28px);opacity:0;pointer-events:none;z-index:55;transition:transform .45s cubic-bezier(.25,1.25,.5,1),opacity .3s ease}.welcome-toast.visible{transform:translate(-50%) translateY(0);opacity:1;pointer-events:auto}.welcome-toast-card{position:relative;display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#ffffff 0%,var(--mint-soft) 100%);border:1px solid var(--mint);border-radius:var(--radius-lg);padding:16px 52px 16px 18px;box-shadow:var(--shadow-md);min-width:280px;max-width:min(90vw,400px)}.welcome-toast-mascot{width:60px;height:auto;flex-shrink:0;animation:welcome-breathe 3.2s ease-in-out infinite}.welcome-toast-text{flex:1;min-width:0}.welcome-toast-title{display:block;font-size:15px;font-weight:700;color:var(--text);margin-bottom:2px}.welcome-toast-body{font-size:13.5px;color:var(--text-soft);line-height:1.4}.welcome-toast-close{position:absolute;top:8px;right:10px;width:26px;height:26px;border-radius:50%;border:none;background:transparent;color:var(--text-muted);font-size:19px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.welcome-toast-close:hover{background:#fff9;color:var(--text)}@keyframes welcome-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@media (prefers-reduced-motion: reduce){.welcome-toast,.welcome-toast-mascot{transition:opacity .2s ease;animation:none!important}.welcome-toast{transform:translate(-50%) translateY(0)}}
