@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500;600&family=Inter:wght@300;400;500&display=swap";*{box-sizing:border-box;margin:0;padding:0}:root{--black:#000;--bg:#0a0a0a;--surface:#111;--border:#1e1e1e;--border-hover:#333;--text:#d4d4d4;--text-muted:#555;--text-faint:#333;--white:#f5f5f0;--gold:#c9a96e;--gold-dim:#8a7345;--green:#6b8f71;--blue:#7a9cbf;--amber:#c9a96e;--red:#a05050;--serif:"Cormorant Garamond", "Times New Roman", serif;--sans:"Inter", -apple-system, BlinkMacSystemFont, sans-serif}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased}.login-page{justify-content:center;align-items:center;min-height:100dvh;padding:20px;display:flex}.login-container{text-align:center;width:100%;max-width:380px}.login-brand h1{font-family:var(--serif);letter-spacing:.35em;color:var(--white);margin-bottom:16px;font-size:3.5rem;font-weight:300}.login-divider{background:var(--gold);width:40px;height:1px;margin:0 auto 16px}.login-brand p{font-family:var(--sans);letter-spacing:.25em;text-transform:uppercase;color:var(--text-muted);margin-bottom:48px;font-size:.7rem}.login-form{flex-direction:column;gap:12px;display:flex}.login-form input{border:1px solid var(--border);width:100%;color:var(--text);font-family:var(--sans);letter-spacing:.03em;background:0 0;outline:none;padding:14px 16px;font-size:.85rem;transition:border-color .3s}.login-form input:focus{border-color:var(--gold-dim)}.login-form input::placeholder{color:var(--text-faint);text-transform:uppercase;letter-spacing:.15em;font-size:.7rem}.login-error{color:var(--red);letter-spacing:.05em;font-size:.75rem}.login-btn-primary{background:var(--white);width:100%;color:var(--black);font-family:var(--sans);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;border:none;margin-top:4px;padding:14px;font-size:.7rem;font-weight:500;transition:opacity .3s}.login-btn-primary:hover{opacity:.85}.login-separator{align-items:center;gap:16px;margin:28px 0;display:flex}.login-separator:before,.login-separator:after{content:"";background:var(--border);flex:1;height:1px}.login-separator span{letter-spacing:.2em;text-transform:uppercase;color:var(--text-faint);font-size:.65rem}.login-btn-google{border:1px solid var(--border);width:100%;color:var(--text);font-family:var(--sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:10px;padding:13px;font-size:.7rem;transition:border-color .3s;display:flex}.login-btn-google:hover{border-color:var(--border-hover)}.login-toggle{color:var(--text-muted);letter-spacing:.05em;margin-top:32px;font-size:.7rem}.login-toggle button{color:var(--gold);cursor:pointer;letter-spacing:.05em;background:0 0;border:none;font-size:.7rem;text-decoration:none;transition:opacity .3s}.login-toggle button:hover{opacity:.7}.app{max-width:520px;margin:0 auto;padding:60px 24px 80px}.app-header{justify-content:space-between;align-items:flex-start;margin-bottom:48px;display:flex}h1{font-family:var(--serif);letter-spacing:.3em;color:var(--white);font-size:2.8rem;font-weight:300}.subtitle{letter-spacing:.25em;text-transform:uppercase;color:var(--text-muted);margin-top:4px;font-size:.65rem}.logout-btn{border:1px solid var(--border);color:var(--text-muted);font-family:var(--sans);letter-spacing:.15em;text-transform:uppercase;cursor:pointer;background:0 0;margin-top:8px;padding:8px 16px;font-size:.6rem;transition:all .3s}.logout-btn:hover{border-color:var(--border-hover);color:var(--text)}.add-form{margin-bottom:40px}.add-main{gap:0;display:flex}.add-main input{border:1px solid var(--border);color:var(--text);font-family:var(--sans);letter-spacing:.02em;background:0 0;border-right:none;outline:none;flex:1;padding:14px 18px;font-size:.85rem;transition:border-color .3s}.add-main input:focus{border-color:var(--gold-dim)}.add-main input::placeholder{color:var(--text-faint)}.add-main button{background:var(--white);color:var(--black);border:1px solid var(--white);cursor:pointer;flex-shrink:0;width:48px;font-size:1.2rem;font-weight:300;transition:opacity .3s}.add-main button:hover{opacity:.8}.add-options{flex-direction:column;gap:12px;margin-top:12px;display:flex}.type-picker{gap:0;display:flex}.type-btn{border:1px solid var(--border);color:var(--text-muted);font-family:var(--sans);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:0 0;padding:7px 16px;font-size:.65rem;transition:all .3s}.type-btn+.type-btn{border-left:none}.type-btn:hover{color:var(--text);border-color:var(--border-hover)}.type-btn.active{background:var(--white);color:var(--black);border-color:var(--white)}.type-btn.active+.type-btn{border-left:none}.interval-picker{align-items:center;gap:10px;display:flex}.interval-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:.7rem}.interval-input{border:1px solid var(--border);width:52px;color:var(--text);font-family:var(--sans);text-align:center;-moz-appearance:textfield;background:0 0;outline:none;padding:7px 10px;font-size:.85rem;transition:border-color .3s}.interval-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.interval-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.interval-input:focus{border-color:var(--gold-dim)}.weekday-picker{gap:6px;display:flex}.day-btn{border:1px solid var(--border);width:36px;height:36px;color:var(--text-muted);font-family:var(--sans);letter-spacing:.05em;cursor:pointer;background:0 0;border-radius:0;font-size:.65rem;transition:all .3s}.day-btn:hover{border-color:var(--border-hover);color:var(--text)}.day-btn.active{background:var(--gold);color:var(--black);border-color:var(--gold)}.schedule-picker{gap:8px;display:flex}.schedule-picker input{border:1px solid var(--border);color:var(--text);font-family:var(--sans);background:0 0;outline:none;padding:8px 12px;font-size:.8rem;transition:border-color .3s}.schedule-picker input:focus{border-color:var(--gold-dim)}.section-title{font-family:var(--serif);letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);margin:40px 0 12px;padding-bottom:12px;font-size:1rem;font-weight:400}.upcoming{opacity:.45;transition:opacity .3s}.upcoming:hover{opacity:.8}.todo-list{flex-direction:column;gap:0;list-style:none;display:flex}.todo-list li{border-bottom:1px solid var(--border);align-items:center;gap:14px;padding:16px 8px;transition:background .3s;display:flex}.todo-list li:last-child{border-bottom:none}.todo-list li:hover{background:#ffffff04}.todo-list li.done .todo-text{color:var(--text-faint);text-decoration:line-through}.check-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;width:20px;padding:0;font-size:1rem;transition:color .3s}.check-btn:hover{color:var(--white)}li.done .check-btn{color:var(--gold)}.todo-text{cursor:pointer;letter-spacing:.01em;flex:1;font-size:.9rem;font-weight:300;transition:color .3s}.todo-text:hover{color:var(--white)}.badge{font-family:var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-size:.6rem}.badge-daily{color:var(--green)}.badge-every{color:#9b8ec4}.badge-weekly{color:var(--blue)}.badge-scheduled{color:var(--amber)}.delete-btn{color:var(--text-faint);cursor:pointer;opacity:0;background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:.9rem;transition:opacity .3s,color .3s}.todo-list li:hover .delete-btn{opacity:1}.delete-btn:hover{color:var(--red)}.edit-row{flex:1;align-items:center;gap:8px;display:flex}.edit-row input{border:1px solid var(--border);color:var(--text);font-family:var(--sans);background:0 0;outline:none;flex:1;padding:10px 14px;font-size:.9rem;font-weight:300;transition:border-color .3s}.edit-row input:focus{border-color:var(--gold-dim)}.save-btn{background:var(--gold);color:var(--black);font-family:var(--sans);letter-spacing:.15em;text-transform:uppercase;cursor:pointer;border:none;padding:8px 16px;font-size:.6rem;font-weight:500;transition:opacity .3s}.save-btn:hover{opacity:.8}.cancel-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:1rem;transition:color .3s}.cancel-btn:hover{color:var(--text)}.empty{text-align:center;color:var(--text-faint);letter-spacing:.15em;text-transform:uppercase;margin-top:80px;font-size:.75rem}
