@import"https://fonts.googleapis.com/css2?family=Caveat:wght@400;700&display=swap";.date-picker-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:250;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.date-picker-modal{background:var(--paper-cream);width:90%;max-width:400px;border-radius:16px;padding:24px;animation:scaleIn .2s ease;max-height:90vh;overflow-y:auto}.date-picker-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.date-picker-header h3{margin:0;font-size:22px;font-family:Caveat,cursive;color:var(--ink-black)}.date-picker-close{background:none;border:none;font-size:24px;color:var(--ink-black);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;opacity:.6;transition:opacity .2s ease;-webkit-tap-highlight-color:transparent}.date-picker-close:active{opacity:1}.date-picker-quick-picks{display:flex;gap:12px;margin-bottom:24px;flex-wrap:wrap}.date-picker-quick-btn{flex:1;min-width:100px;padding:12px 16px;font-size:18px;font-family:Caveat,cursive;border:2px solid var(--border-color);border-radius:8px;background:#fff;color:var(--ink-black);cursor:pointer;transition:all .2s ease;min-height:48px;-webkit-tap-highlight-color:transparent}.date-picker-quick-btn:active{background:var(--bg-hover);border-color:var(--ink-blue)}.date-picker-calendar{margin-top:20px}.date-picker-month-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.date-picker-month-title{font-size:20px;font-family:Caveat,cursive;font-weight:700;color:var(--ink-black)}.date-picker-nav-btn{background:none;border:2px solid var(--border-color);border-radius:8px;width:40px;height:40px;font-size:24px;color:var(--ink-black);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.date-picker-nav-btn:active{background:var(--bg-hover);border-color:var(--ink-blue)}.date-picker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:8px}.date-picker-weekday{text-align:center;font-size:14px;font-family:Caveat,cursive;font-weight:700;color:var(--ink-blue);padding:8px 0}.date-picker-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.date-picker-day{aspect-ratio:1;min-height:44px;border:2px solid transparent;border-radius:8px;background:#fff;color:var(--ink-black);font-size:16px;font-family:Caveat,cursive;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.date-picker-day:not(.empty):not(:disabled):active{background:var(--bg-hover);border-color:var(--ink-blue)}.date-picker-day.today{border-color:var(--ink-blue);font-weight:700}.date-picker-day.selected{background:var(--ink-blue);color:#fff;border-color:var(--ink-blue)}.date-picker-day.other-month{opacity:.3;cursor:not-allowed}.date-picker-day.empty{background:transparent;border:none;cursor:default}.task-item{display:flex;align-items:center;gap:10px;padding:10px 0;min-height:44px;transition:opacity .2s ease;-webkit-tap-highlight-color:transparent}.task-item.pressed{opacity:.6}.task-symbol{font-size:24px;line-height:1;background:none;border:none;cursor:pointer;padding:0;width:24px;height:24px;min-width:24px;min-height:24px;display:flex;align-items:center;justify-content:center;color:var(--ink-black);transition:transform .2s ease,color .2s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;flex-shrink:0}.task-symbol:active{transform:scale(.9)}.task-symbol.changing{transform:scale(1.2)}.task-symbol svg{display:block;width:100%;height:100%}.task-text{flex:1;font-size:20px;line-height:1.5;color:var(--ink-black);word-break:break-word;margin:0;padding:0}.milestone-badge{display:inline-flex;align-items:center;margin-left:8px;font-size:16px;opacity:.8;transition:opacity .2s ease}.task-item.completed .milestone-badge{opacity:.4}.task-text-editable{cursor:pointer;transition:background .2s ease;padding:2px 4px;margin:-2px -4px;border-radius:4px}.task-text-editable:hover{background:#0000000d}.task-text-editable:active{background:#0000001a}.task-edit-wrapper{flex:1;display:flex;flex-direction:column;gap:4px;align-self:stretch}.task-edit-input{width:100%;padding:2px 8px;font-family:Caveat,cursive;font-size:20px;line-height:1.5;background:#fff;border:2px solid var(--ink-blue);border-radius:4px;color:var(--ink-black);outline:none;transition:border-color .2s ease;margin:0;box-sizing:border-box;height:auto;min-height:0}.task-edit-input:disabled{opacity:.6;cursor:not-allowed}.task-edit-loading{font-size:14px;color:var(--ink-blue);font-family:Caveat,cursive;animation:pulse 1.5s ease-in-out infinite}.task-edit-error{font-size:14px;color:var(--accent-red);font-family:Caveat,cursive}.task-item.started .task-symbol{color:var(--ink-blue)}.task-item.completed .task-text{text-decoration:line-through;color:var(--ink-black);opacity:.6}.task-item.completed .task-symbol{color:var(--accent-green)}.task-item.migrated .task-symbol,.task-item.migrated .task-text{color:var(--accent-purple)}.task-item.cancelled .task-text{text-decoration:line-through;color:var(--ink-black);opacity:.4}.task-item.cancelled .task-symbol{color:var(--ink-black);opacity:.5}.task-item.note .task-symbol{color:var(--ink-black);opacity:.7}.task-item.note .task-text{font-style:italic;opacity:.8}.transition-menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:200;display:flex;align-items:flex-end;animation:fadeIn .2s ease}.transition-menu{background:var(--paper-cream);width:100%;border-radius:16px 16px 0 0;padding:20px;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));margin-bottom:calc(100px + env(safe-area-inset-bottom,0px));animation:slideUp .3s ease;position:relative;z-index:201;max-height:calc(85vh - 120px - env(safe-area-inset-bottom,0px));overflow-y:auto;box-shadow:0 -4px 20px #00000026;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.transition-menu-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border-color)}.transition-menu-task{font-size:18px;font-weight:500;color:var(--ink-black);flex:1;margin-right:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transition-menu-close{background:none;border:none;font-size:24px;color:var(--ink-black);cursor:pointer;padding:4px;min-width:32px;min-height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s ease}.transition-menu-close:active{background:#0000001a}.transition-menu-section-title{font-size:14px;font-weight:600;color:var(--ink-black);opacity:.6;margin-top:16px;margin-bottom:8px;padding:0 4px;text-transform:uppercase;letter-spacing:.5px;font-family:Caveat,cursive}.transition-menu-section-title:first-of-type{margin-top:0}.transition-menu-options{display:flex;flex-direction:column;gap:8px}.transition-menu-option{display:flex;align-items:center;gap:16px;padding:16px;background:#fff;border:2px solid var(--border-color);border-radius:12px;font-size:18px;color:var(--ink-black);cursor:pointer;transition:all .2s ease;min-height:56px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.transition-menu-option:active{transform:scale(.98);background:var(--bg-hover)}.transition-menu-symbol{font-size:24px;min-width:32px;display:flex;align-items:center;justify-content:center}.transition-menu-label{flex:1;text-align:left;font-family:Caveat,cursive;font-size:22px}.delete-option{border-color:var(--accent-red)}.delete-option:active{background:#ef44441a}.delete-option .transition-menu-label{color:var(--accent-red)}.delete-confirmation-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:300;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.delete-confirmation-modal{background:var(--paper-cream);width:90%;max-width:360px;border-radius:16px;padding:24px;animation:scaleIn .2s ease}.delete-confirmation-header h3{margin:0;font-size:22px;font-family:Caveat,cursive;color:var(--ink-black)}.delete-confirmation-body{margin:16px 0}.delete-confirmation-task{font-size:18px;font-family:Caveat,cursive;color:var(--ink-black);padding:12px;background:#fff;border-radius:8px;margin:0 0 12px;font-style:italic}.delete-confirmation-warning{font-size:16px;font-family:Caveat,cursive;color:var(--accent-red);margin:0;opacity:.8}.delete-confirmation-actions{display:flex;gap:12px;margin-top:20px}.delete-confirmation-button{flex:1;padding:12px 20px;font-size:18px;font-family:Caveat,cursive;border:2px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s ease;min-height:48px}.delete-confirmation-button.cancel{background:#fff;color:var(--ink-black)}.delete-confirmation-button.cancel:active{background:var(--bg-hover)}.delete-confirmation-button.confirm{background:var(--accent-red);border-color:var(--accent-red);color:#fff}.delete-confirmation-button.confirm:active{opacity:.8}.undo-toast{position:fixed;bottom:calc(80px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);background:var(--ink-black);z-index:150;color:#fff;padding:12px 20px;border-radius:24px;display:flex;align-items:center;gap:16px;z-index:1002;animation:slideUp .3s ease;box-shadow:0 4px 12px #0000004d}@keyframes slideUp{0%{transform:translate(-50%) translateY(20px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.undo-toast-message{font-size:16px;font-family:Caveat,cursive}.undo-toast-button{background:#fff;color:var(--ink-black);border:none;padding:6px 16px;border-radius:16px;font-size:16px;font-family:Caveat,cursive;font-weight:600;cursor:pointer;transition:background .2s ease}.undo-toast-button:active{background:#fffc}.task-item.deleting{opacity:.5;pointer-events:none;animation:fadeOut .3s ease}@keyframes fadeOut{to{opacity:0;transform:translate(-20px)}}.task-date{font-size:14px;color:var(--ink-blue);font-family:Caveat,cursive;margin-right:8px;opacity:.8;font-style:italic}.date-picker-option{border-color:var(--ink-blue)}.date-picker-option:active{background:#1e3a8a1a}.sortable-task-list{display:flex;flex-direction:column;gap:4px}.sortable-task-item{display:flex;align-items:center;gap:10px;position:relative}.sortable-task-item.dragging{opacity:.4;z-index:1000}.sortable-task-item.drag-over{position:relative}.drop-indicator{position:absolute;left:0;right:0;height:3px;background:var(--ink-blue);border-radius:2px;z-index:10;animation:pulse 1s ease-in-out infinite}.drop-indicator-above{top:-2px}.drop-indicator-below{bottom:-2px}.drag-handle{display:flex;align-items:center;justify-content:center;width:24px;height:24px;min-width:24px;min-height:24px;cursor:grab;opacity:.3;transition:opacity .2s ease;touch-action:none;-webkit-tap-highlight-color:transparent;flex-shrink:0}.drag-handle:active{cursor:grabbing;opacity:.6}.sortable-task-item:hover .drag-handle,.sortable-task-item.dragging .drag-handle{opacity:.6}.drag-handle-icon{font-size:16px;color:var(--ink-black);line-height:1;-webkit-user-select:none;user-select:none;font-family:Caveat,cursive;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.drag-overlay-item{display:flex;align-items:flex-start;gap:8px;background:#fff;border-radius:8px;box-shadow:0 8px 24px #0003;transform:rotate(2deg);opacity:.95;cursor:grabbing}.drag-overlay-item .drag-handle{opacity:.8}@media (max-width: 768px){.drag-handle{opacity:.2}.sortable-task-item:active .drag-handle,.sortable-task-item.dragging .drag-handle{opacity:.6}}.task-input-container{position:sticky;bottom:0;padding:10px 12px;margin-bottom:calc(30px + env(safe-area-inset-bottom,0px));background:var(--paper-bg);border-top:1px solid var(--line-grey);z-index:100;box-shadow:0 -2px 8px #0000000d;flex-shrink:0;margin-top:auto}.task-input-form{width:100%}.type-selector{display:flex;gap:6px;margin-bottom:8px;justify-content:center}.type-button{width:32px;height:32px;min-width:32px;min-height:32px;padding:0;background:#fff;border:1.5px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;color:var(--ink-black);font-family:Caveat,cursive;position:relative;flex-shrink:0}.type-button>*{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.type-button svg{display:block;margin:0 auto}.type-button:hover{border-color:var(--ink-blue);background:var(--bg-hover)}.type-button.active{border-color:var(--ink-blue);background:var(--ink-blue);color:#fff}.type-button:active{transform:scale(.95);background:var(--ink-blue);color:#fff;border-color:var(--ink-blue)}.type-button:disabled{opacity:.5;cursor:not-allowed}.input-wrapper{position:relative;width:100%}.task-input{width:100%;padding:10px 70px 10px 14px;font-family:Caveat,cursive;font-size:18px;line-height:1.5;background:var(--paper-bg);border:1.5px solid var(--line-grey);border-radius:8px;color:var(--ink-black);outline:none;transition:border-color .2s ease,box-shadow .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}.task-input:focus{border-color:var(--ink-blue);box-shadow:0 0 0 3px #1e3a8a1a}.task-input.has-value{border-color:var(--ink-black)}.task-input:disabled{opacity:.6;cursor:not-allowed}.task-input::placeholder{color:var(--ink-black);opacity:.4}.input-loading{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:16px;color:var(--ink-blue);font-family:Caveat,cursive;animation:pulse 1.5s ease-in-out infinite;pointer-events:none}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.char-counter{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:16px;color:var(--ink-black);opacity:.6;font-family:Caveat,cursive;transition:color .2s ease,opacity .2s ease;pointer-events:none}.char-counter.over-limit{color:var(--accent-red);opacity:1;font-weight:700}.input-error-container{display:flex;align-items:center;gap:8px;margin-top:8px;padding:8px 12px;background:#ef44441a;border-radius:8px;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.input-error{flex:1;font-size:16px;color:var(--accent-red);font-family:Caveat,cursive}.error-dismiss{background:none;border:none;font-size:20px;color:var(--accent-red);cursor:pointer;padding:4px;min-width:24px;min-height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s ease;flex-shrink:0}.error-dismiss:active{background:#ef444433}.monthly-milestone-checkbox{margin-top:8px;margin-bottom:8px;padding:8px 12px;background:#4a90e20d;border-radius:8px;border:1px solid rgba(74,144,226,.2)}.monthly-milestone-checkbox label{display:flex;align-items:center;gap:8px;cursor:pointer;font-family:Caveat,cursive;font-size:16px;color:var(--ink-black);font-weight:600}.monthly-milestone-checkbox input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--ink-blue)}.monthly-milestone-checkbox input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.checkbox-label{-webkit-user-select:none;user-select:none}.date-navigator{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--paper-bg);border-bottom:1px solid var(--line-grey);min-height:48px}.date-navigator-button{background:none;border:1.5px solid var(--border-color);border-radius:6px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--ink-black);cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent;flex-shrink:0;font-family:Caveat,cursive;line-height:1}.date-navigator-button:hover{border-color:var(--ink-blue);background:var(--bg-hover)}.date-navigator-button:active{transform:scale(.95);background:var(--ink-blue);color:#fff;border-color:var(--ink-blue)}.date-navigator-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:1;padding:0 12px;min-height:28px}.date-navigator-badge-container{height:16px;display:flex;align-items:center;justify-content:center}.date-navigator-badge{font-size:10px;font-family:Caveat,cursive;font-weight:700;color:var(--ink-blue);text-transform:uppercase;letter-spacing:.5px;line-height:1}.date-navigator-badge-placeholder{height:10px;width:1px;visibility:hidden}.date-navigator-date{font-size:16px;font-family:Caveat,cursive;font-weight:600;color:var(--ink-black);text-align:center;line-height:1.2}@media (max-width: 375px){.date-navigator{padding:8px 10px;min-height:44px}.date-navigator-date{font-size:15px}.date-navigator-button{width:28px;height:28px;font-size:18px}.date-navigator-content{padding:0 8px}}.day-view{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--paper-bg)}.day-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.day-header{margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid var(--line-grey)}.day-date{font-family:Caveat,cursive;font-size:28px;font-weight:700;color:var(--ink-black);margin:0;line-height:1.2}.migrated-section{margin-bottom:24px;padding-bottom:16px;border-bottom:1px dashed var(--line-grey);opacity:.85}.migrated-section .task-item{opacity:.9}.section-title{font-family:Caveat,cursive;font-size:22px;font-weight:700;color:var(--ink-blue);margin:0 0 12px;display:flex;align-items:center;gap:8px}.section-icon{font-size:20px;opacity:.7}.tasks-list{display:flex;flex-direction:column;gap:4px;animation:fadeIn .3s ease}.empty-state{padding:32px 24px;text-align:center;color:var(--ink-black);opacity:.5;font-size:18px;font-style:italic}.empty-state p{margin:0}.section-divider{height:1px;background:var(--line-grey);margin:24px 0;opacity:.5}.completed-section{transition:all .2s ease}.section-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;padding:0;cursor:pointer;margin-bottom:12px;-webkit-tap-highlight-color:transparent}.section-toggle:hover .section-title{opacity:.8}.toggle-icon{font-size:16px;color:var(--ink-blue);opacity:.6;transition:transform .2s ease}.section-toggle:hover .toggle-icon{opacity:1}.completed-list{animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;max-height:0;overflow:hidden}to{opacity:1;max-height:1000px}}.tasks-section{margin-bottom:32px}.tasks-section:last-child{margin-bottom:0}.loading{display:flex;align-items:center;justify-content:center;min-height:50vh}.week-view{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--paper-bg)}.week-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px;display:flex;flex-direction:column;gap:24px}.week-day-section{margin-bottom:24px}.week-day-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px;padding:0 4px;gap:12px;flex-wrap:wrap}.week-day-title{font-family:Caveat,cursive;font-size:20px;font-weight:700;color:var(--ink-black);margin:0;flex:1;min-width:0}.week-day-title.today{color:var(--ink-blue)}.week-day-count{font-size:14px;font-family:Caveat,cursive;color:var(--ink-black);opacity:.6;white-space:nowrap}.week-day-badge{font-size:10px;font-family:Caveat,cursive;font-weight:700;color:var(--ink-blue);background:#1e3a8a1a;padding:2px 8px;border-radius:12px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.week-day-tasks{background:#fff;border-radius:12px;border:2px solid var(--border-color);overflow:hidden;box-shadow:0 1px 3px #0000000d}.week-day-section.today .week-day-tasks{border-color:var(--ink-blue);box-shadow:0 2px 8px #1e3a8a1a}.week-day-empty{background:#fff;border:2px dashed var(--border-color);border-radius:12px;padding:32px 24px;text-align:center;opacity:.6}.week-day-empty-icon{font-size:32px;display:block;margin-bottom:8px;opacity:.5}.week-day-empty-text{font-size:16px;font-family:Caveat,cursive;color:var(--ink-black);opacity:.5;font-style:italic;margin:0}.week-view.loading{display:flex;align-items:center;justify-content:center;min-height:50vh}.week-day-section{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 375px){.week-day-title{font-size:18px}.week-day-count{font-size:12px}}.month-view{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--paper-bg)}.month-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px}.month-grid{display:flex;flex-direction:column;gap:4px}.month-day-headers{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:8px;padding:0 4px}.month-day-header{text-align:center;font-family:Caveat,cursive;font-size:14px;font-weight:700;color:var(--ink-black);opacity:.6;padding:8px 4px}.month-week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.month-date-cell{aspect-ratio:1;min-height:44px;background:#fff;border:1.5px solid var(--border-color);border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;padding:4px;position:relative;-webkit-tap-highlight-color:transparent;font-family:Caveat,cursive}.month-date-cell:hover:not(:disabled){border-color:var(--ink-blue);background:var(--bg-hover)}.month-date-cell:active:not(:disabled){transform:scale(.95)}.month-date-cell:disabled{opacity:.3;cursor:not-allowed;background:transparent}.month-date-cell.today{border-color:var(--ink-blue);background:#1e3a8a0d;font-weight:700}.month-date-cell.selected{border-color:var(--ink-blue);border-width:2px;background:#1e3a8a1a}.month-date-number{font-size:16px;color:var(--ink-black);line-height:1}.month-date-cell.today .month-date-number{color:var(--ink-blue)}.month-date-cell.other-month .month-date-number{opacity:.3}.task-indicator{position:absolute;bottom:4px;right:4px;width:6px;height:6px;background:var(--ink-blue);border-radius:50%;font-size:0;line-height:0}.month-date-cell.today .task-indicator{background:var(--ink-blue)}.month-date-cell.other-month .task-indicator{opacity:.5}.month-view.loading{display:flex;align-items:center;justify-content:center;min-height:50vh}.loading-spinner{font-family:Caveat,cursive;font-size:20px;color:var(--ink-blue)}@media (max-width: 375px){.month-date-cell{min-height:40px}.month-date-number{font-size:14px}.task-indicator{width:5px;height:5px;bottom:3px;right:3px}}.month-week{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.monthly-view{display:flex;flex-direction:column;height:100%;padding:0 16px;overflow:hidden;flex:1}.monthly-header{margin-bottom:24px}.monthly-navigation{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.monthly-nav-button{background:none;border:none;font-size:28px;font-family:Caveat,cursive;color:var(--ink-black);cursor:pointer;padding:4px 12px;border-radius:6px;transition:all .2s;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.monthly-nav-button:hover{background:var(--bg-hover)}.monthly-nav-button:active{transform:scale(.95)}.monthly-title-container{flex:1;display:flex;align-items:center;justify-content:center;gap:12px}.monthly-title{font-family:Caveat,cursive;font-size:28px;font-weight:600;color:var(--ink-black);margin:0;text-transform:capitalize}.monthly-divider{height:2px;background:var(--border-color);border-radius:1px}.monthly-empty{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:40px 20px}.monthly-empty-title{font-family:Caveat,cursive;font-size:22px;font-weight:600;color:var(--ink-black);margin:0 0 16px}.monthly-empty-description{font-family:Caveat,cursive;font-size:18px;color:var(--ink-black);opacity:.7;margin:0;max-width:320px;line-height:1.5}.monthly-tasks{flex:1;overflow-y:auto;margin-bottom:calc(16px + env(safe-area-inset-bottom,0px));padding-bottom:20px}.monthly-input{margin-top:auto;padding-top:16px;border-top:2px solid var(--border-color);padding-bottom:0}.monthly-report-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.monthly-report-modal{background:var(--paper-cream);width:90%;max-width:400px;border-radius:16px;padding:24px;animation:slideUp .3s ease;box-shadow:0 8px 24px #0003}.monthly-report-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.monthly-report-title{font-family:Caveat,cursive;font-size:24px;font-weight:600;color:var(--ink-black);margin:0;text-transform:capitalize}.monthly-report-close{background:none;border:none;font-size:24px;color:var(--ink-black);cursor:pointer;padding:4px;min-width:32px;min-height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s ease;-webkit-tap-highlight-color:transparent}.monthly-report-close:active{background:#0000001a}.monthly-report-body{margin-bottom:24px}.monthly-report-section-title{font-family:Caveat,cursive;font-size:18px;font-weight:600;color:var(--ink-black);margin-bottom:8px}.monthly-report-divider{height:2px;background:var(--border-color);border-radius:1px;margin-bottom:16px}.monthly-report-stats{display:flex;flex-direction:column;gap:12px}.monthly-report-stat{display:flex;justify-content:space-between;align-items:center;font-family:Caveat,cursive;font-size:18px}.stat-label{color:var(--ink-black);opacity:.8}.stat-value{color:var(--ink-black);font-weight:600}.monthly-report-actions{display:flex;flex-direction:column;gap:12px;padding-top:16px;border-top:1px solid var(--border-color)}.monthly-report-button{width:100%;padding:14px 20px;font-family:Caveat,cursive;font-size:20px;font-weight:600;background:var(--ink-blue);color:#fff;border:2px solid var(--ink-blue);border-radius:8px;cursor:pointer;transition:all .2s ease;text-transform:capitalize;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.monthly-report-button:active{transform:scale(.98);opacity:.9}.app-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--paper-bg);border-bottom:1px solid var(--line-grey);position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffef0f2}.header-menu{background:none;border:none;font-size:20px;font-family:Caveat,cursive;color:var(--ink-black);cursor:pointer;padding:4px 8px;border-radius:6px;transition:all .2s ease;min-height:36px;min-width:36px;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.header-menu:hover{background:var(--bg-hover)}.header-menu:active{transform:scale(.95)}.header-actions{display:flex;align-items:center;gap:4px}.header-view-switcher,.header-today-button{background:none;border:none;font-size:18px;font-family:Caveat,cursive;color:var(--ink-black);cursor:pointer;padding:4px 8px;border-radius:6px;transition:all .2s ease;min-height:36px;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.header-view-switcher:hover,.header-today-button:hover:not(.disabled){background:var(--bg-hover)}.header-view-switcher:active,.header-today-button:active:not(.disabled){transform:scale(.95)}.header-today-button.disabled{cursor:default;opacity:.7}.header-today-button.disabled .today-indicator{font-size:18px;display:flex;align-items:center;justify-content:center}.header-today-button:not(.disabled){font-weight:600;color:var(--ink-blue)}.header-today-button:not(.disabled):hover{background:#1e3a8a1a;color:var(--ink-blue)}.header-left{display:flex;align-items:center;gap:6px}.header-title-small{font-size:12px;font-family:Caveat,cursive;font-weight:400;color:var(--ink-black);opacity:.6;margin:0}.header-view-switcher{font-size:20px;padding:4px 8px}.view-icon{font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center}.header-settings{background:none;border:none;font-size:18px;font-family:Caveat,cursive;color:var(--ink-black);cursor:pointer;padding:4px 8px;border-radius:6px;transition:all .2s ease;min-height:36px;min-width:36px;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.header-settings:hover{background:var(--bg-hover)}.header-settings:active{transform:scale(.95)}.settings-icon{font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center}.view-switcher-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:250;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.view-switcher-modal{background:var(--paper-cream);width:90%;max-width:400px;border-radius:16px;padding:24px;animation:scaleIn .2s ease;max-height:90vh;overflow-y:auto}.view-switcher-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.view-switcher-header h3{margin:0;font-size:22px;font-family:Caveat,cursive;color:var(--ink-black)}.view-switcher-close{background:none;border:none;font-size:24px;color:var(--ink-black);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;opacity:.6;transition:opacity .2s ease;-webkit-tap-highlight-color:transparent}.view-switcher-close:hover,.view-switcher-close:active{opacity:1}.view-switcher-options{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.view-switcher-option{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;border:2px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s ease;text-align:left;min-height:48px;-webkit-tap-highlight-color:transparent}.view-switcher-option:hover{border-color:var(--ink-blue);background:var(--bg-hover)}.view-switcher-option.selected{border-color:var(--ink-blue);background:var(--ink-blue);color:#fff}.view-switcher-radio{font-size:20px;line-height:1;min-width:24px;display:flex;align-items:center;justify-content:center}.view-switcher-option-content{display:flex;flex-direction:column;gap:2px;flex:1}.view-switcher-option-label{font-size:18px;font-family:Caveat,cursive;font-weight:600}.view-switcher-option-desc{font-size:14px;font-family:Caveat,cursive;opacity:.7}.view-switcher-option.selected .view-switcher-option-desc{opacity:.9}.view-switcher-divider{height:1px;background:var(--line-grey);margin:16px 0}.view-switcher-checkbox-label{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border-radius:8px;transition:background .2s ease}.view-switcher-checkbox-label:hover{background:var(--bg-hover)}.view-switcher-checkbox{width:20px;height:20px;cursor:pointer;accent-color:var(--ink-blue)}.view-switcher-checkbox-label span{font-size:16px;font-family:Caveat,cursive;color:var(--ink-black)}.view-switcher-actions{display:flex;gap:12px;margin-top:20px}.view-switcher-button{flex:1;padding:12px 20px;font-size:18px;font-family:Caveat,cursive;border:2px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s ease;min-height:48px;-webkit-tap-highlight-color:transparent}.view-switcher-button.cancel{background:#fff;color:var(--ink-black)}.view-switcher-button.cancel:hover,.view-switcher-button.cancel:active{background:var(--bg-hover)}.view-switcher-button.save{background:var(--ink-blue);border-color:var(--ink-blue);color:#fff}.view-switcher-button.save:hover{opacity:.9}.view-switcher-button.save:active{opacity:.8}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.view-tab-switcher{display:flex;gap:8px;margin-bottom:20px;padding:0 16px}.view-tab{flex:1;padding:12px 20px;font-family:Caveat,cursive;font-size:20px;font-weight:600;border:2px solid var(--border-color);border-radius:8px;background:#fff;color:var(--ink-black);cursor:pointer;transition:all .2s ease;min-height:44px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.view-tab.active{background:var(--ink-blue);border-color:var(--ink-blue);color:#fff}.view-tab:active{transform:scale(.98)}.install-prompt-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:10000;display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeIn .3s ease}.install-prompt{background:var(--paper-cream);border-radius:16px;padding:24px;max-width:400px;width:100%;position:relative;box-shadow:0 8px 24px #0003;animation:slideUp .3s ease}.install-prompt-close{position:absolute;top:12px;right:12px;background:none;border:none;font-size:24px;color:var(--ink-black);cursor:pointer;padding:4px 8px;line-height:1;opacity:.6;transition:opacity .2s ease;-webkit-tap-highlight-color:transparent}.install-prompt-close:hover,.install-prompt-close:active{opacity:1}.install-prompt-content{text-align:center}.install-prompt-icon{font-size:48px;margin-bottom:12px}.install-prompt-title{font-family:Caveat,cursive;font-size:24px;font-weight:700;color:var(--ink-black);margin:0 0 8px}.install-prompt-description{font-family:Caveat,cursive;font-size:18px;color:var(--ink-black);opacity:.7;margin:0 0 24px}.install-prompt-instructions{background:#fff;border-radius:12px;padding:16px;margin-bottom:20px;text-align:left}.install-prompt-steps-title{font-family:Caveat,cursive;font-size:18px;font-weight:700;color:var(--ink-black);margin:0 0 12px}.install-prompt-steps{font-family:Caveat,cursive;font-size:16px;color:var(--ink-black);margin:0;padding-left:20px;line-height:1.8}.install-prompt-steps li{margin-bottom:8px}.install-prompt-steps li:last-child{margin-bottom:0}.install-prompt-share-icon{font-size:18px;vertical-align:middle}.install-prompt-note{font-size:14px;opacity:.7;font-style:italic}.install-prompt-visual-guide{margin-top:16px;padding-top:16px;border-top:1px dashed var(--border-color);text-align:center}.install-prompt-arrow{font-size:32px;color:var(--ink-blue);margin-bottom:8px;animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.install-prompt-hint{font-family:Caveat,cursive;font-size:14px;color:var(--ink-black);opacity:.6;margin:0;font-style:italic}.install-prompt-android{background:#fff;border-radius:12px;padding:16px;margin-bottom:20px}.install-prompt-android-text{font-family:Caveat,cursive;font-size:16px;color:var(--ink-black);margin:0;text-align:center}.install-prompt-actions{display:flex;flex-direction:column;gap:8px}.install-prompt-button{font-family:Caveat,cursive;font-size:18px;font-weight:600;padding:12px 24px;border-radius:8px;border:none;cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.install-prompt-button-primary{background:var(--ink-blue);color:#fff}.install-prompt-button-primary:hover,.install-prompt-button-primary:active{background:#1e3a8a;transform:scale(.98)}.install-prompt-button-secondary{background:#fff;color:var(--ink-black);border:1.5px solid var(--border-color)}.install-prompt-button-secondary:hover,.install-prompt-button-secondary:active{background:var(--bg-hover);border-color:var(--ink-blue)}@media (max-width: 375px){.install-prompt{padding:20px;max-width:100%}.install-prompt-title{font-size:22px}.install-prompt-description{font-size:16px}.install-prompt-steps{font-size:15px}}.debug-clock{position:fixed;bottom:20px;right:20px;z-index:10000}.debug-clock-toggle{width:50px;height:50px;border-radius:50%;background:var(--ink-blue, #4A90E2);color:#fff;border:none;font-size:20px;cursor:pointer;box-shadow:0 4px 12px #00000026;transition:transform .2s ease;-webkit-tap-highlight-color:transparent}.debug-clock-toggle:hover{transform:scale(1.1)}.debug-clock-toggle:active{transform:scale(.95)}.debug-clock-panel{position:absolute;bottom:60px;right:0;width:320px;max-height:80vh;overflow-y:auto;background:#fff;border-radius:12px;box-shadow:0 8px 24px #0003;padding:16px;animation:slideUp .3s ease-out;font-family:Caveat,cursive}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.debug-clock-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border-color, #E0E0E0)}.debug-clock-header h3{margin:0;font-size:18px;color:var(--ink-black, #2C2C2C);font-weight:700}.debug-clock-header button{background:none;border:none;font-size:24px;cursor:pointer;color:var(--ink-gray, #6B6B6B);padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s}.debug-clock-header button:hover{background:#0000000d}.debug-clock-status{margin-bottom:16px;padding:10px;border-radius:8px;background:var(--bg-hover, #F5F5F5);text-align:center;font-size:14px}.status-active{color:#27ae60;font-weight:700}.status-inactive{color:var(--ink-gray, #6B6B6B);font-weight:600}.debug-clock-input{margin-bottom:16px}.debug-clock-input label{display:block;margin-bottom:8px;font-size:15px;color:var(--ink-black, #2C2C2C);font-weight:700}.debug-clock-input input{width:100%;padding:10px;border:1.5px solid var(--border-color, #E0E0E0);border-radius:8px;font-size:14px;font-family:Caveat,cursive;background:#fff;transition:border-color .2s}.debug-clock-input input:focus{outline:none;border-color:var(--ink-blue, #4A90E2)}.debug-clock-controls h4,.debug-clock-presets h4{margin:16px 0 10px;font-size:16px;color:var(--ink-black, #2C2C2C);font-weight:700}.control-group{display:flex;align-items:center;gap:6px;margin-bottom:10px}.control-group label{width:60px;font-size:14px;color:var(--ink-gray, #6B6B6B);font-weight:600}.control-group button{flex:1;padding:8px 4px;background:#fff;border:1.5px solid var(--border-color, #E0E0E0);border-radius:6px;font-size:14px;font-family:Caveat,cursive;font-weight:700;cursor:pointer;transition:all .2s}.control-group button:hover{background:var(--bg-hover, #F5F5F5);border-color:var(--ink-blue, #4A90E2)}.control-group button:active{transform:scale(.95)}.debug-clock-presets{margin-top:16px}.debug-clock-presets button{width:100%;padding:10px;margin-bottom:8px;background:#fff;border:1.5px solid var(--border-color, #E0E0E0);border-radius:8px;font-size:14px;font-family:Caveat,cursive;font-weight:600;cursor:pointer;text-align:left;transition:all .2s}.debug-clock-presets button:hover{background:var(--bg-hover, #F5F5F5);border-color:var(--ink-blue, #4A90E2)}.debug-clock-presets button:active{transform:scale(.98)}.debug-clock-reset{width:100%;padding:12px;margin-top:16px;background:#e74c3c;color:#fff;border:none;border-radius:8px;font-size:15px;font-family:Caveat,cursive;font-weight:700;cursor:pointer;transition:background .2s}.debug-clock-reset:hover{background:#c0392b}.debug-clock-reset:active{transform:scale(.98)}@media (max-width: 375px){.debug-clock-panel{width:calc(100vw - 40px);right:-10px}.debug-clock{right:10px;bottom:10px}}.debug-clock-panel::-webkit-scrollbar{width:6px}.debug-clock-panel::-webkit-scrollbar-track{background:transparent}.debug-clock-panel::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.debug-clock-panel::-webkit-scrollbar-thumb:hover{background:#0000004d}.settings-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.settings-modal{background:var(--paper-cream);border-radius:12px;width:90%;max-width:500px;max-height:80vh;overflow-y:auto;box-shadow:0 4px 20px #00000026;animation:slideUp .3s ease-out;font-family:Caveat,cursive}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:2px solid var(--border-color)}.settings-title{font-size:28px;font-weight:600;color:var(--ink-black);margin:0}.settings-close{background:none;border:none;font-size:24px;color:var(--ink-black);cursor:pointer;padding:4px 8px;line-height:1;opacity:.7;transition:opacity .2s}.settings-close:hover{opacity:1}.settings-close:active{transform:scale(.95)}.settings-body{padding:24px}.settings-section{margin-bottom:24px}.settings-section-title{font-size:22px;font-weight:600;color:var(--ink-black);margin:0 0 8px}.settings-section-description{font-size:18px;color:var(--ink-black);opacity:.7;margin:0 0 20px;line-height:1.5}.settings-loading{text-align:center;padding:40px 20px;font-size:20px;color:var(--ink-black);opacity:.7}.settings-timezone-select{max-height:400px;overflow-y:auto;margin-bottom:20px}.settings-timezone-group{margin-bottom:24px}.settings-timezone-group-title{font-size:20px;font-weight:600;color:var(--ink-black);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.settings-timezone-options{display:flex;flex-direction:column;gap:8px}.settings-timezone-option{display:flex;align-items:center;padding:12px 16px;border:2px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s;background:#fff}.settings-timezone-option:hover{border-color:var(--ink-blue);background:#3b82f60d}.settings-timezone-option.selected{border-color:var(--ink-blue);background:#3b82f61a}.settings-timezone-option input[type=radio]{margin-right:12px;width:20px;height:20px;cursor:pointer;accent-color:var(--ink-blue)}.settings-timezone-label{font-size:18px;color:var(--ink-black);cursor:pointer;flex:1}.settings-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;padding:12px 16px;margin-bottom:20px;color:#dc2626;font-size:16px}.settings-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:20px;border-top:2px solid var(--border-color)}.settings-button{padding:12px 24px;border:none;border-radius:8px;font-family:Caveat,cursive;font-size:20px;font-weight:600;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}.settings-button:disabled{opacity:.5;cursor:not-allowed}.settings-button-cancel{background:#fff;color:var(--ink-black);border:2px solid var(--border-color)}.settings-button-cancel:not(:disabled):hover{background:#0000000d}.settings-button-save{background:var(--ink-blue);color:#fff}.settings-button-save:not(:disabled):hover{background:#2563eb;transform:translateY(-1px);box-shadow:0 2px 8px #3b82f64d}.settings-button-save:not(:disabled):active{transform:translateY(0)}.sidebar-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:999;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.sidebar{position:fixed;top:0;left:0;bottom:0;width:280px;max-width:85vw;background:var(--paper-cream);box-shadow:2px 0 10px #0000001a;z-index:1000;display:flex;flex-direction:column;animation:slideInLeft .3s ease-out;font-family:Caveat,cursive}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:2px solid var(--border-color)}.sidebar-title{font-size:24px;font-weight:600;color:var(--ink-black);margin:0}.sidebar-close{background:none;border:none;font-size:24px;color:var(--ink-black);cursor:pointer;padding:4px 8px;line-height:1;opacity:.7;transition:opacity .2s;-webkit-tap-highlight-color:transparent}.sidebar-close:hover{opacity:1}.sidebar-close:active{transform:scale(.95)}.sidebar-nav{flex:1;padding:16px 0;overflow-y:auto}.sidebar-item{width:100%;display:flex;align-items:center;gap:12px;padding:16px 24px;background:none;border:none;text-align:left;font-family:Caveat,cursive;font-size:20px;color:var(--ink-black);cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}.sidebar-item:hover{background:#0000000d}.sidebar-item:active{background:#0000001a;transform:scale(.98)}.sidebar-icon{font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center;width:28px}.sidebar-label{font-weight:500;flex:1}:root{--paper-bg: #FFFEF0;--paper-cream: #FFFEF0;--ink-black: #2C2C2C;--ink-blue: #1E3A8A;--line-grey: #E5E7EB;--border-color: #E5E7EB;--accent-green: #10B981;--accent-purple: #8B5CF6;--accent-red: #EF4444;--bg-hover: #F5F5DC}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}body{font-family:Caveat,cursive;font-size:20px;line-height:1.6;color:var(--ink-black);background:var(--paper-bg);min-height:100vh;height:100vh;overflow:hidden;overscroll-behavior-y:none;-webkit-overflow-scrolling:touch}#root{height:100vh;width:100%;display:flex;flex-direction:column;overflow:hidden}button,a,input,select,textarea{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{user-select:none;-webkit-user-select:none}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--paper-bg)}::-webkit-scrollbar-thumb{background:var(--line-grey);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--ink-blue)}@supports (padding: max(0px)){body{padding-left:max(0px,env(safe-area-inset-left));padding-right:max(0px,env(safe-area-inset-right))}}
