.todo-card[data-v-0b81706e]{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;margin-bottom:8px;background:transparent;border-radius:16px;cursor:pointer;transition:all .15s cubic-bezier(.2,0,0,1);position:relative}.todo-card[data-v-0b81706e]:hover{background:#fff;box-shadow:0 4px 12px #0000000a;transform:translateY(-1px)}.icon-block[data-v-0b81706e]{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s ease}.icon-symbol[data-v-0b81706e]{font-size:20px}.urgency-urgent_important[data-v-0b81706e]{background:#dc32321a}.urgency-urgent_important .icon-symbol[data-v-0b81706e]{color:#dc3232}.urgency-important[data-v-0b81706e]{background:#d4a0171f}.urgency-important .icon-symbol[data-v-0b81706e]{color:#d4a017}.urgency-urgent[data-v-0b81706e]{background:#2e7d321a}.urgency-urgent .icon-symbol[data-v-0b81706e]{color:#2e7d32}.urgency-none[data-v-0b81706e]{background:#4c7d3314}.urgency-none .icon-symbol[data-v-0b81706e]{color:var(--md-primary)}.card-content[data-v-0b81706e]{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;padding-top:2px}.todo-title[data-v-0b81706e]{font-size:15px;font-weight:600;color:#1d1d1f;line-height:1.4;transition:color .15s ease}.todo-meta-row[data-v-0b81706e]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.meta-chip[data-v-0b81706e]{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:500;color:#86868b;white-space:nowrap}.date-chip[data-v-0b81706e]{color:#6e6e73;font-weight:600}.contact-chip .material-symbols-outlined[data-v-0b81706e]{color:var(--md-primary)}.card-actions[data-v-0b81706e]{display:flex;align-items:center;gap:4px;flex-shrink:0;opacity:0;transition:opacity .15s ease}.todo-card:hover .card-actions[data-v-0b81706e]{opacity:1}.action-btn[data-v-0b81706e]{width:32px;height:32px;border:none;background:transparent;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease;color:#86868b}.action-btn[data-v-0b81706e]:hover{background:#0000000a}.action-btn .material-symbols-outlined[data-v-0b81706e]{font-size:18px}.action-complete .material-symbols-outlined[data-v-0b81706e]{color:var(--md-primary)}.action-delete[data-v-0b81706e]:hover{background:#b3261e0f;color:#b3261e}.todo-card[data-completed="1"][data-v-0b81706e]{opacity:.5}.todo-card[data-completed="1"] .todo-title[data-v-0b81706e]{text-decoration:line-through;color:var(--md-on-surface-variant)}.todo-card[data-completed="1"] .icon-block[data-v-0b81706e]{background:#8e8e931a!important}.todo-card[data-completed="1"] .icon-symbol[data-v-0b81706e]{color:#8e8e93!important}.todo-card[data-pinned="1"][data-v-0b81706e]:after{content:"";position:absolute;top:10px;right:10px;width:6px;height:6px;border-radius:50%;background:var(--md-primary)}.date-input-wrapper[data-v-1b3884d2]{display:flex;align-items:center;gap:8px;cursor:pointer;position:relative}.date-input[data-v-1b3884d2]{flex:1;cursor:pointer;padding-right:8px}.date-icon[data-v-1b3884d2]{font-size:20px;color:var(--md-on-surface-variant);flex-shrink:0;transition:color .15s ease}.date-input-wrapper:hover .date-icon[data-v-1b3884d2]{color:var(--md-primary)}.date-range-row[data-v-1b3884d2]{gap:12px}.date-range-row .form-group[data-v-1b3884d2]{flex:1;min-width:0}.date-picker-panel[data-v-1b3884d2]{background:#fff;border-radius:16px;box-shadow:0 8px 32px #0000001a,0 2px 8px #0000000a;padding:12px 16px 14px;z-index:300;-webkit-user-select:none;user-select:none}.date-picker-fade-enter-active[data-v-1b3884d2],.date-picker-fade-leave-active[data-v-1b3884d2]{transition:all .2s cubic-bezier(.2,0,0,1)}.date-picker-fade-enter-from[data-v-1b3884d2],.date-picker-fade-leave-to[data-v-1b3884d2]{opacity:0;transform:translateY(-6px) scale(.97)}.picker-header[data-v-1b3884d2]{display:flex;align-items:center;justify-content:space-between;padding:4px 0 10px}.picker-nav-btn[data-v-1b3884d2]{width:30px;height:30px;border:none;background:transparent;cursor:pointer;font-size:18px;color:#86868b;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .15s ease}.picker-nav-btn[data-v-1b3884d2]:hover{background:#1c1b1f0f}.picker-month-label[data-v-1b3884d2]{font-size:15px;font-weight:600;color:#1d1d1f}.picker-weekdays[data-v-1b3884d2]{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:11px;font-weight:500;color:#aeaeb2;padding-bottom:6px}.picker-grid[data-v-1b3884d2]{display:grid;gap:2px}.picker-cell[data-v-1b3884d2]{text-align:center;padding:8px 0;font-size:13px;font-weight:500;color:#1d1d1f;border-radius:50%;cursor:pointer;transition:all .15s cubic-bezier(.2,0,0,1);width:32px;height:32px;display:flex;align-items:center;justify-content:center;margin:0 auto}.picker-cell[data-v-1b3884d2]:hover{background:#4c7d3314}.picker-empty[data-v-1b3884d2]{cursor:default;pointer-events:none}.picker-today[data-v-1b3884d2]{border:1.5px solid var(--md-primary);font-weight:700}.picker-selected[data-v-1b3884d2]{background:var(--md-primary)!important;color:#fff!important;font-weight:700}.picker-selected.picker-today[data-v-1b3884d2]{border-color:transparent}.picker-in-range[data-v-1b3884d2]{background:#4c7d331f!important;border-radius:0}.picker-quick[data-v-1b3884d2]{display:flex;gap:6px;padding-top:10px;border-top:1px solid var(--md-outline-variant);margin-top:8px}.quick-btn[data-v-1b3884d2]{flex:1;padding:6px 0;border:none;background:#4c7d3314;color:var(--md-primary);font-size:12px;font-weight:600;border-radius:999px;cursor:pointer;transition:background .15s ease;font-family:inherit}.quick-btn[data-v-1b3884d2]:hover{background:var(--md-primary-container)}.subtask-section[data-v-1b3884d2]{margin-top:8px;padding-top:12px;border-top:1px solid rgba(0,0,0,.06)}.subtask-title[data-v-1b3884d2]{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#6e6e73;margin-bottom:8px}.subtask-icon[data-v-1b3884d2]{font-size:16px;color:var(--md-primary)}.subtask-list[data-v-1b3884d2]{list-style:none;padding:0;margin:0 0 8px;display:flex;flex-direction:column;gap:4px}.subtask-item[data-v-1b3884d2]{display:flex;align-items:center;gap:6px;padding:4px 8px;border-radius:8px;transition:background .1s ease}.subtask-item[data-v-1b3884d2]:hover{background:#00000008}.subtask-done .subtask-content[data-v-1b3884d2]{text-decoration:line-through;color:var(--md-on-surface-variant)}.subtask-radio[data-v-1b3884d2]{font-size:20px;color:#aeaeb2;flex-shrink:0;cursor:pointer;transition:color .15s ease}.subtask-done .subtask-radio[data-v-1b3884d2]{color:var(--md-primary)}.subtask-content[data-v-1b3884d2]{flex:1;font-size:13px;color:#1d1d1f;cursor:pointer;line-height:1.4;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subtask-edit-input[data-v-1b3884d2]{flex:1;font-size:13px;border:1px solid var(--md-outline-variant);border-radius:6px;padding:3px 8px;outline:none;font-family:inherit;line-height:1.4;min-width:0}.subtask-edit-input[data-v-1b3884d2]:focus{border-color:var(--md-primary)}.subtask-delete-btn[data-v-1b3884d2]{width:20px;height:20px;border:none;background:transparent;cursor:pointer;color:#aeaeb2;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;transition:color .15s ease,background .15s ease}.subtask-delete-btn[data-v-1b3884d2]:hover{color:#b3261e;background:#b3261e14}.subtask-delete-btn .material-symbols-outlined[data-v-1b3884d2]{font-size:16px}.subtask-add-row[data-v-1b3884d2]{display:flex;align-items:center;gap:6px}.subtask-add-btn[data-v-1b3884d2]{display:flex;align-items:center;gap:4px;padding:6px 12px;border:none;background:#4c7d3314;color:var(--md-primary);font-size:12px;font-weight:600;border-radius:999px;cursor:pointer;transition:background .15s ease;font-family:inherit}.subtask-add-btn[data-v-1b3884d2]:hover{background:var(--md-primary-container)}.subtask-add-btn .material-symbols-outlined[data-v-1b3884d2]{font-size:16px}.subtask-add-active[data-v-1b3884d2]{gap:6px}.subtask-new-input[data-v-1b3884d2]{flex:1;font-size:13px;border:1px solid var(--md-outline-variant);border-radius:6px;padding:5px 10px;outline:none;font-family:inherit;line-height:1.4}.subtask-new-input[data-v-1b3884d2]:focus{border-color:var(--md-primary)}.subtask-confirm[data-v-1b3884d2]{padding:5px 14px;border:none;background:var(--md-primary);color:#fff;font-size:12px;font-weight:600;border-radius:999px;cursor:pointer;font-family:inherit}.subtask-cancel[data-v-1b3884d2]{padding:5px 14px;border:none;background:#0000000a;color:#6e6e73;font-size:12px;font-weight:500;border-radius:999px;cursor:pointer;font-family:inherit}.calendar[data-v-0c4effe4]{display:flex;flex-direction:column;height:100%;overflow:hidden}.calendar-header[data-v-0c4effe4]{display:flex;align-items:center;justify-content:space-between;padding:8px 0;flex-shrink:0}.header-left-group[data-v-0c4effe4]{display:flex;align-items:center;gap:4px}.cal-month[data-v-0c4effe4]{font-size:15px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:999px;transition:background .15s cubic-bezier(.2,0,0,1);color:#1d1d1f;white-space:nowrap;line-height:1.5}.cal-month[data-v-0c4effe4]:hover{background:#1c1b1f0f}.cal-month-arrow[data-v-0c4effe4]{font-size:10px;color:#86868b}.cal-nav-btn[data-v-0c4effe4]{width:30px;height:30px;border:none;background:transparent;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;color:#86868b;border-radius:999px;transition:background .15s cubic-bezier(.2,0,0,1);flex-shrink:0}.cal-nav-btn[data-v-0c4effe4]:hover{background:#1c1b1f0f}.cal-today-btn[data-v-0c4effe4]{font-size:12px;font-weight:500;padding:4px 10px;border-radius:999px;background:var(--md-primary-container);color:var(--md-on-primary-container);border:none;cursor:pointer;transition:background .15s cubic-bezier(.2,0,0,1);flex-shrink:0}.cal-today-btn[data-v-0c4effe4]:hover{background:#c5ed9a}.cal-segmented[data-v-0c4effe4]{display:flex;background:#f0f1f4;border-radius:8px;padding:2px;gap:2px}.header-right-group[data-v-0c4effe4]{display:flex;align-items:center;gap:8px}.cal-gantt-btn[data-v-0c4effe4]{width:34px;height:34px;border:none;background:#f0f1f4;cursor:pointer;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#6e6e73;transition:all .15s cubic-bezier(.2,0,0,1);flex-shrink:0}.cal-gantt-btn .material-symbols-outlined[data-v-0c4effe4]{font-size:20px}.cal-gantt-btn[data-v-0c4effe4]:hover{background:#e8e8ed}.cal-gantt-btn.active[data-v-0c4effe4]{background:var(--md-primary-container);color:var(--md-on-primary-container)}.seg-btn[data-v-0c4effe4]{border:none;background:transparent;cursor:pointer;font-size:12px;font-weight:500;font-family:inherit;color:#6e6e73;padding:4px 12px;border-radius:6px;transition:all .15s cubic-bezier(.2,0,0,1)}.seg-btn[data-v-0c4effe4]:hover{color:#1d1d1f}.seg-btn.active[data-v-0c4effe4]{background:var(--md-surface);color:#1d1d1f;box-shadow:0 1px 2px #0000000f;font-weight:600}.cal-picker-panel[data-v-0c4effe4]{flex-shrink:0;background:#f5f5f7;border-radius:6px;margin-bottom:8px}.cal-picker-header[data-v-0c4effe4]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px}.cal-picker-year[data-v-0c4effe4]{font-size:15px;font-weight:600;color:#1d1d1f}.cal-small-btn[data-v-0c4effe4]{width:28px;height:28px;font-size:14px;border-radius:999px}.cal-month-picker[data-v-0c4effe4]{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:8px 16px 16px}.cal-month-option[data-v-0c4effe4]{text-align:center;padding:8px 0;font-size:13px;cursor:pointer;border-radius:999px;transition:all .15s cubic-bezier(.2,0,0,1);color:#1d1d1f}.cal-month-option[data-v-0c4effe4]:hover{background:#1c1b1f0f}.cal-month-active[data-v-0c4effe4]{background:var(--md-primary);color:var(--md-on-primary);font-weight:500}.cal-fade-enter-active[data-v-0c4effe4],.cal-fade-leave-active[data-v-0c4effe4]{transition:opacity .2s ease}.cal-fade-enter-from[data-v-0c4effe4],.cal-fade-leave-to[data-v-0c4effe4]{opacity:0}.cal-view[data-v-0c4effe4]{flex:1;min-height:0;display:flex;flex-direction:column}.cal-weekdays[data-v-0c4effe4]{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:11px;font-weight:500;letter-spacing:.4px;color:#aeaeb2;padding:6px 0;flex-shrink:0}.cal-grid[data-v-0c4effe4]{display:grid;grid-template-columns:repeat(7,1fr);flex:1;min-height:0}.cal-cell[data-v-0c4effe4]{position:relative;padding:4px 6px;border-right:1px solid rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.03);cursor:pointer;display:flex;flex-direction:column;overflow:hidden;min-height:120px;transition:background .15s cubic-bezier(.2,0,0,1);background:#fefefe}.cal-cell[data-v-0c4effe4]:hover{background:#f8f9fa}.cal-cell:hover .cal-add-btn[data-v-0c4effe4]{opacity:1}.cal-cell[data-v-0c4effe4]:nth-child(7n){border-right:none}.cal-empty[data-v-0c4effe4]{cursor:default;background:#fafafb}.cal-empty[data-v-0c4effe4]:hover{background:#fafafb}.cal-day-number[data-v-0c4effe4]{font-size:13px;font-weight:500;color:#1d1d1f;flex-shrink:0;line-height:1;margin-bottom:4px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:50%}.cal-day-number.is-today[data-v-0c4effe4]{background:var(--md-primary);color:#fff;font-weight:700}.cal-day-other[data-v-0c4effe4]{font-size:11px;color:#d1d1d6;font-weight:400}.cal-selected[data-v-0c4effe4]{background:var(--md-primary-container)!important}.cal-drag-over[data-v-0c4effe4]{background:#4c7d3314!important;box-shadow:inset 0 0 0 2px #4c7d3340}.cal-add-btn[data-v-0c4effe4]{position:absolute;top:3px;right:3px;width:20px;height:20px;border:none;background:#4c7d331a;color:var(--md-primary);border-radius:50%;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s cubic-bezier(.2,0,0,1),background .15s cubic-bezier(.2,0,0,1);z-index:2}.cal-add-btn[data-v-0c4effe4]:hover{background:#4c7d3333}.cal-events[data-v-0c4effe4]{display:flex;flex-direction:column;gap:2px;flex:1;min-height:0;overflow:hidden}.event-bar[data-v-0c4effe4]{width:100%;padding:2px 6px;font-size:11px;font-weight:500;line-height:1.5;border-radius:3px;border-left:3px solid transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:background .1s ease;background:#d7f7b759;color:#102300}.event-bar[data-v-0c4effe4]:hover{background:#d7f7b78c}.event-bar.is-completed[data-v-0c4effe4]{opacity:.5}.event-bar.is-completed[data-v-0c4effe4]{text-decoration:line-through;color:var(--md-on-surface-variant)}.event-bar[data-urgency=urgent_important][data-v-0c4effe4]{border-left-color:#dc3232}.event-bar[data-urgency=important][data-v-0c4effe4]{border-left-color:#d4a017}.event-bar[data-urgency=urgent][data-v-0c4effe4]{border-left-color:#2e7d32}.event-bar[data-urgency=none][data-v-0c4effe4]{border-left-color:var(--md-primary)}.cal-more[data-v-0c4effe4]{font-size:10px;color:#aeaeb2;padding:1px 4px;cursor:pointer;font-weight:500}.cal-more[data-v-0c4effe4]:hover{color:var(--md-primary)}.cal-week-columns[data-v-0c4effe4]{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;flex:1;min-height:0;background:#f6f6f8}.cal-week-col[data-v-0c4effe4]{background:#fdfdfd;display:flex;flex-direction:column;overflow:hidden}.cal-week-today[data-v-0c4effe4]{background:#d7f7b72e}.cal-week-col.cal-drag-over[data-v-0c4effe4]{background:#4c7d3314!important}.cal-col-header[data-v-0c4effe4]{text-align:center;padding:10px 4px 8px;cursor:pointer;border-radius:8px 8px 0 0;transition:background .15s ease;flex-shrink:0}.cal-col-header[data-v-0c4effe4]:hover{background:#4c7d3314}.cal-col-weekday[data-v-0c4effe4]{display:block;font-size:11px;font-weight:500;color:#86868b;margin-bottom:2px}.cal-col-daynum[data-v-0c4effe4]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;font-size:15px;font-weight:600;color:#1d1d1f;border-radius:50%;transition:all .15s ease}.cal-col-daynum.is-today[data-v-0c4effe4]{background:var(--md-primary);color:#fff}.cal-col-events[data-v-0c4effe4]{flex:1;min-height:0;overflow-y:auto;padding:4px 6px 8px;display:flex;flex-direction:column;gap:3px}.cal-col-empty[data-v-0c4effe4]{font-size:11px;color:#d1d1d6;text-align:center;padding:8px 0}.week-event-bar[data-v-0c4effe4]{font-size:12px;padding:4px 8px}.cal-day-header[data-v-0c4effe4]{text-align:center;padding:16px 0 12px;flex-shrink:0}.cal-day-weekday[data-v-0c4effe4]{display:block;font-size:14px;font-weight:500;color:#86868b;margin-bottom:2px}.cal-day-full[data-v-0c4effe4]{font-size:22px;font-weight:700;color:#1d1d1f}.cal-day-list[data-v-0c4effe4]{flex:1;min-height:0;overflow-y:auto;padding:8px 0;display:flex;flex-direction:column;gap:8px}.cal-day-item[data-v-0c4effe4]{background:#f5f5f7;border-radius:12px;padding:14px 16px;cursor:pointer;transition:all .15s cubic-bezier(.2,0,0,1);border-left:4px solid transparent}.cal-day-item[data-v-0c4effe4]:hover{background:#ebebf0;transform:translateY(-1px)}.cal-day-item.is-completed[data-v-0c4effe4]{opacity:.5}.cal-day-item.is-completed .cal-day-item-title[data-v-0c4effe4]{text-decoration:line-through;color:var(--md-on-surface-variant)}.cal-day-item[data-urgency=urgent_important][data-v-0c4effe4]{border-left-color:#dc3232}.cal-day-item[data-urgency=important][data-v-0c4effe4]{border-left-color:#d4a017}.cal-day-item[data-urgency=urgent][data-v-0c4effe4]{border-left-color:#2e7d32}.cal-day-item-head[data-v-0c4effe4]{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.cal-day-item-title[data-v-0c4effe4]{font-size:15px;font-weight:600;color:#1d1d1f}.cal-day-item-urgency[data-v-0c4effe4]{font-size:11px;font-weight:500;padding:2px 10px;border-radius:999px;background:#f0f1f4;color:#6e6e73;white-space:nowrap;flex-shrink:0}.cal-day-item-urgency[data-urgency=urgent_important][data-v-0c4effe4]{background:#dc32321a;color:#dc3232}.cal-day-item-urgency[data-urgency=important][data-v-0c4effe4]{background:#d4a0171a;color:#d4a017}.cal-day-item-urgency[data-urgency=urgent][data-v-0c4effe4]{background:#2e7d321a;color:#2e7d32}.cal-day-item-desc[data-v-0c4effe4]{font-size:13px;color:#6e6e73;line-height:1.6;margin:0 0 8px}.cal-day-item-meta[data-v-0c4effe4]{display:flex;flex-wrap:wrap;gap:6px}.cal-day-item-chip[data-v-0c4effe4]{font-size:11px;color:#86868b;background:#1c1b1f0a;padding:3px 10px;border-radius:999px}.cal-day-empty[data-v-0c4effe4]{text-align:center;padding:48px 16px;color:#aeaeb2;font-size:14px;display:flex;flex-direction:column;align-items:center;gap:8px}.cal-day-empty-icon[data-v-0c4effe4]{font-size:40px;color:#d1d1d6}.cal-day-add-btn[data-v-0c4effe4]{margin-top:12px;padding:8px 24px;border:none;border-radius:999px;background:var(--md-primary-container);color:var(--md-on-primary-container);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s ease}.cal-day-view[data-v-0c4effe4]{position:relative;padding-left:20px}.cal-day-view[data-v-0c4effe4]:before{content:"";position:absolute;left:6px;top:0;bottom:0;width:1px;background:#4c7d331f;border-radius:1px}.cal-day-item-card[data-v-0c4effe4]{position:relative;margin-left:12px;margin-bottom:8px}.cal-day-item-card[data-v-0c4effe4]:before{content:"";position:absolute;left:-9px;top:12px;width:7px;height:7px;border-radius:50%;border:2px solid var(--md-primary);background:#fff}.cal-day-item-card[data-urgency=urgent_important][data-v-0c4effe4]:before{border-color:#dc3232}.cal-day-item-card[data-urgency=important][data-v-0c4effe4]:before{border-color:#d4a017}.cal-day-item-card[data-urgency=urgent][data-v-0c4effe4]:before{border-color:#2e7d32}.cal-day-item-card[data-urgency=none][data-v-0c4effe4]:before{border-color:var(--md-primary)}.cal-day-add-btn[data-v-0c4effe4]:hover{background:#c5ed9a}@media(max-width:768px){.cal-month[data-v-0c4effe4]{font-size:13px;padding:3px 8px}.cal-nav-btn[data-v-0c4effe4]{width:26px;height:26px;font-size:16px}.cal-today-btn[data-v-0c4effe4]{font-size:11px;padding:3px 8px}.cal-segmented[data-v-0c4effe4]{gap:1px}.seg-btn[data-v-0c4effe4]{font-size:11px;padding:3px 8px}.cal-gantt-btn[data-v-0c4effe4]{width:30px;height:30px}.cal-gantt-btn .material-symbols-outlined[data-v-0c4effe4]{font-size:18px}}.gantt-chart[data-v-945c2195]{display:flex;flex-direction:column;background:transparent;border-radius:12px;overflow:hidden;width:100%;position:relative;height:100%}.gantt-resize-handle[data-v-945c2195]{position:absolute;top:0;left:0;right:0;height:8px;cursor:row-resize;z-index:10;display:flex;align-items:center;justify-content:center;border-top:1px solid rgba(0,0,0,.06);transition:background .15s ease}.gantt-resize-handle[data-v-945c2195]:hover,.gantt-resize-handle[data-v-945c2195]:active{background:#4c7d3314}.resize-indicator[data-v-945c2195]{width:32px;height:4px;border-radius:2px;background:#c1c1c6;transition:background .15s ease}.gantt-resize-handle:hover .resize-indicator[data-v-945c2195],.gantt-resize-handle:active .resize-indicator[data-v-945c2195]{background:#8e8e93}.gantt-header[data-v-945c2195]{display:flex;align-items:center;justify-content:space-between;padding:8px 16px 4px;flex-shrink:0}.gantt-title[data-v-945c2195]{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#1d1d1f}.gantt-icon[data-v-945c2195]{font-size:18px;color:var(--md-primary)}.gantt-collapse-btn[data-v-945c2195]{width:28px;height:28px;border:none;background:transparent;cursor:pointer;color:#86868b;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .15s ease}.gantt-collapse-btn[data-v-945c2195]:hover{background:#1c1b1f0f}.gantt-body[data-v-945c2195]{flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:auto;position:relative}.gantt-body[data-v-945c2195]::-webkit-scrollbar{width:6px;height:6px}.gantt-body[data-v-945c2195]::-webkit-scrollbar-track{background:transparent}.gantt-body[data-v-945c2195]::-webkit-scrollbar-thumb{background:#4c7d3340;border-radius:10px;transition:background .15s ease}.gantt-body[data-v-945c2195]::-webkit-scrollbar-thumb:hover{background:#4c7d3373}.gantt-body[data-v-945c2195]{scrollbar-width:thin;scrollbar-color:rgba(76,125,51,.25) transparent}.gantt-date-header[data-v-945c2195]{display:flex;position:sticky;top:0;z-index:20;background:#fafafb;flex-shrink:0;border-bottom:1px solid rgba(0,0,0,.04)}.gantt-corner-label[data-v-945c2195]{position:sticky;left:0;z-index:25;width:var(--v6a13536c);min-width:var(--v6a13536c);flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#fafafb}.gantt-date-row[data-v-945c2195]{display:flex;min-width:var(--v1740c94e)}.gantt-day-cell[data-v-945c2195]{width:var(--gantt-day-width);min-width:var(--gantt-day-width);text-align:center;padding:4px 0;flex-shrink:0;border-bottom:1px solid rgba(0,0,0,.04);transition:width .3s ease,min-width .3s ease}.gantt-today[data-v-945c2195]{background:#d7f7b759}.gantt-weekend[data-v-945c2195]{background:#c8beb414}.gantt-zebra.gantt-day-cell[data-v-945c2195]{background:#00000004}.gantt-day-weekday[data-v-945c2195]{display:block;font-size:9px;color:#aeaeb2;font-weight:500}.gantt-day-num[data-v-945c2195]{display:block;font-size:11px;font-weight:600;color:#1d1d1f}.gantt-today .gantt-day-num[data-v-945c2195]{background:var(--md-primary);color:#fff;width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:10px}.gantt-row[data-v-945c2195]{display:flex;align-items:center;height:var(--v77d9b0c7);flex-shrink:0}.gantt-row-label[data-v-945c2195]{position:sticky;left:0;z-index:10;width:var(--v6a13536c);min-width:var(--v6a13536c);flex-shrink:0;display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 12px 4px 0;background:#fff;border-bottom:1px solid rgba(0,0,0,.03);transition:background .1s ease;overflow:hidden;height:var(--v77d9b0c7)}.gantt-row-label[data-v-945c2195]:hover{background:#1c1b1f0a}.gantt-color-dot[data-v-945c2195]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.gantt-label-text[data-v-945c2195]{font-size:12px;font-weight:500;color:#1d1d1f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.gantt-row-canvas[data-v-945c2195]{position:relative;height:var(--v77d9b0c7);flex-shrink:0;min-width:var(--v1740c94e);border-bottom:1px solid rgba(0,0,0,.03)}.gantt-canvas-bg[data-v-945c2195]{display:flex;pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0}.gantt-col-bg[data-v-945c2195]{width:var(--gantt-day-width);min-width:var(--gantt-day-width);flex-shrink:0;border-right:1px solid rgba(0,0,0,.02);transition:width .3s ease,min-width .3s ease}.gantt-today-col[data-v-945c2195]{background:#d7f7b72e}.gantt-weekend-col[data-v-945c2195]{background:#c8beb40f}.gantt-zebra-col[data-v-945c2195]{background:#00000003}.gantt-bar[data-v-945c2195]{position:absolute;height:22px;top:50%;transform:translateY(-50%);border-radius:999px;display:flex;align-items:center;padding:0 8px;cursor:grab;transition:left .3s ease,width .3s ease,transform .15s ease,box-shadow .15s ease;overflow:hidden;z-index:2}.gantt-bar[data-v-945c2195]:active{cursor:grabbing}.resize-handle[data-v-945c2195]{position:absolute;top:0;bottom:0;width:6px;cursor:ew-resize;z-index:3;border-radius:999px;opacity:0;transition:opacity .15s ease}.resize-handle[data-v-945c2195]:hover,.gantt-bar:hover .resize-handle[data-v-945c2195]{opacity:1}.resize-handle-left[data-v-945c2195]{left:2px;background:#ffffff59}.resize-handle-right[data-v-945c2195]{right:2px;background:#ffffff59}.gantt-bar[data-v-945c2195]:hover{transform:translateY(-50%) scaleY(1.2);box-shadow:0 2px 8px #0000001f}.gantt-bar.is-completed[data-v-945c2195]{opacity:.4}.gantt-bar.is-completed .gantt-bar-label[data-v-945c2195]{text-decoration:line-through}.gantt-bar-label[data-v-945c2195]{font-size:10px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-tooltip[data-v-945c2195]{position:absolute;z-index:10;background:#1d1d1f;color:#fff;font-size:11px;font-weight:500;padding:4px 10px;border-radius:6px;white-space:nowrap;pointer-events:none;transform:translate(-50%)}.gantt-tooltip[data-v-945c2195]:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%);border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #1D1D1F}.gantt-empty[data-v-945c2195]{text-align:center;padding:28px 0;color:#aeaeb2;font-size:13px;display:flex;flex-direction:column;align-items:center;gap:4px}.gantt-empty-icon[data-v-945c2195]{font-size:32px;color:#d1d1d6}.toast[data-v-22507212]{position:fixed;top:24px;left:50%;transform:translate(-50%);z-index:10000;display:flex;align-items:center;gap:10px;padding:14px 20px 0 18px;min-width:280px;max-width:520px;border-radius:28px;background:#313131;color:#fff;font-size:14px;font-weight:500;box-shadow:0 4px 16px #0000002e;overflow:hidden;animation:toast-slide-in-22507212 .3s cubic-bezier(.2,0,0,1) both}.toast-icon[data-v-22507212]{font-size:20px;flex-shrink:0;margin-top:1px}.toast-message[data-v-22507212]{flex:1;line-height:1.4;padding-right:8px}.toast-close[data-v-22507212]{width:28px;height:28px;border:none;background:transparent;cursor:pointer;color:#fff9;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;transition:background .15s ease,color .15s ease}.toast-close[data-v-22507212]:hover{background:#ffffff1f;color:#fff}.toast-close .material-symbols-outlined[data-v-22507212]{font-size:18px}.toast-progress[data-v-22507212]{position:absolute;bottom:0;left:0;right:0;height:4px;background:#ffffff1a}.toast-progress-bar[data-v-22507212]{height:100%;border-radius:0 0 28px 28px;animation:progress-22507212 5s linear forwards}.bar-info[data-v-22507212],.bar-success[data-v-22507212]{background:#4c7d33}.bar-error[data-v-22507212]{background:#b3261e}.toast-success[data-v-22507212]{background:#f4f9ec;color:#102300}.toast-success .toast-icon[data-v-22507212]{color:var(--md-primary)}.toast-success .toast-close[data-v-22507212]{color:#10230080}.toast-success .toast-close[data-v-22507212]:hover{background:#4c7d331f}.toast-success .toast-progress[data-v-22507212]{background:#4c7d3326}.toast-error[data-v-22507212]{background:#fcedea;color:#410e0b}.toast-error .toast-icon[data-v-22507212]{color:#b3261e}.toast-error .toast-close[data-v-22507212]{color:#b3261e80}.toast-error .toast-close[data-v-22507212]:hover,.toast-error .toast-progress[data-v-22507212]{background:#b3261e1a}@keyframes toast-slide-in-22507212{0%{opacity:0;transform:translate(-50%) translateY(-16px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes progress-22507212{0%{width:100%}to{width:0%}}.toast-fade-enter-active[data-v-22507212]{animation:toast-slide-in-22507212 .3s cubic-bezier(.2,0,0,1) both}.toast-fade-leave-active[data-v-22507212]{animation:toast-fade-out-22507212 .3s cubic-bezier(.2,0,0,1) both}@keyframes toast-fade-out-22507212{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-16px)}}.settings-overlay[data-v-f048cf62]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000052;z-index:300;display:flex;align-items:center;justify-content:center;animation:fadeIn-f048cf62 .2s ease}@keyframes fadeIn-f048cf62{0%{opacity:0}to{opacity:1}}.settings-card[data-v-f048cf62]{background:#fff;border-radius:28px;padding:32px;width:90%;max-width:400px;box-shadow:0 12px 48px #00000014;animation:popIn-f048cf62 .3s cubic-bezier(.2,0,0,1)}@keyframes popIn-f048cf62{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.settings-header[data-v-f048cf62]{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.settings-header h2[data-v-f048cf62]{font-size:22px;font-weight:500;color:#1d1d1f;margin:0;line-height:28px}.settings-close-btn[data-v-f048cf62]{width:36px;height:36px;border:none;background:transparent;border-radius:50%;cursor:pointer;color:#6e6e73;display:flex;align-items:center;justify-content:center;transition:background .15s ease}.settings-close-btn[data-v-f048cf62]:hover{background:#0000000f}.settings-section[data-v-f048cf62]{margin-bottom:24px}.settings-section[data-v-f048cf62]:last-child{margin-bottom:0}.settings-section-title[data-v-f048cf62]{font-size:13px;font-weight:600;color:#6e6e73;margin:0 0 12px;letter-spacing:.02em}.segmented-btns[data-v-f048cf62]{display:flex;gap:4px;background:#f0f1f4;border-radius:12px;padding:4px}.seg-btn[data-v-f048cf62]{flex:1;border:none;background:transparent;border-radius:8px;padding:10px 16px;cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font-family);color:#6e6e73;transition:all .15s ease;display:flex;align-items:center;justify-content:center;min-height:40px}.seg-btn[data-v-f048cf62]:hover{color:#1d1d1f}.seg-btn.active[data-v-f048cf62]{background:#fff;color:#1d1d1f;font-weight:600;box-shadow:0 2px 8px #0000000f}:root{--md-primary: #4C7D33;--md-on-primary: #FFFFFF;--md-primary-container: #D7F7B7;--md-on-primary-container: #102300;--md-secondary: #5C6252;--md-on-secondary: #FFFFFF;--md-secondary-container: #DDE5D1;--md-on-secondary-container: #151E0D;--md-tertiary: #5C6252;--md-on-tertiary: #FFFFFF;--md-tertiary-container: #E0E8D7;--md-error: #B3261E;--md-on-error: #FFFFFF;--md-error-container: #F9DEDC;--md-on-error-container: #410E0B;--md-background: #F7F8FC;--md-surface: #FFFFFF;--md-on-surface: #1D1D1F;--md-on-surface-variant: #6E6E73;--md-outline: #E5E5EA;--md-outline-variant: #F0F0F4;--md-surface-container-lowest: #FFFFFF;--md-surface-container-low: #F9FAFB;--md-surface-container: #F5F5F7;--md-surface-container-high: #F0F0F2;--md-surface-container-highest: #E8E8ED;--md-priority-urgent_important: #DC3232;--md-priority-important: #D4A017;--md-priority-urgent: #2E7D32;--md-priority-none: var(--md-primary);--font-family: "Noto Sans", "Noto Sans SC", sans-serif;--max-width: 640px;--md-radius-none: 0px;--md-radius-xs: 4px;--md-radius-sm: 6px;--md-radius-md: 8px;--md-radius-lg: 12px;--md-radius-lg-inc: 16px;--md-radius-xl: 28px;--md-radius-full: 9999px;--md-spacing-2: 2px;--md-spacing-4: 4px;--md-spacing-6: 6px;--md-spacing-8: 8px;--md-spacing-12: 12px;--md-spacing-16: 16px;--md-spacing-20: 20px;--md-spacing-24: 24px;--md-spacing-32: 32px;--md-spacing-48: 48px;--md-state-hover: rgba(76, 125, 51, .08);--md-state-pressed: rgba(76, 125, 51, .12);--md-state-focus: rgba(76, 125, 51, .16);--md-elevation-0: none;--md-elevation-1: 0 1px 3px 1px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .03);--md-elevation-2: 0 2px 8px 4px rgba(0, 0, 0, .04), 0 1px 3px rgba(0, 0, 0, .02);--md-elevation-3: 0 4px 12px 6px rgba(0, 0, 0, .05), 0 1px 4px rgba(0, 0, 0, .03);--md-easing-standard: cubic-bezier(.2, 0, 0, 1);--md-easing-emphasized: cubic-bezier(.2, 0, 0, 1);--md-duration-fast: .15s;--md-duration-normal: .25s;--md-duration-slow: .35s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{overscroll-behavior:none;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}body{font-family:var(--font-family);color:var(--md-on-surface);background:var(--md-background);line-height:1.6;-webkit-font-smoothing:antialiased;touch-action:pan-y;-webkit-text-size-adjust:100%;overflow-x:hidden}body.drawer-open{overflow:hidden;position:fixed;width:100%;touch-action:none}#app{max-width:1600px;margin:0 auto;padding:20px 24px;display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-root{display:flex;flex-direction:column;flex:1;min-height:0}.main-layout{display:flex;gap:24px;align-items:stretch;flex:1;min-height:0}.todo-panel{flex:0 0 calc(40% - 12px);min-width:0;overflow-y:auto;padding:32px;background:#fff;border-radius:24px;box-shadow:0 10px 40px #0000000a}.calendar-panel{flex:0 0 calc(60% - 12px);min-width:0;display:flex;flex-direction:column;overflow:hidden;background:#fff;border-radius:24px;box-shadow:0 10px 40px #0000000a;padding:32px 32px 16px;gap:0}.calendar-panel>.calendar{flex:1 1 auto;min-height:200px;overflow-y:auto}.gantt-container{min-height:0;overflow:hidden;margin-top:12px;display:flex;flex-direction:column}.gantt-slide-enter-active,.gantt-slide-leave-active{transition:all .4s cubic-bezier(.4,0,.2,1)}.gantt-slide-enter-from,.gantt-slide-leave-to{opacity:0;transform:translateY(-10px)}.app-header{margin-bottom:24px;border-radius:20px;background:#e2e9d8;border:none;box-shadow:0 6px 24px #0000000a;transition:box-shadow var(--md-duration-normal) var(--md-easing-standard)}.header-scrolled{box-shadow:0 8px 32px #0000000f}.header-inner{display:flex;align-items:center;justify-content:space-between;padding:10px 24px;min-height:56px}.header-left{display:flex;align-items:center;gap:var(--md-spacing-12);min-width:0}.header-brand-icon{font-size:24px;color:var(--md-primary);flex-shrink:0;transition:transform var(--md-duration-normal) var(--md-easing-standard)}.header-inner:hover .header-brand-icon{transform:scale(1.05)}.app-title{font-size:20px;font-weight:700;letter-spacing:-.02em;color:#1a1c18;line-height:1.4;white-space:nowrap}.db-status{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;background:#d7f7b7;border-radius:999px;font-size:11px;font-weight:600;color:#2d4a1a;letter-spacing:.02em;border:1px solid rgba(76,125,51,.1)}@media(min-width:769px){.header-clock{display:block}}.db-dot{width:6px;height:6px;border-radius:50%;background:#4c7d33;animation:dbPulse 2s ease-in-out infinite}@keyframes dbPulse{0%,to{opacity:1;box-shadow:0 0 #4c7d3366}50%{opacity:.7;box-shadow:0 0 0 3px #4c7d3300}}.header-clock{font-family:JetBrains Mono,Roboto Mono,ui-monospace,monospace;font-size:13px;color:var(--md-on-surface-variant);background:#00000008;padding:4px 10px;border-radius:4px;white-space:nowrap;-webkit-user-select:none;user-select:none;letter-spacing:.02em;font-variant-numeric:tabular-nums;display:none}.header-right{display:flex;gap:2px;align-items:center;flex-shrink:0;background:#ffffff8c;border-radius:999px;padding:4px 8px 4px 4px}.header-icon-btn{width:40px;height:40px;border:none;border-radius:var(--md-radius-full);background:transparent;cursor:pointer;color:var(--md-on-surface-variant);display:flex;align-items:center;justify-content:center;transition:background var(--md-duration-fast) var(--md-easing-standard)}.header-icon-btn:hover{background:#4c7d3326}.header-icon-btn:active{background:#4c7d3340}.header-avatar{width:32px;height:32px;border-radius:50%;background:var(--md-primary-container);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--md-on-primary-container);letter-spacing:.02em;cursor:pointer;transition:transform var(--md-duration-fast) var(--md-easing-standard),box-shadow var(--md-duration-fast) var(--md-easing-standard);flex-shrink:0}.header-avatar:hover{transform:scale(1.1);box-shadow:var(--md-elevation-1)}.material-symbols-outlined{font-family:Material Symbols Outlined;font-size:22px;font-weight:400;line-height:1;font-style:normal;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased}.search-wrap{display:flex;margin-bottom:var(--md-spacing-8);background:#f0f1f4;border-radius:var(--md-radius-md);overflow:hidden}.search-input{flex:1;padding:0 var(--md-spacing-16);border:none;border-radius:var(--md-radius-md) 0 0 var(--md-radius-md);font-size:15px;font-family:var(--font-family);outline:none;background:transparent;color:var(--md-on-surface);height:40px;transition:background var(--md-duration-fast) var(--md-easing-standard)}.search-input:focus{background:#4c7d330f}.search-input::placeholder{color:var(--md-on-surface-variant);opacity:.6}.search-btn{padding:0 var(--md-spacing-16);border:none;background:transparent;cursor:pointer;font-size:14px;font-family:var(--font-family);color:var(--md-on-surface-variant);height:40px;border-radius:0 var(--md-radius-md) var(--md-radius-md) 0;transition:background var(--md-duration-fast) var(--md-easing-standard),color var(--md-duration-fast) var(--md-easing-standard)}.search-btn:hover{background:#1c1b1f0f;color:var(--md-on-surface)}.search-btn:active{background:#1c1b1f1a}.filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.filter-btn{padding:6px 14px;border:none;border-radius:999px;background:#f0f1f4;cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font-family);color:#5c5c60;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease;white-space:nowrap;line-height:1}.filter-btn:hover{background:#e8e8ed}.filter-btn:active{background:#e0e0e5}.filter-btn.active{background:#d7f7b7;color:#102300;font-weight:600}.filter-btn.active:hover{background:#c5ed9a}.section-divider{font-size:12px;font-weight:600;color:var(--md-on-surface-variant);padding:var(--md-spacing-24) 0 var(--md-spacing-8);letter-spacing:.8px;line-height:20px;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:var(--md-spacing-6);text-transform:uppercase;opacity:.7}.section-divider:hover{color:var(--md-on-surface);opacity:1}.collapse-arrow{display:inline-block;font-size:8px;transition:transform var(--md-duration-normal) var(--md-easing-standard);vertical-align:middle;color:var(--md-on-surface-variant);opacity:.5}.collapse-arrow.collapsed{transform:rotate(0)}.collapse-arrow:not(.collapsed){transform:rotate(90deg)}.todo-list{list-style:none;padding:0;margin:0}.todo-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;margin-bottom:8px;border-radius:var(--md-radius-sm);cursor:pointer;background:transparent;border-left:2px solid transparent;transition:background var(--md-duration-fast) var(--md-easing-standard),opacity var(--md-duration-normal) var(--md-easing-standard);min-height:44px}.todo-item:hover{background:var(--md-surface-container-low)}.todo-item:active{background:var(--md-surface-container)}.todo-item.is-completed{opacity:.5}.todo-item.is-completed .todo-title{text-decoration:line-through;color:var(--md-on-surface-variant)}.todo-content{display:flex;align-items:center;gap:var(--md-spacing-12);flex:1;min-width:0}.todo-left{display:flex;align-items:center;gap:var(--md-spacing-8);flex:1;min-width:0}.todo-item[data-urgency=urgent_important]{border-left-color:var(--md-priority-urgent_important)}.todo-item[data-urgency=important]{border-left-color:var(--md-priority-important)}.todo-item[data-urgency=urgent]{border-left-color:var(--md-priority-urgent)}.todo-item[data-urgency=none]{border-left-color:var(--md-primary)}.priority-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.dot-urgent_important{background:var(--md-priority-urgent_important)}.dot-important{background:var(--md-priority-important)}.dot-urgent{background:var(--md-priority-urgent)}.dot-none{background:var(--md-primary)}.todo-title{flex:1;font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;line-height:20px;color:#1d1d1f;transition:color var(--md-duration-fast) var(--md-easing-standard)}.todo-meta{display:flex;align-items:center;gap:var(--md-spacing-6);flex-shrink:0;font-size:12px;color:#86868b;line-height:16px}.due-date{font-size:12px;color:#86868b;white-space:nowrap}.contact-icon{display:inline-flex;align-items:center;color:var(--md-primary);flex-shrink:0}.contact-icon .material-symbols-outlined{font-size:16px}.pinned-icon{display:inline-flex;align-items:center;flex-shrink:0}.pinned-icon .material-symbols-outlined{font-size:16px;color:var(--md-primary);transform:rotate(45deg)}.todo-actions{display:flex;gap:var(--md-spacing-2);flex-shrink:0;opacity:0;transition:opacity var(--md-duration-fast) var(--md-easing-standard)}.todo-item:hover .todo-actions{opacity:1}.action-btn{width:28px;height:28px;border:none;border-radius:var(--md-radius-full);cursor:pointer;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--md-on-surface-variant);transition:background var(--md-duration-fast) var(--md-easing-standard),color var(--md-duration-fast) var(--md-easing-standard)}.action-btn .material-symbols-outlined{font-size:18px;line-height:1}.action-btn:hover{background:var(--md-state-hover);color:var(--md-on-surface)}.action-complete:hover{color:var(--md-priority-urgent)}.action-delete:hover{color:var(--md-error)}.action-undo:hover{color:var(--md-priority-urgent)}.empty-hint{text-align:center;color:#86868b;padding:var(--md-spacing-48) 0;font-size:13px;line-height:20px}.add-btn{display:flex;align-items:center;justify-content:center;width:100%;padding:0 var(--md-spacing-24);margin-top:var(--md-spacing-24);border:none;border-radius:var(--md-radius-full);background:var(--md-primary-container);cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font-family);color:var(--md-on-primary-container);letter-spacing:.1px;height:44px;transition:background var(--md-duration-fast) var(--md-easing-standard),transform var(--md-duration-fast) var(--md-easing-standard),box-shadow var(--md-duration-fast) var(--md-easing-standard)}.add-btn:hover{background:#c5ed9a;box-shadow:0 4px 12px #4c7d331f}.add-btn:active{transform:scale(.98)}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000052;z-index:100;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn var(--md-duration-normal) var(--md-easing-standard)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.drawer{width:100%;max-width:var(--max-width);background:var(--md-surface);border:none;padding:var(--md-spacing-24);max-height:85vh;overflow-y:auto;-webkit-overflow-scrolling:touch;border-radius:var(--md-radius-xl) var(--md-radius-xl) 0 0;scrollbar-width:none;animation:slideUp var(--md-duration-slow) var(--md-easing-emphasized);box-shadow:var(--md-elevation-2)}.drawer::-webkit-scrollbar{display:none}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.drawer-title{font-size:22px;font-weight:500;margin-bottom:var(--md-spacing-24);color:var(--md-on-surface);line-height:28px}.form-group{margin-bottom:var(--md-spacing-16)}.form-label{display:block;font-size:12px;font-weight:500;color:var(--md-on-surface-variant);margin-bottom:var(--md-spacing-8);letter-spacing:.4px}.form-input,.form-textarea,.form-select{width:100%;padding:var(--md-spacing-12) var(--md-spacing-16);border:1px solid transparent;border-radius:var(--md-radius-sm);font-size:16px;font-family:var(--font-family);outline:none;background:#f5f5f7;color:var(--md-on-surface);transition:background var(--md-duration-fast) var(--md-easing-standard),border-color var(--md-duration-fast) var(--md-easing-standard);min-height:48px}.form-input:focus,.form-textarea:focus,.form-select:focus{background:#4c7d330f;border-color:#4c7d334d}.form-input::placeholder{color:var(--md-on-surface-variant);opacity:.5}.form-textarea{resize:vertical;min-height:80px;line-height:1.5}.form-select{cursor:pointer}.form-row{display:flex;gap:var(--md-spacing-12)}.form-row .form-group{flex:1}.form-check{display:flex;align-items:center;gap:var(--md-spacing-8);font-size:14px;color:var(--md-on-surface);cursor:pointer;min-height:48px}.form-check input[type=checkbox]{width:18px;height:18px;accent-color:var(--md-primary);cursor:pointer}.form-actions{display:flex;gap:var(--md-spacing-8);margin-top:var(--md-spacing-24)}.btn-primary{flex:1;padding:0 var(--md-spacing-24);background:var(--md-primary);color:var(--md-on-primary);border:none;border-radius:var(--md-radius-full);cursor:pointer;font-size:14px;font-weight:500;font-family:var(--font-family);letter-spacing:.1px;height:40px;transition:box-shadow var(--md-duration-fast) var(--md-easing-standard),transform var(--md-duration-fast) var(--md-easing-standard)}.btn-primary:hover{box-shadow:var(--md-elevation-1)}.btn-primary:active{transform:scale(.98)}.btn-secondary{padding:0 var(--md-spacing-24);background:var(--md-secondary-container);color:var(--md-on-secondary-container);border:none;border-radius:var(--md-radius-full);cursor:pointer;font-size:14px;font-weight:500;font-family:var(--font-family);letter-spacing:.1px;height:40px;transition:box-shadow var(--md-duration-fast) var(--md-easing-standard),transform var(--md-duration-fast) var(--md-easing-standard)}.btn-secondary:hover{box-shadow:var(--md-elevation-1)}.btn-secondary:active{transform:scale(.98)}.btn-danger{padding:0 var(--md-spacing-24);background:var(--md-error);color:var(--md-on-error);border:none;border-radius:var(--md-radius-full);cursor:pointer;font-size:14px;font-weight:500;font-family:var(--font-family);letter-spacing:.1px;height:40px;transition:box-shadow var(--md-duration-fast) var(--md-easing-standard)}.btn-danger:hover{box-shadow:var(--md-elevation-1)}.btn-pin{padding:0 var(--md-spacing-24);background:transparent;color:var(--md-primary);border:1px solid var(--md-outline);border-radius:var(--md-radius-full);cursor:pointer;font-size:14px;font-weight:500;font-family:var(--font-family);letter-spacing:.1px;height:40px;transition:background var(--md-duration-fast) var(--md-easing-standard)}.btn-pin:hover{background:var(--md-state-hover)}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000052;z-index:200;display:flex;align-items:center;justify-content:center;animation:fadeIn var(--md-duration-fast) var(--md-easing-standard)}.dialog{background:var(--md-surface);border:none;border-radius:var(--md-radius-xl);padding:var(--md-spacing-24);max-width:360px;width:90%;text-align:center;animation:popIn var(--md-duration-normal) var(--md-easing-emphasized);box-shadow:var(--md-elevation-3)}@keyframes popIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.dialog p{margin-bottom:var(--md-spacing-24);font-size:15px;line-height:20px;color:var(--md-on-surface)}.dialog-actions{display:flex;gap:var(--md-spacing-8)}.dialog-actions button{flex:1}.detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000052;z-index:150;display:flex;align-items:center;justify-content:center;animation:fadeIn var(--md-duration-fast) var(--md-easing-standard)}.detail-card{background:var(--md-surface);border:none;border-radius:var(--md-radius-xl);padding:var(--md-spacing-24);max-width:420px;width:90%;animation:popIn var(--md-duration-normal) var(--md-easing-emphasized);box-shadow:var(--md-elevation-3)}.detail-card h3{font-size:20px;font-weight:600;margin-bottom:var(--md-spacing-16);color:var(--md-on-surface);line-height:28px}.detail-row{display:flex;justify-content:space-between;padding:var(--md-spacing-12) 0;font-size:13px;line-height:20px;border-bottom:1px solid var(--md-outline-variant);color:var(--md-on-surface-variant)}.detail-row:last-of-type{border-bottom:none}.detail-row .label{color:#86868b;font-weight:500}.detail-actions{display:flex;gap:var(--md-spacing-8);margin-top:var(--md-spacing-16);flex-wrap:wrap}.detail-subtask-section{margin-top:12px;padding-top:12px;border-top:1px solid rgba(0,0,0,.06)}.detail-subtask-header{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#6e6e73;margin-bottom:8px}.detail-subtask-icon{font-size:16px;color:var(--md-primary)}.detail-subtask-progress{display:flex;align-items:center;gap:10px;margin-bottom:10px}.progress-bar-bg{flex:1;height:3px;background:#4c7d331f;border-radius:2px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--md-primary);border-radius:2px;transition:width .3s ease}.progress-text{font-size:12px;font-weight:600;color:#86868b;white-space:nowrap;min-width:36px;text-align:right}.detail-subtask-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.detail-subtask-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;cursor:pointer;transition:background .1s ease}.detail-subtask-item:hover{background:#00000008}.detail-subtask-item.subtask-done .subtask-text{text-decoration:line-through;color:var(--md-on-surface-variant)}.subtask-radio{font-size:20px;color:#aeaeb2;flex-shrink:0;transition:color .15s ease}.detail-subtask-item.subtask-done .subtask-radio{color:var(--md-primary)}.subtask-text{font-size:13px;color:#1d1d1f;line-height:1.4}.selected-date-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--md-spacing-6) var(--md-spacing-12);margin-bottom:var(--md-spacing-8);background:var(--md-primary-container);color:var(--md-on-primary-container);font-size:12px;border-radius:var(--md-radius-sm);font-weight:500}.selected-date-close{background:none;border:none;color:var(--md-on-surface-variant);cursor:pointer;font-size:18px;padding:var(--md-spacing-4);border-radius:var(--md-radius-full);opacity:.6}.selected-date-close:hover{opacity:1;background:var(--md-state-hover)}*{scrollbar-width:thin;scrollbar-color:rgba(76,125,51,.2) transparent}.todo-panel::-webkit-scrollbar,.calendar-panel>.calendar::-webkit-scrollbar,.gantt-body::-webkit-scrollbar,.gantt-scroll-area::-webkit-scrollbar,.gantt-row-canvas::-webkit-scrollbar{width:6px;height:6px}.todo-panel::-webkit-scrollbar-track,.calendar-panel>.calendar::-webkit-scrollbar-track,.gantt-body::-webkit-scrollbar-track,.gantt-scroll-area::-webkit-scrollbar-track,.gantt-row-canvas::-webkit-scrollbar-track{background:transparent}.todo-panel::-webkit-scrollbar-thumb,.calendar-panel>.calendar::-webkit-scrollbar-thumb,.gantt-body::-webkit-scrollbar-thumb,.gantt-scroll-area::-webkit-scrollbar-thumb,.gantt-row-canvas::-webkit-scrollbar-thumb{background:#4c7d3300;border-radius:10px;transition:background .2s ease}.todo-panel::-webkit-scrollbar-thumb:hover,.calendar-panel>.calendar::-webkit-scrollbar-thumb:hover,.gantt-body::-webkit-scrollbar-thumb:hover,.gantt-scroll-area::-webkit-scrollbar-thumb:hover,.gantt-row-canvas::-webkit-scrollbar-thumb:hover{background:#4c7d338c!important}.todo-panel:hover::-webkit-scrollbar-thumb{background:#4c7d3340}.calendar-panel>.calendar:hover::-webkit-scrollbar-thumb{background:#4c7d3340}.gantt-body:hover::-webkit-scrollbar-thumb{background:#4c7d3340}.gantt-scroll-area:hover::-webkit-scrollbar-thumb{background:#4c7d3340}.gantt-row-canvas:hover::-webkit-scrollbar-thumb{background:#4c7d3340}.todo-panel,.calendar-panel>.calendar,.gantt-body,.gantt-scroll-area,.gantt-row-canvas{scroll-behavior:smooth}@media(max-width:768px){#app{padding:12px}.app-header{margin-bottom:12px}.header-inner{padding:8px 12px}.header-brand-icon{font-size:20px}.app-title{font-size:14px}.db-status{display:none}.header-clock{display:none!important}.todo-title{font-size:14px}.drawer{max-height:90vh;border-radius:var(--md-radius-lg-inc) var(--md-radius-lg-inc) 0 0;padding:var(--md-spacing-20)}.drawer-title{font-size:20px}.form-row{flex-direction:column;gap:0}.form-row .form-group{flex:none}.form-input,.form-select{-moz-appearance:none;appearance:none;-webkit-appearance:none}.todo-actions{opacity:1}.main-layout{flex-direction:column;gap:16px}.calendar-panel{display:none}.todo-panel{flex:1;padding:20px;margin-bottom:12px;border-radius:20px}.detail-card{width:95%;padding:var(--md-spacing-20)}.detail-actions{flex-direction:column}.detail-actions button{height:44px}}
