:root{--color-primary: #4EF5C7;--color-primary-dark: #3AD4A8;--color-primary-hover: #3AD4A8;--color-highlight: #FFE65C;--color-scenario: #FF6EBB;--color-success: #4EF5C7;--color-error: #ef4444;--color-warning: #FFE65C;--color-bg: #0C1226;--color-bg-card: #141B33;--color-bg-hover: #1A2340;--color-text: #EAEFFF;--color-text-muted: #8892B0;--color-border: #2A3450;--font-heading: "Space Grotesk", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", Consolas, Monaco, monospace;--radius-md: 12px;--radius-lg: 16px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading)}code{font-family:var(--font-mono);background:var(--color-bg);padding:.2em .4em;border-radius:4px;font-size:.9em}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.todo-list{width:100%;max-width:600px;margin:0 auto}.todo-form{display:flex;gap:.75rem;margin-bottom:1.5rem}.todo-input{flex:1;padding:.875rem 1rem;font-size:1rem;font-family:var(--font-sans);border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-card);color:var(--color-text);transition:border-color .2s,box-shadow .2s}.todo-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #4ef5c726}.todo-input::placeholder{color:var(--color-text-muted)}.todo-submit{padding:.875rem 1.5rem;font-size:1rem;font-family:var(--font-heading);font-weight:500;color:var(--color-bg);background:var(--color-primary);border:none;border-radius:8px;cursor:pointer;transition:background-color .2s,transform .1s,box-shadow .2s}.todo-submit:hover:not(:disabled){background:var(--color-primary-dark);box-shadow:0 4px 20px #4ef5c74d}.todo-submit:active:not(:disabled){transform:scale(.98)}.todo-submit:disabled{opacity:.6;cursor:not-allowed}.todo-error{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;margin-bottom:1rem;background:#ef44441f;border:1px solid var(--color-error);border-radius:8px;color:var(--color-error);font-size:.875rem}.todo-error-dismiss{padding:.25rem .5rem;font-size:.75rem;color:var(--color-error);background:transparent;border:1px solid var(--color-error);border-radius:4px;cursor:pointer;transition:background-color .2s}.todo-error-dismiss:hover{background:#ef444433}.todo-loading,.todo-empty{padding:3rem 1rem;text-align:center;color:var(--color-text-muted);font-size:1rem}.todo-items{list-style:none;padding:0;margin:0}.todo-item{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:8px;margin-bottom:.5rem;transition:transform .2s,box-shadow .2s}.todo-item:hover{transform:translate(4px);box-shadow:-4px 0 0 var(--color-primary)}.todo-item.completed .todo-title{text-decoration:line-through;color:var(--color-text-muted)}.todo-checkbox-label{position:relative;display:flex;align-items:center;justify-content:center;width:24px;height:24px;cursor:pointer}.todo-checkbox{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer}.todo-checkmark{width:20px;height:20px;border:2px solid var(--color-border);border-radius:4px;transition:all .2s}.todo-checkbox:checked+.todo-checkmark{background:var(--color-primary);border-color:var(--color-primary)}.todo-checkbox:checked+.todo-checkmark:after{content:"";position:absolute;left:7px;top:3px;width:5px;height:10px;border:solid var(--color-bg);border-width:0 2px 2px 0;transform:rotate(45deg)}.todo-checkbox:focus+.todo-checkmark{box-shadow:0 0 0 3px #4ef5c726}.todo-title{flex:1;font-size:1rem;color:var(--color-text);word-break:break-word}.todo-delete{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;color:var(--color-text-muted);background:transparent;border:none;border-radius:6px;cursor:pointer;opacity:0;transition:opacity .2s,color .2s,background-color .2s}.todo-item:hover .todo-delete{opacity:1}.todo-delete:hover{color:var(--color-error);background:#ef44441a}.todo-delete:focus{opacity:1;outline:none;box-shadow:0 0 0 2px #ef44444d}.todo-footer{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;color:var(--color-text-muted);font-size:.875rem}.todo-count{color:var(--color-text-muted)}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{padding:1.5rem 2rem;background:linear-gradient(135deg,var(--color-bg-card) 0%,var(--color-bg) 100%);border-bottom:1px solid var(--color-border)}.header-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.header-brand{display:flex;align-items:center;gap:.75rem}.header-logo{width:40px;height:40px;border-radius:var(--radius-md)}.header-title{text-align:left}.app-header h1{font-family:var(--font-heading);font-size:1.75rem;font-weight:700;margin-bottom:.125rem;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-highlight) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.subtitle{color:var(--color-text-muted);font-size:.9rem;margin-bottom:0}.auth-section{display:flex;align-items:center;gap:1rem}.auth-loading{color:var(--color-text-muted);font-size:.875rem}.user-info{display:flex;align-items:center;gap:.75rem}.user-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid var(--color-border)}.user-name{color:var(--color-text);font-size:.875rem;font-weight:500;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-button{padding:.5rem 1rem;border-radius:8px;font-family:var(--font-heading);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;border:none}.login-button{background:var(--color-primary);color:var(--color-bg)}.login-button:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 4px 20px #4ef5c74d}.login-button.large{padding:.75rem 2rem;font-size:1rem}.logout-button{background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border)}.logout-button:hover{background:var(--color-bg-hover);color:var(--color-text)}.login-prompt{text-align:center;padding:4rem 2rem}.login-prompt h2{font-family:var(--font-heading);font-size:1.75rem;font-weight:600;margin-bottom:1rem;color:var(--color-text)}.login-prompt p{color:var(--color-text-muted);margin-bottom:2rem;font-size:1rem}.loading-container{text-align:center;padding:4rem 2rem;color:var(--color-text-muted)}.connection-status{margin-top:.5rem}.status-indicator{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500}.status-indicator:before{content:"";width:8px;height:8px;border-radius:50%}.status-indicator.connected{background:#4ef5c71f;color:var(--color-primary)}.status-indicator.connected:before{background:var(--color-primary)}.status-indicator.disconnected{background:#ffe65c1f;color:var(--color-warning)}.status-indicator.disconnected:before{background:var(--color-warning)}.app-main{flex:1;padding:2rem;max-width:800px;margin:0 auto;width:100%}.todo-section{width:100%}.todo-section h2{font-family:var(--font-heading);font-size:1.5rem;font-weight:600;margin-bottom:.5rem;color:var(--color-text)}.section-description{color:var(--color-text-muted);margin-bottom:1.5rem;font-size:.95rem}.app-footer{padding:1.5rem 2rem;text-align:center;border-top:1px solid var(--color-border);background:var(--color-bg-card)}.app-footer p{color:var(--color-text-muted);font-size:.875rem}.card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.5rem;transition:transform .2s,box-shadow .2s}.card:hover{transform:translateY(-2px);box-shadow:0 8px 30px #0000004d}.status-badge{display:inline-flex;align-items:center;padding:.375rem .875rem;border-radius:9999px;font-size:.875rem;font-weight:500;margin-bottom:1rem}.status-badge.success{background:#4ef5c71f;color:var(--color-success);border:1px solid var(--color-success)}.status-badge.error{background:#ef44441f;color:var(--color-error);border:1px solid var(--color-error)}.status-badge.loading{background:#ffe65c1f;color:var(--color-warning);border:1px solid var(--color-warning)}
