:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #1a1a2e;--bg-secondary: #16213e;--bg-tertiary: #0f3460;--accent: #7c3aed;--accent-hover: #6d28d9;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--border: #334155;--priority-high: #ef4444;--priority-medium: #f97316;--priority-low: #22c55e;--danger: #dc2626;--danger-hover: #b91c1c;--success: #10b981}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);min-height:100vh;color:var(--text-primary);line-height:1.6}#root{min-height:100vh;display:flex;justify-content:center;padding:2rem 1rem}.todo-app{width:100%;max-width:640px}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;color:var(--text-secondary);gap:1rem}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.login-box{width:100%;max-width:360px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;padding:2.5rem 2rem;text-align:center}.login-icon{width:80px;height:80px;margin:0 auto 1.5rem;background:var(--bg-tertiary);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--accent)}.login-box h1{font-size:1.5rem;font-weight:700;margin-bottom:.5rem;color:var(--text-primary)}.login-box p{color:var(--text-muted);font-size:.9rem;margin-bottom:1.5rem}.login-input{width:100%;padding:.875rem 1rem;background:var(--bg-primary);border:1px solid var(--border);border-radius:10px;color:var(--text-primary);font-size:1rem;text-align:center;margin-bottom:1rem}.login-input:focus{outline:none;border-color:var(--accent)}.login-error{display:flex;align-items:center;justify-content:center;gap:.5rem;color:var(--danger);font-size:.875rem;margin-bottom:1rem}.login-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem;background:var(--accent);border:none;border-radius:10px;color:#fff;font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s}.login-btn:hover:not(:disabled){background:var(--accent-hover)}.login-btn:disabled{opacity:.7;cursor:not-allowed}.sync-btn,.logout-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:10px;color:var(--text-secondary);cursor:pointer;transition:all .2s}.sync-btn:hover,.logout-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.logout-btn:hover{background:var(--danger);border-color:var(--danger)}.sync-btn:disabled{opacity:.7;cursor:not-allowed}.app-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.app-header h1{display:flex;align-items:center;gap:.75rem;font-size:1.75rem;font-weight:700;color:var(--text-primary)}.app-header h1 svg{color:var(--accent)}.header-actions{display:flex;align-items:center;gap:.75rem}.theme-switcher{position:relative}.theme-toggle{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:10px;color:var(--text-secondary);cursor:pointer;transition:all .2s}.theme-toggle:hover{background:var(--accent);color:#fff;border-color:var(--accent);transform:rotate(15deg)}.theme-backdrop{position:fixed;inset:0;z-index:99}.theme-panel{position:absolute;top:calc(100% + .5rem);right:0;width:320px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;padding:1.25rem;z-index:100;box-shadow:0 20px 60px #0006;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.theme-panel h3{font-size:.875rem;font-weight:600;color:var(--text-secondary);margin-bottom:1rem;text-transform:uppercase;letter-spacing:.05em}.theme-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.theme-option{position:relative;display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem;background:var(--bg-primary);border:2px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s}.theme-option:hover{border-color:var(--accent);transform:translateY(-2px)}.theme-option.active{border-color:var(--accent);background:#7c3aed1a}.theme-preview{width:100%;height:48px;background:var(--preview-bg);border-radius:8px;padding:.5rem;display:flex;flex-direction:column;gap:.25rem}.preview-header{height:8px;width:60%;background:var(--preview-accent);border-radius:4px}.preview-item{height:6px;width:100%;background:var(--preview-text);border-radius:3px;opacity:.3}.theme-name{font-size:.75rem;font-weight:500;color:var(--text-secondary)}.theme-option.active .theme-name{color:var(--accent)}.theme-check{position:absolute;top:.5rem;right:.5rem;color:var(--accent)}.category-manager{position:relative}.category-toggle{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text-secondary);cursor:pointer;font-size:.875rem;transition:all .2s}.category-toggle:hover{background:var(--accent);color:var(--text-primary);border-color:var(--accent)}.category-panel{position:absolute;top:calc(100% + .5rem);right:0;width:280px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:1rem;z-index:100;box-shadow:0 10px 40px #0000004d}.category-form{display:flex;gap:.5rem;margin-bottom:1rem}.category-input{flex:1;padding:.5rem .75rem;background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.875rem}.category-input:focus{outline:none;border-color:var(--accent)}.category-add-btn{padding:.5rem;background:var(--accent);border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.category-add-btn:hover{background:var(--accent-hover)}.category-list{display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto}.category-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--bg-primary);border-radius:6px;font-size:.875rem;color:var(--text-secondary)}.category-item span{flex:1}.category-item svg{color:var(--accent)}.category-delete{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem;border-radius:4px;display:flex;transition:all .2s}.category-delete:hover{color:var(--danger);background:#dc26261a}.no-categories{color:var(--text-muted);font-size:.875rem;text-align:center;padding:1rem}.todo-form{background:var(--bg-secondary);border-radius:12px;padding:1.25rem;margin-bottom:1.5rem;border:1px solid var(--border)}.form-main{display:flex;gap:.75rem;margin-bottom:1rem}.todo-input{flex:1;padding:.75rem 1rem;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:1rem;transition:border-color .2s}.todo-input:focus{outline:none;border-color:var(--accent)}.todo-input::placeholder{color:var(--text-muted)}.add-btn{padding:.75rem 1rem;background:var(--accent);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.add-btn:hover{background:var(--accent-hover)}.form-options{display:flex;gap:.75rem;flex-wrap:wrap}.priority-select,.category-select,.category-filter-select{padding:.5rem .75rem;background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);font-size:.875rem;cursor:pointer;min-width:100px}.priority-select:focus,.category-select:focus,.category-filter-select:focus{outline:none;border-color:var(--accent)}.date-input-wrapper{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;color:var(--text-secondary)}.date-input{background:transparent;border:none;color:var(--text-secondary);font-size:.875rem;cursor:pointer}.date-input:focus{outline:none}.date-input::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}.filter-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.filter-group{display:flex;align-items:center;gap:.5rem;background:var(--bg-secondary);padding:.5rem;border-radius:10px;border:1px solid var(--border)}.filter-group>svg{color:var(--text-muted);margin-left:.5rem}.filter-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;background:transparent;border:none;border-radius:6px;color:var(--text-secondary);font-size:.875rem;cursor:pointer;transition:all .2s}.filter-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.filter-btn.active{background:var(--accent);color:#fff}.category-filter-select{background:var(--bg-secondary)}.todo-list{display:flex;flex-direction:column;gap:.75rem}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.empty-state p{font-size:1.125rem;margin-bottom:.5rem;color:var(--text-secondary)}.empty-state span{font-size:.875rem}.todo-item{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;transition:all .2s}.todo-item:hover{border-color:var(--accent)}.todo-item.editing{padding:1rem}.todo-item.priority-high{border-left:3px solid var(--priority-high)}.todo-item.priority-medium{border-left:3px solid var(--priority-medium)}.todo-item.priority-low{border-left:3px solid var(--priority-low)}.todo-item.completed{opacity:.6}.todo-item.completed .todo-title{text-decoration:line-through;color:var(--text-muted)}.drag-handle{background:none;border:none;color:var(--text-muted);cursor:grab;padding:.25rem;display:flex;touch-action:none}.drag-handle:active{cursor:grabbing}.checkbox{width:22px;height:22px;border:2px solid var(--border);border-radius:6px;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.checkbox:hover{border-color:var(--accent)}.checkbox.checked{background:var(--success);border-color:var(--success);color:#fff}.todo-content{flex:1;min-width:0}.todo-title{display:block;font-size:1rem;color:var(--text-primary);word-break:break-word}.todo-meta{display:flex;gap:.75rem;margin-top:.375rem;flex-wrap:wrap}.todo-category,.todo-date{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--text-muted)}.todo-category svg{color:var(--accent)}.todo-date svg{color:var(--text-muted)}.todo-date.overdue{color:var(--priority-high)}.todo-date.overdue svg{color:var(--priority-high)}.todo-actions{display:flex;gap:.5rem;opacity:0;transition:opacity .2s}.todo-item:hover .todo-actions{opacity:1}.action-btn{background:none;border:none;padding:.5rem;border-radius:6px;cursor:pointer;display:flex;transition:all .2s}.action-btn.edit{color:var(--text-muted)}.action-btn.edit:hover{color:var(--accent);background:#7c3aed1a}.action-btn.delete{color:var(--text-muted)}.action-btn.delete:hover{color:var(--danger);background:#dc26261a}.edit-form{width:100%;display:flex;flex-direction:column;gap:.75rem}.edit-input{width:100%;padding:.75rem;background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:1rem}.edit-input:focus{outline:none;border-color:var(--accent)}.edit-options{display:flex;gap:.5rem;flex-wrap:wrap}.edit-options .priority-select,.edit-options .category-select,.edit-options .date-input{flex:1;min-width:100px}.edit-options .date-input{padding:.5rem .75rem;background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);font-size:.875rem}.edit-actions{display:flex;gap:.5rem;justify-content:flex-end}.save-btn,.cancel-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem 1rem;border:none;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s}.save-btn{background:var(--accent);color:#fff}.save-btn:hover{background:var(--accent-hover)}.cancel-btn{background:var(--bg-tertiary);color:var(--text-secondary)}.cancel-btn:hover{background:var(--border);color:var(--text-primary)}.tab-switcher{display:flex;gap:.5rem;margin-bottom:1.5rem;background:var(--bg-secondary);padding:.5rem;border-radius:12px;border:1px solid var(--border)}.tab-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;background:transparent;border:none;border-radius:8px;color:var(--text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.tab-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.tab-btn.active{background:var(--accent);color:#fff}.tab-count{background:#fff3;padding:.125rem .5rem;border-radius:10px;font-size:.75rem}.tab-btn:not(.active) .tab-count{background:var(--bg-primary)}.notes-panel{display:flex;flex-direction:column;gap:1.5rem}.notes-header{display:flex;gap:1rem;align-items:center}.notes-search{flex:1;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;color:var(--text-muted)}.search-input{flex:1;background:transparent;border:none;color:var(--text-primary);font-size:.9rem}.search-input:focus{outline:none}.search-input::placeholder{color:var(--text-muted)}.add-note-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:var(--accent);border:none;border-radius:10px;color:#fff;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.add-note-btn:hover{background:var(--accent-hover);transform:translateY(-1px)}.notes-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:var(--text-muted);text-align:center}.notes-empty svg{margin-bottom:1rem;opacity:.5}.notes-empty p{font-size:1.1rem;color:var(--text-secondary);margin-bottom:.5rem}.notes-empty span{font-size:.875rem}.notes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.note-card{position:relative;background:var(--note-bg);border:2px solid var(--note-border);border-radius:12px;padding:1rem;min-height:140px;display:flex;flex-direction:column;transition:all .2s;cursor:pointer}.note-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000026}.note-card.pinned{border-color:var(--accent)}.pin-indicator{position:absolute;top:-8px;right:12px;background:var(--accent);color:#fff;padding:.25rem;border-radius:50%;display:flex;transform:rotate(45deg)}.note-actions{position:absolute;top:.5rem;right:.5rem;display:flex;gap:.25rem;opacity:0;transition:opacity .2s}.note-actions.visible{opacity:1}.note-action-btn{padding:.375rem;background:#fffc;border:none;border-radius:6px;color:var(--note-text);cursor:pointer;display:flex;transition:all .2s}.note-action-btn:hover{background:#fff}.note-action-btn.delete:hover{background:var(--danger);color:#fff}.note-title{font-size:.95rem;font-weight:600;color:var(--note-text);margin-bottom:.5rem;line-height:1.3}.note-content{flex:1;font-size:.85rem;color:var(--note-text);opacity:.85;line-height:1.5;overflow:hidden;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;white-space:pre-wrap;word-break:break-word}.note-date{font-size:.7rem;color:var(--note-text);opacity:.6;margin-top:.75rem}.note-editor-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem;animation:fadeIn .2s ease-out}.note-editor{width:100%;max-width:500px;background:var(--editor-bg);border:2px solid var(--editor-border);border-radius:16px;padding:1.5rem;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.note-editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.note-editor-header h2{font-size:1.1rem;font-weight:600;color:var(--editor-text)}.close-btn{background:none;border:none;color:var(--editor-text);opacity:.6;cursor:pointer;padding:.25rem;display:flex;transition:opacity .2s}.close-btn:hover{opacity:1}.note-title-input{width:100%;padding:.75rem;background:#ffffff80;border:1px solid var(--editor-border);border-radius:8px;color:var(--editor-text);font-size:1rem;font-weight:500;margin-bottom:.75rem}.note-title-input:focus{outline:none;background:#ffffffb3}.note-title-input::placeholder{color:var(--editor-text);opacity:.5}.note-content-input{width:100%;padding:.75rem;background:#ffffff80;border:1px solid var(--editor-border);border-radius:8px;color:var(--editor-text);font-size:.9rem;line-height:1.6;resize:vertical;min-height:120px;font-family:inherit}.note-content-input:focus{outline:none;background:#ffffffb3}.note-content-input::placeholder{color:var(--editor-text);opacity:.5}.note-editor-footer{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;flex-wrap:wrap;gap:1rem}.color-picker{display:flex;gap:.5rem}.color-option{width:28px;height:28px;border-radius:50%;border:2px solid;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s}.color-option:hover{transform:scale(1.15)}.color-option.selected{transform:scale(1.15);box-shadow:0 2px 8px #0003}.note-editor-actions{display:flex;gap:.5rem}.save-note-btn{padding:.6rem 1.25rem;background:var(--accent);border:none;border-radius:8px;color:#fff;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.save-note-btn:hover:not(:disabled){background:var(--accent-hover)}.save-note-btn:disabled{opacity:.5;cursor:not-allowed}.note-editor-hint{width:100%;text-align:center;font-size:.75rem;color:var(--editor-text);opacity:.5;margin-top:1rem}@media(max-width:640px){.app-header{flex-direction:column;align-items:flex-start}.header-actions{width:100%;justify-content:flex-end}.filter-bar{flex-direction:column;align-items:stretch}.filter-group{justify-content:center;flex-wrap:wrap}.category-filter,.category-filter-select{width:100%}.form-options{flex-direction:column}.priority-select,.category-select,.date-input-wrapper{width:100%}.todo-actions{opacity:1}.category-panel,.theme-panel{position:fixed;inset:auto 0 0;width:100%;border-radius:16px 16px 0 0;max-height:70vh;overflow-y:auto}.theme-grid{grid-template-columns:repeat(2,1fr)}.tab-btn span:not(.tab-count){display:none}.notes-header{flex-direction:column}.notes-search{width:100%}.add-note-btn{width:100%;justify-content:center}.notes-grid{grid-template-columns:repeat(2,1fr)}.note-actions{opacity:1}.note-editor{max-height:90vh;overflow-y:auto}}
