:root{color:#27332e;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 10% 0,#71b0962e,#0000 32rem),linear-gradient(#f5f7f3 0%,#edf2ee 100%);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{min-width:320px;min-height:100%}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button:focus-visible,input:focus-visible{outline-offset:2px;outline:3px solid #25876f40}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.app-shell{width:min(880px,100% - 32px);margin:0 auto;padding:64px 0 32px}.app-header{justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:34px;display:flex}.eyebrow,.section-label{color:#16745e;letter-spacing:.18em;margin:0 0 8px;font-size:.72rem;font-weight:800}.app-header h1{color:#17231f;letter-spacing:-.055em;margin:0;font-family:Georgia,Yu Mincho,serif;font-size:clamp(2.35rem,7vw,4.25rem);font-weight:500;line-height:1}.app-description{color:#66716d;max-width:560px;margin:18px 0 0;font-size:.96rem}.summary{color:#66716d;white-space:nowrap;flex:none;align-items:baseline;gap:8px;padding-bottom:4px;display:flex}.summary strong{color:#17231f;font-family:Georgia,serif;font-size:2.2rem;font-weight:500}.summary span{font-size:.84rem}.todo-panel{background:#ffffffeb;border:1px solid #dce4df;border-radius:24px;overflow:hidden;box-shadow:0 24px 70px #2d453b1c}.panel-heading{padding:30px 34px 0}.panel-heading h2,.list-heading h2{color:#1c2924;margin:0;font-size:1.15rem}.todo-form{border-bottom:1px solid #e5ebe7;gap:12px;padding:20px 34px 32px;display:flex}.todo-input-wrap{flex:1;position:relative}.todo-input-wrap input,.edit-form input{box-sizing:border-box;color:#17231f;background:#fbfdfc;border:1px solid #cbd7d1;border-radius:12px;outline:none;width:100%;transition:border-color .15s,box-shadow .15s,background .15s}.todo-input-wrap input{height:52px;padding:0 74px 0 16px;font-size:1rem}.todo-input-wrap input:focus,.edit-form input:focus{background:#fff;border-color:#25876f;box-shadow:0 0 0 4px #25876f1c}.todo-input-wrap input::placeholder{color:#9aa6a1}.character-count,.edit-count{color:#8a9691;font-variant-numeric:tabular-nums;font-size:.72rem}.character-count{position:absolute;top:50%;right:14px;transform:translateY(-50%)}.over{color:#b54646}.primary-button{color:#fff;cursor:pointer;background:#176f5a;border:0;border-radius:12px;min-width:98px;height:52px;font-weight:750;transition:transform .15s,background .15s,opacity .15s}.primary-button:hover:not(:disabled){background:#115d4b;transform:translateY(-1px)}button:disabled,input:disabled{cursor:not-allowed;opacity:.55}.error-banner{color:#8f3434;background:#fff5f4;border:1px solid #efc9c9;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;margin:24px 34px 0;padding:12px 14px;font-size:.86rem;display:flex}.error-banner button{color:inherit;cursor:pointer;background:0 0;border:0;font-weight:750}.list-heading{justify-content:space-between;align-items:center;padding:28px 34px 16px;display:flex}.list-heading span{color:#7c8883;font-size:.78rem}.todo-list{margin:0;padding:0 18px 20px;list-style:none}.todo-item{border-top:1px solid #edf1ee;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;min-height:68px;padding:8px 16px;display:grid}.todo-item:first-child{border-top:0}.todo-check{cursor:pointer;place-items:center;width:24px;height:24px;display:grid}.todo-check input{opacity:0;width:1px;height:1px;position:absolute}.todo-check>span[aria-hidden=true]{box-sizing:border-box;border:1.5px solid #9aa8a2;border-radius:50%;place-items:center;width:19px;height:19px;transition:all .15s;display:grid}.todo-check input:focus-visible+span{outline-offset:2px;outline:3px solid #25876f33}.todo-check input:checked+span{background:#25876f;border-color:#25876f}.todo-check input:checked+span:after{content:"";border-bottom:2px solid #fff;border-left:2px solid #fff;width:7px;height:4px;margin-top:-2px;transform:rotate(-45deg)}.todo-content{min-width:0}.todo-content p{overflow-wrap:anywhere;color:#27332e;margin:0;font-size:.96rem;transition:color .15s}.completed .todo-content p{color:#96a09c;text-decoration:line-through;text-decoration-thickness:1px}.todo-actions{gap:4px;margin-left:18px;display:flex}.icon-button,.text-button{cursor:pointer;background:0 0;border:0;font-size:.76rem;font-weight:700}.icon-button{color:#69756f;border-radius:8px;padding:8px}.icon-button:hover:not(:disabled){color:#24312b;background:#f1f5f2}.icon-button.danger:hover:not(:disabled){color:#ad3e3e;background:#fff1ef}.edit-form{grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;padding:8px 0;display:grid}.edit-form input{height:42px;padding:0 12px;font-size:.92rem}.edit-count{align-self:center}.edit-actions{gap:4px;display:flex}.text-button{color:#77827e;padding:5px 0}.text-button+.text-button{margin-left:10px}.text-button.accent{color:#176f5a}.state-message,.empty-state{color:#7b8782;text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:220px;padding:24px;display:flex}.state-message{gap:14px;font-size:.88rem}.spinner{border:2px solid #d9e2dd;border-top-color:#25876f;border-radius:50%;width:24px;height:24px;animation:.7s linear infinite spin}.empty-state>span{color:#25876f;background:#edf6f2;border-radius:50%;place-items:center;width:42px;height:42px;margin-bottom:14px;font-size:1.15rem;display:grid}.empty-state h3{color:#35423c;margin:0 0 6px;font-size:1rem}.empty-state p{margin:0;font-size:.84rem}footer{color:#838e89;text-align:center;margin-top:18px;font-size:.72rem}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=640px){.app-shell{width:min(100% - 20px,880px);padding-top:34px}.app-header{flex-direction:column;align-items:flex-start;gap:18px;margin-bottom:24px}.summary{align-self:flex-end}.todo-panel{border-radius:18px}.panel-heading,.list-heading{padding-inline:20px}.todo-form{flex-direction:column;padding:16px 20px 24px}.primary-button{width:100%}.error-banner{margin-inline:20px}.todo-list{padding-inline:8px}.todo-item{grid-template-columns:32px minmax(0,1fr);padding:10px 12px}.todo-actions{grid-column:2;justify-content:flex-end;margin:4px 0 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
