:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.user-menu{position:relative;display:flex;align-items:center}.user-menu-trigger{display:flex;align-items:center;gap:8px;padding:8px 12px;background:transparent;border:1px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s ease;color:var(--text-color)}.user-menu-trigger:hover{background-color:var(--bg-secondary);border-color:var(--primary-color)}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:14px}.user-name{font-weight:500;font-size:.9rem}.dropdown-arrow{transition:transform .2s ease}.dropdown-arrow.open{transform:rotate(180deg)}.user-menu-overlay{position:fixed;inset:0;background:transparent;z-index:998}.user-menu-dropdown{position:absolute;top:calc(100% + 4px);right:0;background:var(--bg-color);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:240px;z-index:999;overflow:hidden}.user-info{padding:16px}.user-details{display:flex;flex-direction:column;gap:4px}.user-username{font-weight:600;color:var(--text-color);font-size:.9rem}.user-email{color:var(--text-secondary);font-size:.8rem}.user-menu-divider{height:1px;background-color:var(--border-color)}.user-menu-item{width:100%;display:flex;align-items:center;gap:12px;padding:12px 16px;background:transparent;border:none;color:var(--text-color);cursor:pointer;font-size:.9rem;transition:background-color .2s ease}.user-menu-item:hover{background-color:var(--bg-secondary)}.user-menu-item svg{width:16px;height:16px;opacity:.7}@media (max-width: 640px){.user-name{display:none}.user-menu-dropdown{right:-8px;min-width:200px}}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);padding:20px}.auth-card{background:var(--bg-color);border-radius:12px;box-shadow:0 10px 25px #0000001a;padding:40px;width:100%;max-width:420px;border:1px solid var(--border-color)}.auth-title{color:var(--text-color);text-align:center;margin-bottom:30px;font-size:1.8rem;font-weight:600}.auth-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{color:var(--text-color);font-weight:500;font-size:.9rem}.form-input{padding:12px 16px;border:2px solid var(--border-color);border-radius:8px;font-size:1rem;background-color:var(--bg-color);color:var(--text-color);transition:border-color .3s ease,box-shadow .3s ease}.form-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #4a90e21a}.form-input.error{border-color:var(--danger-color)}.form-input:disabled{opacity:.6;cursor:not-allowed}.field-error{color:var(--danger-color);font-size:.85rem;font-weight:500}.auth-button{padding:14px 24px;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;border:none;text-transform:none}.auth-button.primary{background-color:var(--primary-color);color:#fff}.auth-button.primary:hover:not(:disabled){background-color:var(--primary-dark);transform:translateY(-1px);box-shadow:0 4px 12px #4a90e24d}.auth-button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.auth-switch{text-align:center;margin-top:24px;padding-top:20px;border-top:1px solid var(--border-color)}.auth-switch p{color:var(--text-secondary);margin:0}.auth-link{background:none;border:none;color:var(--primary-color);cursor:pointer;font-weight:600;text-decoration:underline;font-size:inherit}.auth-link:hover:not(:disabled){color:var(--primary-dark)}.auth-link:disabled{opacity:.6;cursor:not-allowed}.error-message{background-color:var(--danger-light);color:var(--danger-color);padding:12px 16px;border-radius:8px;margin-bottom:20px;font-weight:500;border-left:4px solid var(--danger-color)}.success-message{background-color:var(--success-light);color:var(--success-color);padding:12px 16px;border-radius:8px;margin-bottom:20px;font-weight:500;border-left:4px solid var(--success-color)}@media (max-width: 480px){.auth-container{padding:10px}.auth-card{padding:30px 20px}.auth-title{font-size:1.5rem}}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--bg-color: #ffffff;--text-primary: #333333;--text-secondary: #666666;--text-color: #333333;--border: #e0e0e0;--border-color: #e0e0e0;--shadow: 0 2px 4px rgba(0, 0, 0, .1);--red: #dc3545;--yellow: #ffc107;--grey: #6c757d;--blue: #007bff;--primary-color: #4a90e2;--primary-dark: #357abd;--secondary-color: #6c5ce7;--danger-color: #dc3545;--danger-light: #f8d7da;--success-color: #28a745;--success-light: #d4edda}[data-theme=dark]{--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--bg-color: #1a1a1a;--text-primary: #ffffff;--text-secondary: #cccccc;--text-color: #ffffff;--border: #404040;--border-color: #404040;--shadow: 0 2px 4px rgba(0, 0, 0, .3);--red: #ff4757;--yellow: #ffa502;--grey: #8c92ac;--blue: #3742fa;--primary-color: #5aa3f0;--primary-dark: #4a90e2;--secondary-color: #7d6fee;--danger-color: #ff4757;--danger-light: rgba(255, 71, 87, .1);--success-color: #2ed573;--success-light: rgba(46, 213, 115, .1)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:1rem}.spinner{width:40px;height:40px;border:4px solid var(--border);border-top:4px solid var(--blue);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-message{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;padding:2rem;text-align:center;gap:1rem}.error-message h3{color:var(--red);font-size:1.5rem}.error-message p{color:var(--text-secondary);max-width:400px;line-height:1.5}.retry-button{background-color:var(--blue);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.5rem;cursor:pointer;font-size:1rem;transition:background-color .2s ease}.retry-button:hover{background-color:#0056b3}.App{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background-color:var(--bg-secondary);border-bottom:1px solid var(--border);box-shadow:var(--shadow)}.app-header h1{font-size:1.5rem;font-weight:600}.header-actions{display:flex;align-items:center;gap:12px}.theme-toggle{background:none;border:1px solid var(--border);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.2rem;transition:all .3s ease}.theme-toggle:hover{background-color:var(--bg-primary);transform:scale(1.1)}.app-main{flex:1;display:flex;flex-direction:column;padding:2rem;max-width:1200px;margin:0 auto;width:100%}.category-selector-container{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.category-selector{display:flex;gap:1rem;flex-wrap:wrap}.category-item{display:flex;align-items:stretch;border-radius:.5rem;overflow:hidden}.remove-category-button{background-color:var(--red);border:none;color:#fff;width:32px;height:auto;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;font-size:1.2rem;font-weight:700;border-left:1px solid rgba(255,255,255,.2)}.remove-category-button:hover{background-color:#c82333}.category-button{padding:.75rem 1.5rem;background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:.5rem 0 0 .5rem;cursor:pointer;transition:all .3s ease;font-weight:500;flex:1}.category-item .category-button{border-radius:.5rem 0 0 .5rem;border-right:none}.category-item:has(.remove-category-button) .category-button{border-right:none}.category-item:only-child .category-button{border-radius:.5rem;border-right:1px solid var(--border)}.category-button:hover{background-color:var(--blue);color:#fff}.category-button.active{background-color:var(--blue);color:#fff;border-color:var(--blue)}.add-category-button{padding:.75rem 1rem;background-color:var(--bg-primary);border:1px dashed var(--border);border-radius:.5rem;cursor:pointer;transition:all .3s ease;font-weight:500;color:var(--text-secondary);font-size:.875rem}.add-category-button:hover{background-color:var(--blue);color:#fff;border-color:var(--blue);border-style:solid}.add-category-modal{max-width:400px}.delete-category-modal{max-width:500px}.delete-category-warning{margin-bottom:1.5rem}.delete-category-warning p{margin-bottom:1rem;color:var(--text-primary)}.warning-text{padding:1rem;background-color:#dc35451a;border-radius:.5rem;border-left:4px solid var(--red)}[data-theme=dark] .warning-text{background-color:#ff475726}.info-text{padding:1rem;background-color:#28a7451a;border-radius:.5rem;border-left:4px solid #28a745;color:var(--text-primary)}[data-theme=dark] .info-text{background-color:#48bb7826}.delete-button{background-color:var(--red);color:#fff;padding:.75rem 1.5rem;border:none;border-radius:.25rem;cursor:pointer;font-weight:500;transition:all .3s ease}.delete-button:hover{background-color:#c82333}.todo-list{flex:1}.todo-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.todo-list-header h2{font-size:1.25rem;font-weight:600}.add-todo-button{background-color:var(--blue);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.5rem;cursor:pointer;font-weight:500;transition:all .3s ease}.add-todo-button:hover{background-color:#0056b3;transform:translateY(-1px)}.todos-container{display:flex;flex-direction:column;gap:.75rem}.todo-item{background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:.5rem;transition:all .3s ease}.todo-item:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.todo-item.completed{background-color:var(--grey);opacity:.7}.todo-item.red-priority{background-color:#dc35451a;border-left:4px solid var(--red)}[data-theme=dark] .todo-item.red-priority{background-color:#ff475726}.todo-item.yellow-priority{background-color:#ffc1071a;border-left:4px solid var(--yellow)}[data-theme=dark] .todo-item.yellow-priority{background-color:#ffa50226}.todo-item.grey-priority{background-color:var(--bg-secondary);border-left:4px solid var(--grey)}.todo-item-content{display:flex;align-items:center;padding:1rem;gap:1rem}.todo-checkbox{width:20px;height:20px;cursor:pointer}.todo-completed-indicator{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background-color:var(--grey);border-radius:3px;color:#fff;font-weight:700;font-size:.75rem}.todo-info{flex:1;text-align:left}.todo-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.todo-title{font-weight:500;font-size:1rem}.todo-title.crossed-out{text-decoration:line-through}.todo-ranking{font-size:.875rem;font-weight:600;color:var(--text-secondary)}.todo-date{font-size:.75rem;color:var(--text-secondary)}.edit-button{background-color:transparent;border:1px solid var(--border);color:var(--text-primary);padding:.5rem 1rem;border-radius:.25rem;cursor:pointer;font-size:.875rem;transition:all .3s ease}.edit-button:hover{background-color:var(--blue);color:#fff;border-color:var(--blue)}.drag-handle{cursor:grab;color:var(--text-secondary);font-weight:700;font-size:1.2rem;padding:.5rem;-webkit-user-select:none;user-select:none}.drag-handle:active{cursor:grabbing}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:var(--bg-primary);border-radius:.5rem;padding:2rem;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.modal-content h2{margin-bottom:1.5rem;font-size:1.25rem;font-weight:600}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-primary)}.form-group input,.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--border);border-radius:.25rem;background-color:var(--bg-primary);color:var(--text-primary);font-size:1rem}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--blue)}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.cancel-button,.submit-button,.confirm-button{padding:.75rem 1.5rem;border:none;border-radius:.25rem;cursor:pointer;font-weight:500;transition:all .3s ease}.cancel-button{background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border)}.cancel-button:hover{background-color:var(--grey);color:#fff}.submit-button,.confirm-button{background-color:var(--blue);color:#fff}.submit-button:hover,.confirm-button:hover{background-color:#0056b3}.confirmation-modal{text-align:center}.confirmation-modal p{margin-bottom:1.5rem;color:var(--text-secondary)}.ranking-conflict-modal{max-width:600px}.conflict-info{margin-bottom:2rem}.conflict-info p{margin-bottom:1rem;color:var(--text-primary)}.existing-item,.new-item{margin:1.5rem 0;padding:1rem;background-color:var(--bg-secondary);border-radius:.5rem;border:1px solid var(--border)}.existing-item h3,.new-item h3{margin-bottom:.75rem;font-size:1rem;font-weight:600;color:var(--text-primary)}.item-preview{padding:.75rem;background-color:var(--bg-primary);border-radius:.25rem;border:1px solid var(--border)}.item-title{font-weight:600;font-size:1rem;margin-bottom:.5rem;color:var(--text-primary)}.item-description{font-size:.875rem;color:var(--text-secondary);margin-bottom:.5rem}.item-date{font-size:.75rem;color:var(--text-secondary)}.cascade-info{margin-top:1.5rem;padding:1rem;background-color:#ffc1071a;border-radius:.5rem;border-left:4px solid var(--yellow)}[data-theme=dark] .cascade-info{background-color:#ffa50226}.cascade-info h3{margin-bottom:.75rem;font-size:1rem;font-weight:600}.cascade-info ul{list-style:none;padding:0;margin:0}.cascade-info li{padding:.5rem 0;font-size:.875rem;color:var(--text-secondary)}.cascade-note{margin-top:1rem;padding:.75rem;background-color:var(--bg-primary);border-radius:.25rem;font-size:.8rem;color:var(--text-secondary);font-style:italic;border:1px solid var(--border)}.conflict-actions{margin:1.5rem 0;padding:1rem;background-color:#dc35451a;border-radius:.5rem;border-left:4px solid var(--red)}[data-theme=dark] .conflict-actions{background-color:#ff475726}.conflict-actions p{margin-bottom:.5rem;color:var(--text-primary)}.conflict-actions p:first-child{font-weight:600}.empty-state{text-align:center;padding:3rem;color:var(--text-secondary);font-style:italic}.completed-separator{margin:2rem 0 1rem;padding:1rem 0;border-top:1px solid var(--border);text-align:center}.completed-separator span{background-color:var(--bg-primary);padding:0 1rem;color:var(--text-secondary);font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px}@media (max-width: 768px){.app-header,.app-main{padding:1rem}.category-selector-container,.category-selector{justify-content:center}.todo-list-header{flex-direction:column;gap:1rem;align-items:stretch}.todo-item-content{flex-wrap:wrap;gap:.5rem}.drag-handle{order:-1}.modal-content{padding:1rem;margin:1rem}.form-actions{flex-direction:column}}.validation-page{max-width:500px;margin:2rem auto;padding:2rem;background:var(--bg-primary);border-radius:8px;box-shadow:var(--shadow);text-align:center}.validation-page h2{color:var(--text-primary);margin-bottom:1.5rem}.validation-page .message{padding:1rem;border-radius:6px;margin-bottom:1.5rem;font-weight:500}.validation-page .message.success{background-color:var(--success-light);color:var(--success-color);border:1px solid var(--success-color)}.validation-page .message.error{background-color:var(--danger-light);color:var(--danger-color);border:1px solid var(--danger-color)}.redirect-message{color:var(--text-secondary);font-style:italic;margin-bottom:1rem}.validation-page .actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.validation-pending-page{max-width:600px;margin:2rem auto;padding:2rem;background:var(--bg-primary);border-radius:8px;box-shadow:var(--shadow);text-align:center}.validation-pending-page .icon{font-size:4rem;margin-bottom:1rem}.validation-pending-page h2{color:var(--text-primary);margin-bottom:1rem}.main-message{font-size:1.1rem;color:var(--text-primary);margin-bottom:2rem}.instructions{text-align:left;background:var(--bg-secondary);padding:1.5rem;border-radius:6px;margin-bottom:2rem}.instructions h3{color:var(--text-primary);margin-bottom:1rem}.instructions ol{color:var(--text-primary);padding-left:1.5rem}.instructions li{margin-bottom:.5rem}.important-note{background:#ffc1071a;border:1px solid var(--yellow);padding:1rem;border-radius:6px;margin-bottom:2rem;color:var(--text-primary)}.validation-pending-page .actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.login-page{max-width:400px;margin:2rem auto;padding:2rem;background:var(--bg-primary);border-radius:8px;box-shadow:var(--shadow)}.login-page h2{text-align:center;color:var(--text-primary);margin-bottom:2rem}.login-form{display:flex;flex-direction:column;gap:1.5rem}.login-form .form-group{display:flex;flex-direction:column;gap:.5rem}.login-form label{color:var(--text-primary);font-weight:500}.login-form input{padding:.75rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-size:1rem}.login-form input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #4a90e233}.login-links{text-align:center;margin-top:1.5rem}.login-links p{color:var(--text-secondary)}.login-links a{color:var(--primary-color);text-decoration:none}.login-links a:hover{text-decoration:underline}.error-message{background:var(--danger-light);color:var(--danger-color);padding:1rem;border-radius:6px;margin-bottom:1rem;border:1px solid var(--danger-color)}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-block;text-align:center}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:disabled{background:var(--grey);cursor:not-allowed}.btn-secondary{background:transparent;color:var(--primary-color);border:1px solid var(--primary-color)}.btn-secondary:hover{background:var(--primary-color);color:#fff}[data-theme=dark] .important-note{background:#ffa50226}[data-theme=dark] .error-message{background:#dc354533;border-color:#dc3545}[data-theme=dark] .validation-page .message.success{background:#28a74533;border-color:#28a745}[data-theme=dark] .validation-page .message.error{background:#dc354533;border-color:#dc3545}
