:root{--cream:#FFF8F0;--terra:#D97858;--peach:#F6C49F;--sage:#B9C4A4;--brown:#493027;--muted:#8E786C;--line:#F0E4D9;--white:#FFFCF8;--shadow:0 10px 30px #4930270b}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--brown);font-family:'Avenir Next',Avenir,'Trebuchet MS',sans-serif;font-size:15px}.shell{max-width:1020px;margin:auto;padding:22px 30px 32px}.hidden{display:none!important}.topbar{display:flex;align-items:center;justify-content:space-between;padding:3px 0 30px}.wordmark{text-decoration:none;color:var(--terra);font:800 23px 'Avenir Next',Avenir,'Trebuchet MS',sans-serif;letter-spacing:-.8px}.wordmark:first-letter{font-size:28px}.top-actions{display:flex;gap:13px;align-items:center;color:var(--muted);font-size:12px}.quiet{border:0;background:transparent;color:var(--muted);font:600 12px 'Avenir Next',Avenir,sans-serif;padding:9px;cursor:pointer}.quiet:hover{color:var(--terra)}.welcome{background:#F9EBDD;border-radius:24px;padding:28px 32px;display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;overflow:hidden;position:relative}.eyebrow{font-size:10px;letter-spacing:1.3px;color:var(--terra);font-weight:700;margin:0 0 9px}.welcome h1,.auth h1{font:800 28px 'Avenir Next',Avenir,'Trebuchet MS',sans-serif;margin:0 0 5px;letter-spacing:-.5px}.muted{color:var(--muted);margin:0}.moon-cloud{height:91px;width:145px;position:relative;color:var(--terra)}.moon-cloud span{position:absolute;right:46px;top:-13px;font-size:78px;line-height:1;transform:rotate(-15deg)}.moon-cloud i{position:absolute;right:8px;bottom:0;font-size:47px;color:#fff8f0;font-style:normal}.grid{display:grid;grid-template-columns:1fr 1.3fr;gap:16px}.card{background:var(--white);border:1px solid #f5ece3;border-radius:20px;padding:21px 22px;box-shadow:var(--shadow)}.section-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:17px}.section-head h2{font:800 18px 'Avenir Next',Avenir,'Trebuchet MS',sans-serif;margin:0;letter-spacing:-.25px}.sparkle,.summary-icon{color:var(--peach);font-size:22px}.pill{background:#F8F0E7;color:var(--muted);border-radius:20px;padding:6px 10px;font-size:10px;font-weight:600}.checklist{display:flex;flex-direction:column;gap:3px}.check-row{display:flex;align-items:center;gap:11px;padding:9px 1px;color:#6c594f;font-size:13px;cursor:pointer}.check-row input{appearance:none;width:19px;height:19px;border:1.5px solid #dfcdbf;border-radius:7px;margin:0;display:grid;place-items:center;cursor:pointer}.check-row input:checked{background:var(--sage);border-color:var(--sage)}.check-row input:checked:after{content:'✓';color:white;font-size:13px;font-weight:bold}.check-row:has(input:checked) span{text-decoration:line-through;color:#a99a91}.log-card{grid-row:span 1}.actions{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.action{border:1px solid var(--line);background:#fffaf6;border-radius:16px;padding:14px 4px 12px;color:var(--brown);cursor:pointer;transition:transform .15s,border .15s,background .15s}.action:hover{transform:translateY(-2px);border-color:var(--peach);background:#fff5eb}.action:active{transform:scale(.97)}.action span{width:35px;height:35px;margin:0 auto 8px;border-radius:12px;display:grid;place-items:center;font-size:19px}.action b{display:block;font:700 12px 'Avenir Next',Avenir,'Trebuchet MS',sans-serif}.action-woke span{background:#fce8d5;color:#ca7a4d}.action-feed span{background:#f8e2dc;color:#cc7567}.action-settle span{background:#e7eadf;color:#82906f}.action-asleep span{background:#eae4f0;color:#837597}.extras{display:flex;gap:10px;margin-top:16px}.extras label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:10px;font-weight:600}.extras select,.extras input,.auth input{border:1px solid var(--line);background:#fffdfa;border-radius:10px;padding:10px 11px;color:var(--brown);font:12px 'Avenir Next',Avenir,sans-serif;outline:none}.extras select:focus,.extras input:focus,.auth input:focus{border-color:var(--peach)}.note-field{flex:1}.save-state{font-size:10px;color:var(--muted);margin:9px 0 0;min-height:13px}.save-state.error{color:#b64c3f}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat{padding:10px;background:#fbf5ef;border-radius:12px}.stat strong{display:block;font:800 18px 'Avenir Next',Avenir,'Trebuchet MS',sans-serif}.stat span{font-size:10px;color:var(--muted)}.coach{display:flex;gap:10px;align-items:flex-start;background:#f4f1e8;border-radius:12px;padding:11px 12px;margin-top:12px}.coach span{color:#92a07c}.coach p{font-size:11px;line-height:1.45;margin:0;color:#6f6957}.timeline{display:flex;flex-direction:column;max-height:290px;overflow:auto}.event{display:grid;grid-template-columns:75px 11px 1fr;gap:9px;padding:9px 0;border-bottom:1px solid #f4ebe3;align-items:start}.event:last-child{border:0}.event time{font-size:10px;color:var(--muted);padding-top:1px}.dot{width:9px;height:9px;border-radius:50%;margin-top:4px;background:var(--peach)}.event[data-kind=asleep] .dot{background:#9986ad}.event[data-kind=woke] .dot{background:var(--terra)}.event[data-kind=feed] .dot{background:#d9909a}.event[data-kind=settle] .dot{background:#9cab87}.event-title{font:700 12px 'Avenir Next',Avenir,'Trebuchet MS',sans-serif}.event-meta,.event-note{font-size:10px;color:var(--muted);margin-top:2px}.empty{font-size:12px;color:#a08f84;padding:6px 0 13px}.timeline-card{min-height:190px}footer{text-align:center;color:#a89589;font-size:10px;padding:25px 0 2px}footer span{color:var(--terra);padding-left:4px}.auth{max-width:420px;margin:8vh auto;padding:38px 40px;text-align:center}.brand-mark{display:grid;place-items:center;background:#f9eadb;color:var(--terra);width:52px;height:52px;border-radius:17px;margin:0 auto 17px;font-size:31px}.auth h1{font-size:27px}.auth .muted{font-size:13px;margin:7px 0 24px}.auth form{text-align:left}.auth label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:700;color:#705b50;margin:15px 0}.auth input{padding:13px;font-size:13px}.hint,.tiny{color:#a08f84;font-size:10px;line-height:1.5}.hint{margin:-6px 0 16px}.tiny{margin-top:17px}.primary{background:var(--terra);color:white;border:0;border-radius:12px;padding:13px 18px;font:700 13px 'Avenir Next',Avenir,'Trebuchet MS',sans-serif;cursor:pointer}.primary:hover{background:#c86648}.wide{width:100%}.error{min-height:16px;color:#b64c3f;font-size:11px}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,20px);background:var(--brown);color:white;padding:11px 16px;border-radius:12px;font-size:12px;opacity:0;pointer-events:none;transition:.2s;box-shadow:0 8px 25px #49302730}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:700px){.shell{padding:16px 15px 25px}.topbar{padding-bottom:19px}.welcome{padding:23px 21px;margin-bottom:14px}.welcome h1{font-size:24px}.welcome .muted{font-size:12px}.moon-cloud{transform:scale(.78);transform-origin:right center;width:103px;margin-left:-24px}.grid{grid-template-columns:1fr;gap:12px}.card{padding:18px 18px;border-radius:18px}.checklist-card{order:0}.log-card{order:1}.summary-card{order:2}.timeline-card{order:3}.extras{gap:7px}.extras select,.extras input{padding:9px 8px}.extras select{max-width:130px}.actions{gap:6px}.action{border-radius:13px;padding:12px 2px 10px}.top-actions{gap:4px}.auth{margin:7vh 5px;padding:32px 24px}.stats{gap:7px}.stat{padding:9px}.stat strong{font-size:16px}}
.bedtime-setting{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-4px 0 4px;color:var(--muted);font-size:11px;font-weight:700}.bedtime-setting input{border:1px solid var(--line);background:#fffdfa;border-radius:10px;padding:7px 9px;color:var(--brown);font:600 12px 'Avenir Next',Avenir,sans-serif}.bedtime-setting input:focus{outline:2px solid #f6c49f88;border-color:var(--peach)}.timeline-hint{font-size:10px;color:#a08f84;margin:5px 0 10px}.checklist{gap:0}.routine-step{display:grid;grid-template-columns:66px 19px minmax(0,1fr);align-items:center;gap:9px;min-height:40px;border-top:1px solid #f4ebe3;color:#6c594f;font-size:12px}.routine-step time{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.routine-step input{appearance:none;width:18px;height:18px;border:1.5px solid #dfcdbf;border-radius:6px;margin:0;display:grid;place-items:center;cursor:pointer}.routine-step input:checked{background:var(--sage);border-color:var(--sage)}.routine-step input:checked:after{content:'✓';color:white;font-size:12px;font-weight:bold}.routine-step:has(input:checked)>span{text-decoration:line-through;color:#a99a91}.bedtime-step{grid-template-columns:66px 19px minmax(0,1fr) auto;color:var(--brown);font-weight:700}.bedtime-step i{font-style:normal;color:#837597;font-size:17px;text-align:center}.bedtime-step button{border:0;border-radius:9px;padding:7px 9px;background:#eae4f0;color:#655477;font:700 10px 'Avenir Next',Avenir,sans-serif;cursor:pointer}.bedtime-step button:hover{background:#ded5e9}.action-hint{background:#fbf5ef;border-radius:11px;padding:10px 11px;margin:-4px 0 12px;color:#806d61;font-size:11px;line-height:1.5}.action-hint strong{color:var(--brown)}
@media(max-width:390px){.routine-step,.bedtime-step{grid-template-columns:58px 18px minmax(0,1fr) auto;gap:7px}.routine-step:not(.bedtime-step){grid-template-columns:58px 18px minmax(0,1fr)}.bedtime-step button{padding:7px 6px;font-size:9px}}
