.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background-color:#fff;border-radius:.5rem;box-shadow:0 20px 25px -5px #0000001a;max-width:600px;width:100%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e5e7eb}.modal-header h2{margin:0;font-size:1.5rem;color:#1f2937;font-weight:600}.modal-close{background:none;border:none;font-size:2rem;color:#6b7280;cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:.25rem;transition:all .2s}.modal-close:hover{background-color:#f3f4f6;color:#1f2937}.modal-form{padding:1.5rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#374151;font-size:.875rem}.required{color:#ef4444}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.625rem .75rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;font-family:inherit;transition:all .2s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group input.error,.form-group textarea.error,.form-group select.error{border-color:#ef4444}.form-group input.error:focus,.form-group textarea.error:focus,.form-group select.error:focus{box-shadow:0 0 0 3px #ef44441a}.error-message{display:block;color:#ef4444;font-size:.75rem;margin-top:.25rem}.submit-error{background-color:#fef2f2;padding:.75rem;border-radius:.375rem;margin-bottom:1rem;border:1px solid #fecaca}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding-top:1rem;border-top:1px solid #e5e7eb}.btn-cancel,.btn-submit{padding:.625rem 1.25rem;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;border:1px solid}.btn-cancel{background-color:#fff;color:#374151;border-color:#d1d5db}.btn-cancel:hover{background-color:#f3f4f6}.btn-submit{background-color:#3b82f6;color:#fff;border-color:#3b82f6}.btn-submit:hover:not(:disabled){background-color:#2563eb}.btn-submit:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 640px){.modal-content{max-width:100%;margin:0;border-radius:0}.form-row{grid-template-columns:1fr}.modal-header,.modal-form{padding:1rem}}.task-item{background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem;margin-bottom:.75rem;display:flex;gap:.75rem;cursor:pointer;transition:all .2s}.task-item:hover{box-shadow:0 4px 6px -1px #0000001a;border-color:#d1d5db}.task-item.compact{padding:.5rem;margin-bottom:.5rem}.task-item.completed{opacity:.6}.task-item.overdue{border-left:4px solid #ef4444}.task-item-checkbox{display:flex;align-items:flex-start;padding-top:.125rem}.task-item-checkbox input[type=checkbox]{width:1.25rem;height:1.25rem;cursor:pointer;accent-color:#3b82f6}.task-item-content{flex:1;min-width:0}.task-item-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem;flex-wrap:wrap}.task-item-title{font-size:1rem;font-weight:600;color:#1f2937;margin:0;flex:1;min-width:0;word-break:break-word}.task-item.completed .task-item-title{text-decoration:line-through;color:#9ca3af}.task-item-priority{font-size:.75rem;font-weight:600;color:#fff;padding:.25rem .5rem;border-radius:.25rem;text-transform:uppercase;letter-spacing:.025em}.task-item-description{font-size:.875rem;color:#6b7280;margin:.5rem 0;line-height:1.5;word-break:break-word}.task-item.completed .task-item-description{text-decoration:line-through;color:#9ca3af}.task-item.compact .task-item-description{display:none}.task-item-footer{display:flex;align-items:center;gap:.75rem;margin-top:.5rem}.task-item-date{font-size:.875rem;color:#6b7280}.task-item-date.overdue{color:#ef4444;font-weight:600}.task-item.compact .task-item-footer{margin-top:.25rem}.task-item.compact .task-item-date{font-size:.75rem}@media (max-width: 640px){.task-item{padding:.75rem}.task-item-title{font-size:.9375rem}.task-item-description{font-size:.8125rem}}.search-box{margin-bottom:1rem}.search-input-wrapper{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:.75rem;font-size:1rem;pointer-events:none}.search-input{width:100%;padding:.75rem 2.5rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:.875rem;font-family:inherit;transition:all .2s}.search-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.search-clear{position:absolute;right:.75rem;background:none;border:none;color:#6b7280;cursor:pointer;font-size:1.25rem;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:.25rem;transition:all .2s}.search-clear:hover{background-color:#f3f4f6;color:#1f2937}.filter-bar{background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem;margin-bottom:1rem;display:flex;flex-direction:column;gap:1rem}.filter-group{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.filter-label{font-size:.875rem;font-weight:500;color:#374151}.filter-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.filter-btn{padding:.375rem .75rem;border:1px solid #d1d5db;background-color:#fff;color:#4b5563;border-radius:.375rem;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s}.filter-btn:hover{background-color:#f3f4f6;border-color:#9ca3af}.filter-btn.active{background-color:#3b82f6;color:#fff;border-color:#3b82f6}.filter-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem;color:#374151;-webkit-user-select:none;user-select:none}.filter-checkbox input[type=checkbox]{width:1rem;height:1rem;cursor:pointer;accent-color:#3b82f6}@media (max-width: 640px){.filter-bar{padding:.75rem}.filter-group{flex-direction:column;align-items:flex-start;gap:.5rem}.filter-buttons{width:100%}.filter-btn{flex:1}}.todo-list-view{max-width:800px;margin:0 auto}.todo-list-header{margin-bottom:1.5rem}.todo-list-header h2{font-size:1.5rem;font-weight:700;color:#1f2937;margin:0 0 .25rem}.task-count{font-size:.875rem;color:#6b7280;margin:0}.task-list{margin-top:1.5rem}.loading-state,.error-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center}.spinner{width:3rem;height:3rem;border:4px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-state p{margin-top:1rem;color:#6b7280;font-size:.875rem}.error-icon{font-size:3rem;margin:0}.error-message{color:#ef4444;font-size:1rem;margin:.5rem 0 0}.empty-icon{font-size:4rem;margin:0}.empty-message{color:#6b7280;font-size:1rem;margin:1rem 0 0}@media (max-width: 640px){.todo-list-view{max-width:100%}.todo-list-header h2{font-size:1.25rem}}.day-cell{border:1px solid #e5e7eb;background-color:#fff;padding:.5rem;min-height:120px;display:flex;flex-direction:column;transition:all .2s}.day-cell:hover{background-color:#f9fafb}.day-cell.other-month{background-color:#f9fafb;opacity:.6}.day-cell-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.day-number{font-weight:600;color:#1f2937;font-size:.875rem}.day-cell.other-month .day-number{color:#9ca3af}.task-count-badge{background-color:#3b82f6;color:#fff;font-size:.75rem;font-weight:600;padding:.125rem .375rem;border-radius:9999px;min-width:1.25rem;text-align:center}.day-cell-tasks{display:flex;flex-direction:column;gap:.25rem;overflow-y:auto;flex:1}@media (max-width: 768px){.day-cell{min-height:80px;padding:.375rem}.day-number{font-size:.75rem}.task-count-badge{font-size:.625rem;padding:.125rem .25rem}}.week-grid{background-color:#fff;border-radius:.5rem;overflow:hidden;border:1px solid #e5e7eb}.week-grid-header{display:grid;grid-template-columns:repeat(7,1fr);background-color:#f9fafb;border-bottom:2px solid #e5e7eb}.week-grid-day-name{padding:.75rem;text-align:center;font-weight:600;color:#374151;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;gap:.25rem}.week-grid-day-name:last-child{border-right:none}.day-name-full{font-size:.875rem}.day-name-short{display:none;font-size:.875rem}.day-date{font-size:.75rem;color:#6b7280;font-weight:500}.week-grid-body{display:grid;grid-template-columns:repeat(7,1fr)}.week-grid-body>*{border-right:1px solid #e5e7eb}.week-grid-body>*:last-child{border-right:none}@media (max-width: 1024px){.day-name-full{display:none}.day-name-short{display:block}}@media (max-width: 768px){.week-grid-header,.week-grid-body{grid-template-columns:repeat(7,1fr)}.week-grid-day-name{padding:.5rem .25rem}.day-name-full,.day-name-short{font-size:.75rem}.day-date{font-size:.625rem}}.week-view{max-width:1400px;margin:0 auto}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.calendar-title{font-size:1.5rem;font-weight:700;color:#1f2937;margin:0}.calendar-controls{display:flex;gap:.5rem}.nav-btn,.today-btn{padding:.5rem 1rem;border:1px solid #d1d5db;background-color:#fff;color:#4b5563;border-radius:.375rem;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s}.nav-btn:hover,.today-btn:hover{background-color:#f3f4f6;border-color:#9ca3af}.today-btn{background-color:#3b82f6;color:#fff;border-color:#3b82f6}.today-btn:hover{background-color:#2563eb;border-color:#2563eb}@media (max-width: 640px){.calendar-header{flex-direction:column;align-items:flex-start}.calendar-title{font-size:1.25rem}.calendar-controls{width:100%;justify-content:space-between}.nav-btn,.today-btn{flex:1;padding:.625rem .75rem}}.month-grid{background-color:#fff;border-radius:.5rem;overflow:hidden;border:1px solid #e5e7eb}.month-grid-header{display:grid;grid-template-columns:repeat(7,1fr);background-color:#f9fafb;border-bottom:2px solid #e5e7eb}.month-grid-day-name{padding:.75rem;text-align:center;font-weight:600;color:#374151;font-size:.875rem;border-right:1px solid #e5e7eb}.month-grid-day-name:last-child{border-right:none}.month-grid-body{display:flex;flex-direction:column}.month-grid-week{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid #e5e7eb}.month-grid-week:last-child{border-bottom:none}.month-grid-week>*{border-right:1px solid #e5e7eb}.month-grid-week>*:last-child{border-right:none}@media (max-width: 768px){.month-grid-day-name{padding:.5rem .25rem;font-size:.75rem}}.month-view{max-width:1400px;margin:0 auto}.task-detail-modal{max-width:600px}.modal-body{padding:1.5rem}.detail-section{margin-bottom:1.5rem}.detail-section:last-child{margin-bottom:0}.detail-header{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.5rem}.detail-title{font-size:1.5rem;font-weight:700;color:#1f2937;margin:0;flex:1;word-break:break-word}.detail-title.completed{text-decoration:line-through;color:#9ca3af}.detail-priority{font-size:.75rem;font-weight:600;color:#fff;padding:.375rem .75rem;border-radius:.375rem;text-transform:uppercase;letter-spacing:.025em;white-space:nowrap}.detail-label{display:block;font-size:.875rem;font-weight:600;color:#6b7280;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.detail-text{font-size:1rem;color:#1f2937;margin:0;line-height:1.6;word-break:break-word}.detail-text-small{font-size:.875rem;color:#6b7280;margin:0}.detail-timestamps{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.btn-delete,.btn-edit{padding:.625rem 1.25rem;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;border:1px solid}.btn-delete{background-color:#fff;color:#ef4444;border-color:#ef4444}.btn-delete:hover{background-color:#fef2f2}.btn-edit{background-color:#3b82f6;color:#fff;border-color:#3b82f6}.btn-edit:hover{background-color:#2563eb}.delete-confirm{flex-direction:column;gap:1rem;padding:1.5rem;background-color:#fef2f2;border-top:1px solid #fecaca}.delete-confirm-text{margin:0;color:#991b1b;font-weight:500}.delete-confirm-buttons{display:flex;gap:.75rem;justify-content:flex-end}.btn-delete-confirm{padding:.625rem 1.25rem;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;background-color:#ef4444;color:#fff;border:1px solid #ef4444}.btn-delete-confirm:hover:not(:disabled){background-color:#dc2626}.btn-delete-confirm:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 640px){.detail-title{font-size:1.25rem}.detail-timestamps{grid-template-columns:1fr}}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background-color:#fff;padding:1.5rem 2rem;border-bottom:2px solid #e5e7eb;box-shadow:0 1px 3px #0000001a}.app-header h1{font-size:1.875rem;margin:0;color:#3b82f6;font-weight:700}.app-nav{background-color:#fff;padding:1rem 2rem;border-bottom:1px solid #e5e7eb;display:flex;gap:.5rem;flex-wrap:wrap}.app-nav button{padding:.5rem 1rem;border:1px solid #d1d5db;background-color:#fff;color:#4b5563;border-radius:.375rem;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s}.app-nav button:hover{background-color:#f3f4f6;border-color:#9ca3af}.app-nav button.active{background-color:#3b82f6;color:#fff;border-color:#3b82f6}.app-nav button.add-task-btn{margin-left:auto;background-color:#3b82f6;color:#fff;border-color:#3b82f6}.app-nav button.add-task-btn:hover{background-color:#2563eb;border-color:#2563eb}.app-content{flex:1;padding:2rem;max-width:1400px;width:100%;margin:0 auto}@media (max-width: 640px){.app-header{padding:1rem}.app-header h1{font-size:1.5rem}.app-nav{padding:.75rem 1rem}.app-nav button.add-task-btn{margin-left:0;width:100%}.app-content{padding:1rem}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f3f4f6;color:#1f2937}#root{min-height:100vh}
