:root{--bg: #0a0a0a;--bg2: #111111;--bg3: #1a1a1a;--green: #2d5a27;--green-light: #4a8c3f;--cream: #e8dcc8;--cream-dim: #9e9484;--red: #8b3a3a;--red-dim: #5a2a2a;--border: #2a2a2a;--font-display: "Cinzel", serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--safe-bottom: env(safe-area-inset-bottom, 0px)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden}body{background:var(--bg);color:var(--cream);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.auth-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 20% 50%,rgba(45,90,39,.08) 0%,transparent 50%),radial-gradient(ellipse at 80% 50%,rgba(45,90,39,.05) 0%,transparent 50%),var(--bg);padding:1rem}.auth-box{text-align:center;padding:2.5rem 2rem;border:1px solid var(--border);border-radius:12px;background:var(--bg2);max-width:360px;width:100%}.moon{font-size:2.5rem;margin-bottom:.5rem}.moon-sm{font-size:1.6rem}.auth-box h1{font-family:var(--font-display);font-size:1.6rem;color:var(--cream);letter-spacing:.1em;margin-bottom:.1rem}.subtitle{font-family:var(--font-display);font-size:.75rem;color:var(--cream-dim);letter-spacing:.2em;text-transform:uppercase;margin-bottom:1.5rem}.auth-box form{display:flex;flex-direction:column;gap:.75rem}.auth-box input{background:var(--bg);border:1px solid var(--border);color:var(--cream);padding:.85rem 1rem;border-radius:8px;font-size:16px;font-family:var(--font-body);outline:none;transition:border-color .2s;width:100%}.auth-box input:focus{border-color:var(--green-light)}.auth-box input.error{border-color:var(--red)}.auth-box button{background:var(--green);color:var(--cream);border:none;padding:.85rem;border-radius:8px;font-size:1rem;font-family:var(--font-body);font-weight:600;cursor:pointer;letter-spacing:.05em;transition:background .2s}.auth-box button:hover{background:var(--green-light)}.auth-box button:active{transform:scale(.98)}.error-text{color:var(--red);font-size:.8rem}.app{max-width:600px;margin:0 auto;padding:1rem 1rem calc(1rem + var(--safe-bottom));height:100dvh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 10% 0%,rgba(45,90,39,.06) 0%,transparent 40%),radial-gradient(ellipse at 90% 100%,rgba(45,90,39,.04) 0%,transparent 40%),var(--bg);overflow:hidden}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border);flex-shrink:0}.logo{display:flex;align-items:center;gap:.6rem}.logo h1{font-family:var(--font-display);font-size:clamp(1.1rem,4vw,1.4rem);color:var(--cream);letter-spacing:.08em;line-height:1.1}.tagline{font-family:var(--font-display);font-size:.6rem;color:var(--cream-dim);letter-spacing:.25em;text-transform:uppercase}.btn-ghost{background:none;border:1px solid var(--border);color:var(--cream-dim);padding:.4rem .75rem;border-radius:6px;font-size:.8rem;font-family:var(--font-body);cursor:pointer;transition:all .2s;white-space:nowrap;-webkit-tap-highlight-color:transparent}.btn-ghost:active{background:var(--bg2)}.btn-sm{font-size:.7rem;padding:.35rem .6rem}.countdown{text-align:center;padding:.6rem 0;margin-bottom:.5rem;border:1px solid var(--border);border-radius:8px;background:var(--bg2);flex-shrink:0}.countdown-label{margin-right:.4rem}.countdown-time{font-family:var(--font-display);font-size:1.1rem;color:var(--green-light);letter-spacing:.05em;font-variant-numeric:tabular-nums}.add-form{display:flex;gap:.5rem;margin-bottom:.75rem;flex-shrink:0}.add-form input{flex:1;min-width:0;background:var(--bg2);border:1px solid var(--border);color:var(--cream);padding:.75rem .9rem;border-radius:8px;font-size:16px;font-family:var(--font-body);outline:none;transition:border-color .2s}.add-form input:focus{border-color:var(--green-light)}.add-form input::placeholder{color:var(--cream-dim);opacity:.5}.add-form button{background:var(--green);color:var(--cream);border:none;padding:.75rem 1.1rem;border-radius:8px;font-size:1.2rem;font-family:var(--font-body);font-weight:600;cursor:pointer;flex-shrink:0;transition:background .2s;line-height:1}.add-form button:hover:not(:disabled){background:var(--green-light)}.add-form button:active:not(:disabled){transform:scale(.95)}.add-form button:disabled{opacity:.4;cursor:not-allowed}.controls{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;padding:0 .15rem;flex-shrink:0}.count{font-size:.7rem;color:var(--cream-dim)}main{flex:1;overflow:hidden;display:flex;flex-direction:column}.checklist{list-style:none;overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1;padding-bottom:.5rem}.checklist-item{display:flex;align-items:center;justify-content:space-between;padding:.7rem .35rem;border-bottom:1px solid var(--border);gap:.5rem}.checkbox-label{display:flex;align-items:center;gap:.7rem;cursor:pointer;flex:1;min-width:0;-webkit-tap-highlight-color:transparent;padding:.3rem 0}.checkmark{width:22px;height:22px;border:2px solid var(--border);border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .2s}.checkmark.checked{border-color:var(--green-light);background:var(--green)}.check-icon{color:var(--cream);font-size:11px;font-weight:700}.item-text{font-size:.9rem;color:var(--cream);word-break:break-word;line-height:1.4}.completed-item .item-text{text-decoration:line-through;color:var(--cream-dim);opacity:.5}.btn-remove{background:none;border:none;font-family:var(--font-body);cursor:pointer;flex-shrink:0;min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .15s}.btn-remove-active{color:var(--cream-dim);font-size:1.3rem}.btn-delete{color:var(--red);background:var(--red-dim);font-size:.9rem;font-weight:600;border-radius:50%;width:28px;height:28px;padding:0;opacity:1}.btn-delete:active{background:var(--red);color:var(--cream)}@media (hover: hover){.btn-remove{opacity:0}.checklist-item:hover .btn-remove{opacity:1}.btn-remove:hover{color:var(--red);background:var(--red-dim)}}.empty{text-align:center;padding:3rem 1rem;color:var(--cream-dim);font-size:.85rem;opacity:.6}.completed-list{flex:none;max-height:40vh;margin-top:.5rem;padding-top:.75rem;border-top:1px dashed var(--border)}footer{flex-shrink:0;padding-top:1rem;text-align:center}.ivy{font-family:var(--font-display);font-size:.55rem;color:var(--cream-dim);opacity:.25;letter-spacing:.15em}
