#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.app{width:100%;min-height:100vh}.app-loading{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh}.spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.auth-page{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:2rem}.auth-container{width:100%;max-width:400px;background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 10px #0000001a}form{display:flex;flex-direction:column;gap:1rem}form h2{margin:0 0 .5rem;color:#333}.info-text{font-size:.9rem;color:#666;margin:0 0 1rem}.form-group{display:flex;flex-direction:column;text-align:left;gap:.5rem}.form-group label{font-weight:500;color:#333}.form-group input{padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.form-group input:focus{outline:none;border-color:#3498db}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.form-group small{font-size:.85rem;color:#666}button{padding:.75rem 1.5rem;background-color:#3498db;color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s}button:hover:not(:disabled){background-color:#2980b9}button:disabled{background-color:#bdc3c7;cursor:not-allowed}.link-button{background:none;color:#3498db;padding:.5rem;text-decoration:none}.link-button:hover:not(:disabled){background:none;text-decoration:underline}.error-message{padding:.75rem;background-color:#fee;border:1px solid #fcc;border-radius:4px;color:#c33;font-size:.9rem}.auth-toggle{margin-top:1rem;padding-top:1rem;border-top:1px solid #eee}.form-actions{display:flex;flex-direction:column;gap:.5rem}.dashboard-page{width:100%}.app-header{background-color:#2c3e50;color:#fff;padding:1rem 2rem;margin-bottom:2rem}.header-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.header-content h1{margin:0}.user-section{display:flex;align-items:center;gap:1rem}.user-name{color:#ecf0f1}.logout-btn{background-color:#e74c3c}.logout-btn:hover:not(:disabled){background-color:#c0392b}.dashboard-content{max-width:800px;margin:0 auto;padding:0 1rem}.create-todo-form{margin-bottom:2rem}.create-todo-form .form-group{flex-direction:row;gap:1rem}.create-todo-form input{flex:1}.todo-list{display:flex;flex-direction:column;gap:1rem}.todo-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#fff;border:1px solid #ddd;border-radius:4px}.todo-item.completed .todo-content{text-decoration:line-through;color:#999}.todo-content{flex:1;text-align:left}.todo-actions{display:flex;gap:.5rem}.todo-actions button{padding:.5rem 1rem;font-size:.9rem}.delete-btn{background-color:#e74c3c}.delete-btn:hover:not(:disabled){background-color:#c0392b}.empty-state,.loading{text-align:center;padding:2rem;color:#666}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}body{margin:0;background:linear-gradient(180deg,#7551c2,#fff);display:flex;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;height:100vh;width:100vw;justify-content:center;align-items:center}main{display:flex;flex-direction:column;align-items:stretch}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;color:#fff}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}ul{padding-inline-start:0;margin-block-start:0;margin-block-end:0;list-style-type:none;display:flex;flex-direction:column;margin:8px 0;border:1px solid black;gap:1px;background-color:#000;border-radius:8px;overflow:auto}li{background-color:#fff;padding:8px}li:hover{background:#dadbf9}a{font-weight:800;text-decoration:none}
