@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap");:root{--ink:#20251f;--muted:#7c8278;--cream:#f8f7f2;--paper:#fff;--line:#e9e9e2;--green:#48634b;--soft-green:#e9f0e5;--red:#b75d55}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:DM Sans,sans-serif}button,input{font:inherit}button{cursor:pointer}a{color:var(--green);font-weight:700}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 10%,#e9f0e5 0,transparent 32%),var(--cream)}.auth-card{width:min(100%,440px);background:var(--paper);padding:48px;border:1px solid var(--line);box-shadow:0 20px 60px #343d3010}.brand-mark{width:44px;height:44px;display:grid;place-items:center;background:var(--green);color:white;border-radius:14px;font-family:Georgia,serif;font-size:24px;font-weight:700;margin-bottom:22px}.brand-mark.small{width:30px;height:30px;border-radius:9px;font-size:17px;margin:0}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:var(--green);margin:0 0 12px}.auth-card h1,.welcome h1{font-family:Playfair Display,Georgia,serif;font-size:38px;line-height:1.12;margin:0 0 12px}.muted{color:var(--muted);margin:0;line-height:1.6}.auth-form{display:grid;grid-gap:17px;gap:17px;margin-top:32px}.auth-form label{display:grid;grid-gap:8px;gap:8px;font-size:13px;font-weight:700}.auth-form input,.edit-input,.task-form input{border:1px solid var(--line);background:#fcfcfa;border-radius:8px;padding:13px 14px;outline:none;color:var(--ink)}input:focus{border-color:var(--green);box-shadow:0 0 0 3px #48634b18}.primary-button{border:0;background:var(--green);color:white;border-radius:8px;padding:14px 18px;font-weight:700;transition:.2s}.primary-button:hover{background:#38523c}.primary-button:disabled{opacity:.55;cursor:not-allowed}.switch-text{text-align:center;color:var(--muted);font-size:14px;margin:24px 0 0}.error-banner,.error-message{color:var(--red);font-size:13px;margin:0}.app-shell{max-width:900px;margin:auto;padding:30px 28px 80px}.topbar{justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:22px}.brand,.topbar{display:flex;align-items:center}.brand{gap:10px;font-size:12px;font-weight:700;letter-spacing:2px}.user-menu{display:flex;gap:20px;align-items:center;font-size:14px}.task-actions button,.text-button{border:0;background:transparent;color:var(--muted);font-size:13px}.task-actions button:hover,.text-button:hover{color:var(--green)}.welcome{display:flex;justify-content:space-between;align-items:end;padding:64px 0 30px}.welcome h1{font-size:46px}.date-pill{background:var(--soft-green);color:var(--green);padding:10px 15px;border-radius:30px;font-size:13px;font-weight:700}.task-form{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:18px;box-shadow:0 8px 25px #343d3007}.task-input-wrap{display:flex;align-items:center;gap:13px}.task-input-wrap input{border:0;background:transparent;padding:5px 0;font-size:18px;width:100%;outline:0}.plus{font-size:25px;color:var(--green)}.task-form-details{display:flex;gap:10px;margin-top:15px;padding-left:38px}.task-form-details input{min-width:0;padding:10px;font-size:13px}.task-form-details input[type=date]{width:150px}.task-form-details input:nth-child(2){flex:1 1}.compact{padding:10px 15px;white-space:nowrap}.filters{display:flex;gap:23px;border-bottom:1px solid var(--line);margin-top:38px}.filter{border:0;background:transparent;padding:0 0 14px;color:var(--muted);font-weight:700;font-size:13px;border-bottom:2px solid transparent}.filter.active{color:var(--green);border-color:var(--green)}.task-list{margin-top:25px}.section-heading{display:flex;align-items:center;gap:10px;margin-bottom:13px}.section-heading h2{font-size:18px;margin:0}.section-heading span{font-size:12px;color:var(--muted)}.task-card{display:flex;align-items:flex-start;gap:15px;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:17px;margin-bottom:10px}.check-button{flex:0 0 22px;width:22px;height:22px;border:1px solid #b9c1b5;background:white;border-radius:50%;color:white;font-weight:700;line-height:18px}.completed .check-button{background:var(--green);border-color:var(--green)}.task-content{flex:1 1;min-width:0}.task-content h3{font-size:15px;margin:1px 0 6px}.completed h3{text-decoration:line-through;color:var(--muted)}.task-content p{font-size:13px;color:var(--muted);margin:0 0 8px}.task-date{font-size:11px;color:var(--green);font-weight:700}.task-actions{display:flex;gap:13px}.empty-state{text-align:center;padding:54px 20px;color:var(--muted)}.empty-state span{font-size:25px;color:var(--green)}.empty-state h3{color:var(--ink);margin:12px 0 5px}.empty-state p{font-size:13px}.loading-card{text-align:center;margin-top:35vh;color:var(--muted)}.error-banner,.notice{padding:12px 15px;border-radius:8px;margin-bottom:15px;background:#fff7de}.error-banner{background:#fff0ef}.edit-input{padding:5px 8px;width:100%;font-size:15px}@media(max-width:600px){.app-shell{padding:20px 16px 60px}.auth-card{padding:32px 24px}.welcome{padding:45px 0 25px;align-items:start;gap:15px;flex-direction:column}.welcome h1{font-size:37px}.task-form-details{padding-left:0;flex-wrap:wrap}.task-form-details input:nth-child(2){order:3;flex-basis:100%}.task-form-details input[type=date]{flex:1 1}.topbar{align-items:start}.user-menu{gap:10px;flex-direction:column;align-items:end}.filters{gap:15px;overflow:auto}.filter{white-space:nowrap}.task-actions{flex-direction:column;gap:5px}}