@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";:root{--color-accent-yellow:#ecad0a;--color-blue-primary:#209dd7;--color-purple-secondary:#753991;--color-dark-navy:#032147;--color-gray-text:#888;--color-gray-light:#f5f7fa;--color-gray-border:#e2e8f0;--color-white:#fff;--shadow-sm:0 1px 3px #0321470f;--shadow-md:0 4px 16px #03214714;--shadow-lg:0 10px 30px #0321471f;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.25s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--color-dark-navy);-webkit-font-smoothing:antialiased;background-color:#f0f4f8;background-image:radial-gradient(#209dd715 1px,#0000 1px),radial-gradient(#75399110 1px,#f0f4f8 1px);background-position:0 0,16px 16px;background-size:32px 32px;justify-content:center;align-items:flex-start;min-height:100vh;padding:48px 16px;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex}#root{width:100%;max-width:600px}.todo-app-card{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--color-gray-border);position:relative;overflow:hidden}.card-top-accent{background:linear-gradient(90deg, var(--color-blue-primary) 0%, var(--color-accent-yellow) 50%, var(--color-purple-secondary) 100%);height:6px}.browser-tabs-strip{border-bottom:1px solid var(--color-gray-border);z-index:2;background:#eef2f6;padding:8px 16px 0;position:relative}.browser-tabs-scroll{scrollbar-width:thin;align-items:flex-end;gap:6px;display:flex;overflow-x:auto}.browser-tabs-scroll::-webkit-scrollbar{height:4px}.browser-tabs-scroll::-webkit-scrollbar-thumb{background:var(--color-gray-border);border-radius:4px}.browser-tab{border:1px solid #0000;border-bottom:1px solid var(--color-gray-border);color:var(--color-gray-text);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;background:#e2e8f0;border-radius:8px 8px 0 0;align-items:center;gap:8px;max-width:220px;padding:8px 14px;font-size:13px;font-weight:500;display:inline-flex;position:relative}.browser-tab:hover{color:var(--color-dark-navy);background:#edf2f7}.browser-tab.active{background:var(--color-white);color:var(--color-dark-navy);border-color:var(--color-gray-border);border-bottom-color:var(--color-white);margin-bottom:-1px;font-weight:600;box-shadow:0 -2px 6px #0321470a}.browser-tab.active:before{content:"";background:var(--color-blue-primary);border-radius:8px 8px 0 0;height:3px;position:absolute;top:0;left:0;right:0}.browser-tab-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.browser-tab-input{color:var(--color-dark-navy);border:1.5px solid var(--color-blue-primary);background:#fff;border-radius:4px;outline:none;width:120px;padding:2px 6px;font-family:inherit;font-size:13px;font-weight:600}.browser-tab-btn{color:var(--color-gray-text);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:3px;line-height:1;display:inline-flex}.browser-tab-btn:hover{color:var(--color-dark-navy);background:#03214714}.browser-tab-btn.close-btn:hover{color:#dc2626;background:#fee2e2}.browser-tab-new-btn{width:28px;height:28px;color:var(--color-gray-text);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;margin-bottom:4px;font-size:18px;font-weight:500;line-height:1;display:inline-flex}.browser-tab-new-btn:hover{color:var(--color-blue-primary);border-color:var(--color-gray-border);background:#e2e8f0}.app-header{border-bottom:1px solid var(--color-gray-border);padding:32px 32px 24px}.app-header-top{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.app-title-group h1{color:var(--color-dark-navy);letter-spacing:-.02em;margin-bottom:4px;font-size:26px;font-weight:700}.app-subtitle{color:var(--color-gray-text);font-size:14px;font-weight:500}.status-summary{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.status-badge{background-color:var(--color-gray-light);border:1px solid var(--color-gray-border);color:var(--color-dark-navy);white-space:nowrap;transition:all var(--transition-fast);border-radius:20px;align-items:center;gap:6px;padding:5px 12px;font-size:13px;font-weight:600;display:inline-flex}.status-badge-checked{color:#0b72a4;background-color:#eaf6fc;border-color:#b8e1f5}.status-badge-completed{color:#047857;background-color:#ecfdf5;border-color:#a7f3d0}.status-badge-completed.all-done{color:#065f46;background-color:#d1fae5;border-color:#6ee7b7}.status-indicator-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.status-indicator-dot.checked{background-color:var(--color-blue-primary);box-shadow:0 0 0 2px #209dd733}.status-indicator-dot.completed{background-color:#10b981;box-shadow:0 0 0 2px #10b98133}.progress-track{background:#edf2f7;border-radius:999px;width:100%;height:6px;display:flex;overflow:hidden}.progress-fill-completed{height:100%;transition:width var(--transition-normal);background-color:#10b981}.progress-fill-checked{background-color:var(--color-blue-primary);height:100%;transition:width var(--transition-normal)}.todo-form-container{border-bottom:1px solid var(--color-gray-border);background:#fafbfd;padding:24px 32px}.todo-form{gap:10px;display:flex}.todo-input{border:1.5px solid var(--color-gray-border);border-radius:var(--radius-sm);background:var(--color-white);color:var(--color-dark-navy);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;flex:1;padding:12px 16px;font-family:inherit;font-size:15px}.todo-input::placeholder{color:var(--color-gray-text)}.todo-input:focus{border-color:var(--color-blue-primary);box-shadow:0 0 0 3px #209dd726}.add-button{color:var(--color-white);background-color:var(--color-purple-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:transform var(--transition-fast), opacity var(--transition-fast), box-shadow var(--transition-fast);border:none;justify-content:center;align-items:center;padding:12px 22px;font-family:inherit;font-size:15px;font-weight:600;display:inline-flex;box-shadow:0 2px 8px #75399140}.add-button:hover:not(:disabled){opacity:.95;transform:translateY(-1px);box-shadow:0 4px 12px #75399159}.add-button:active:not(:disabled){transform:translateY(0)}.add-button:disabled{opacity:.5;cursor:not-allowed}.todo-list-container{min-height:220px;padding:16px 24px 28px}.todo-list{flex-direction:column;gap:8px;list-style:none;display:flex}.todo-item{background:var(--color-white);border:1px solid var(--color-gray-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);-webkit-user-select:none;user-select:none;align-items:center;gap:12px;padding:12px 14px;display:flex}.todo-item:hover{box-shadow:var(--shadow-md);border-color:#cbd5e1}.todo-item.dragging{box-shadow:var(--shadow-lg);border-color:var(--color-blue-primary);background-color:#f7fafc}.todo-item.checked{background-color:#f7fbfe;border-color:#bee3f8}.todo-item.completed{background-color:#fcfdfc;border-color:#bbf7d0}.drag-handle{cursor:grab;color:var(--color-gray-text);transition:color var(--transition-fast);border-radius:4px;justify-content:center;align-items:center;padding:4px;display:flex}.drag-handle:active{cursor:grabbing}.drag-handle:hover{color:var(--color-dark-navy)}.toggle-button{cursor:pointer;transition:transform var(--transition-fast);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex}.toggle-button:hover{transform:scale(1.08)}.toggle-button:focus-visible{outline:2px solid var(--color-blue-primary);outline-offset:2px}.todo-title{color:var(--color-dark-navy);word-break:break-word;transition:color var(--transition-fast), text-decoration-color var(--transition-fast);flex:1;font-size:15px;font-weight:500}.todo-title.completed{color:var(--color-gray-text);text-decoration:line-through;-webkit-text-decoration-color:var(--color-gray-text);text-decoration-color:var(--color-gray-text)}.item-actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.edit-button,.delete-button{cursor:pointer;border-radius:var(--radius-sm);color:var(--color-gray-text);opacity:.6;transition:opacity var(--transition-fast), color var(--transition-fast), background-color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:6px;display:flex}.todo-item:hover .edit-button,.todo-item:hover .delete-button{opacity:1}.edit-button:hover{color:var(--color-blue-primary);background-color:#209dd71f}.edit-button:focus-visible{opacity:1;outline:2px solid var(--color-blue-primary)}.delete-button:hover{color:#d9383a;background-color:#fee2e2}.delete-button:focus-visible{opacity:1;outline:2px solid #d9383a}.edit-form{flex:1;align-items:center;gap:6px;display:flex}.edit-input{color:var(--color-dark-navy);border:1.5px solid var(--color-blue-primary);border-radius:var(--radius-sm);background:#fff;outline:none;flex:1;padding:6px 10px;font-family:inherit;font-size:15px;font-weight:500;box-shadow:0 0 0 2px #209dd726}.edit-action-btn{cursor:pointer;border-radius:var(--radius-sm);transition:background-color var(--transition-fast), color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:6px;display:flex}.edit-action-btn.save{color:var(--color-blue-primary)}.edit-action-btn.save:hover:not(:disabled){background-color:#209dd726}.edit-action-btn.save:disabled{opacity:.4;cursor:not-allowed}.edit-action-btn.cancel{color:var(--color-gray-text)}.edit-action-btn.cancel:hover{background-color:#88888826}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:40px 16px;display:flex}.empty-title{color:var(--color-dark-navy);margin-top:16px;margin-bottom:6px;font-size:17px;font-weight:600}.empty-subtitle{color:var(--color-gray-text);max-width:300px;font-size:14px}.app-footer{border-top:1px solid var(--color-gray-border);color:var(--color-gray-text);background:#fbfcfe;justify-content:space-between;align-items:center;padding:14px 24px;font-size:12px;display:flex}.accent-indicator{background-color:var(--color-accent-yellow);border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.error-banner{border-radius:var(--radius-sm);color:#991b1b;background-color:#fee2e2;border:1px solid #fca5a5;margin:16px 24px 0;padding:10px 16px;font-size:13px;font-weight:500}.auth-container{padding:36px 32px 32px}.auth-header{margin-bottom:24px}.auth-header h2{color:var(--color-dark-navy);letter-spacing:-.01em;margin-bottom:6px;font-size:22px;font-weight:700}.auth-form{flex-direction:column;gap:16px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{color:var(--color-dark-navy);font-size:13px;font-weight:600}.form-input{border:1.5px solid var(--color-gray-border);border-radius:var(--radius-sm);background:var(--color-white);color:var(--color-dark-navy);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;padding:12px 14px;font-family:inherit;font-size:15px}.form-input:focus{border-color:var(--color-blue-primary);box-shadow:0 0 0 3px #209dd726}.checkbox-row{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;margin-top:2px;display:flex}.checkbox-input{width:18px;height:18px;accent-color:var(--color-blue-primary);cursor:pointer}.checkbox-label{color:var(--color-dark-navy);cursor:pointer;font-size:14px}.auth-submit-btn{color:var(--color-white);background-color:var(--color-purple-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:transform var(--transition-fast), opacity var(--transition-fast), box-shadow var(--transition-fast);border:none;justify-content:center;align-items:center;margin-top:8px;padding:13px 20px;font-family:inherit;font-size:15px;font-weight:600;display:flex;box-shadow:0 2px 8px #75399140}.auth-submit-btn:hover:not(:disabled){opacity:.95;transform:translateY(-1px);box-shadow:0 4px 12px #75399159}.auth-submit-btn:active:not(:disabled){transform:translateY(0)}.auth-submit-btn:disabled{opacity:.6;cursor:not-allowed}.auth-toggle-box{border-top:1px solid var(--color-gray-border);text-align:center;margin-top:20px;padding-top:18px}.auth-toggle-link{color:var(--color-blue-primary);cursor:pointer;text-underline-offset:3px;transition:opacity var(--transition-fast);background:0 0;border:none;font-family:inherit;font-size:14px;font-weight:600;text-decoration:underline}.auth-toggle-link:hover{opacity:.85}.user-controls{align-items:center;gap:12px;display:flex}.user-badge{color:var(--color-dark-navy);background:var(--color-gray-light);border:1px solid var(--color-gray-border);border-radius:16px;align-items:center;gap:6px;padding:5px 10px;font-size:13px;font-weight:600;display:inline-flex}.user-avatar-dot{background-color:var(--color-blue-primary);border-radius:50%;width:8px;height:8px}.logout-button{border:1px solid var(--color-gray-border);color:var(--color-gray-text);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast), background-color var(--transition-fast);background:0 0;border-radius:6px;padding:5px 10px;font-family:inherit;font-size:12px;font-weight:600}.logout-button:hover{color:#d9383a;background-color:#fee2e2;border-color:#fca5a5}.modal-backdrop{-webkit-backdrop-filter:blur(4px);z-index:1000;animation:modalFadeIn var(--transition-fast) ease-out;background-color:#03214773;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-card{background:var(--color-white);border-radius:var(--radius-md);border:1px solid var(--color-gray-border);width:100%;max-width:440px;animation:modalPopIn var(--transition-fast) cubic-bezier(.16, 1, .3, 1);overflow:hidden;box-shadow:0 20px 40px #03214733,0 1px 3px #03214714}.modal-header{border-bottom:1px solid var(--color-gray-border);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-title-group{align-items:center;gap:12px;display:flex}.modal-icon-badge{background-color:#fee2e2;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.modal-title{color:var(--color-dark-navy);margin:0;font-size:17px;font-weight:700}.modal-close-btn{color:var(--color-gray-text);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px;display:inline-flex}.modal-close-btn:hover{color:var(--color-dark-navy);background:#03214714}.modal-body{color:#4b5563;padding:20px 22px;font-size:14px;line-height:1.5}.modal-actions{background:var(--color-gray-light);border-top:1px solid var(--color-gray-border);justify-content:flex-end;gap:10px;padding:14px 22px;display:flex}.modal-btn{border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);padding:9px 18px;font-family:inherit;font-size:14px;font-weight:600;line-height:1.25}.modal-btn-cancel{background:var(--color-white);color:var(--color-dark-navy);border:1px solid var(--color-gray-border)}.modal-btn-cancel:hover:not(:disabled){background:#edf2f7;border-color:#cbd5e1}.modal-btn-confirm{color:var(--color-white);background:#dc2626;border:1px solid #0000;box-shadow:0 2px 6px #dc262633}.modal-btn-confirm:hover:not(:disabled){background:#b91c1c;box-shadow:0 4px 10px #dc26264d}.modal-btn:disabled{opacity:.6;cursor:not-allowed}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalPopIn{0%{opacity:0;transform:scale(.96)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}
