:root{color:#322824;background:#f7efe9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box;min-width:0}body{margin:0;min-width:320px;min-height:100vh;background:#f7efe9}button,input{font:inherit}button{cursor:pointer}.page{width:min(860px,calc(100% - 28px));margin:0 auto;padding:28px 0}.hero,.panel{border:1.5px solid #e6dad2;background:#fffdfa;box-shadow:0 18px 38px -30px #462d2080}.hero{margin-bottom:16px;padding:clamp(22px,5vw,34px);border-radius:26px}.hero.is-dad{background:#e8f5eb;border-color:#b8dec2}.hero.is-mom{background:#fbe7e3;border-color:#efc0b7}.hero.is-split{background:#fff3d8;border-color:#e8cf90}.eyebrow{margin:0 0 8px;color:#6f625b;font-size:.9rem;font-weight:700}h1,h2,p{margin-top:0}h1{margin-bottom:8px;color:#2f8f5b;font-size:clamp(3.5rem,12vw,6.2rem);line-height:.9;letter-spacing:0;white-space:nowrap}.is-mom h1,.is-mom strong{color:#c94232}.is-split h1,.is-split strong{color:#9a6a08}.status{margin-bottom:0;color:#463936;font-size:clamp(1.15rem,4vw,1.6rem);font-weight:750;white-space:nowrap}.grid{display:grid;gap:16px}.panel{border-radius:26px;padding:clamp(18px,4vw,32px)}.panel h2{margin-bottom:14px;font-size:1.35rem}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px;text-align:left}.panel-head button{min-width:54px;height:54px;border:1px solid #e2d4cb;border-radius:18px;background:#fbf7f3;color:#443531;font-size:1.65rem;font-weight:800}.panel-head h2{margin-bottom:0;font-size:clamp(2rem,4vw,2.6rem);line-height:1;letter-spacing:0;white-space:nowrap}.calendar-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}.text-button{width:auto;min-width:118px;border:1px solid #e2d4cb;background:#fbf7f3;color:#6f625b;font-size:1.2rem;font-weight:850}.weekdays,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekdays{gap:10px;margin-bottom:14px;color:#776a63;font-size:.8rem;font-weight:800;text-align:center;text-transform:uppercase}.days{gap:10px}.day{position:relative;display:flex;min-height:92px;align-items:flex-start;justify-content:flex-start;border:2px solid transparent;border-radius:18px;padding:14px 14px 12px;background:#f5f0ec;color:#322824;font-size:clamp(1.25rem,3vw,1.65rem);font-weight:800}.day:after{position:absolute;left:14px;bottom:14px;width:34px;height:5px;border-radius:3px;background:currentColor;content:""}.day.handoff:before{position:absolute;top:14px;right:14px;width:9px;height:9px;border:1.8px solid currentColor;border-radius:50%;content:""}.day.is-dad{background:#dff0e4;color:#2f8f5b}.day.is-mom{background:#f7d9d3;color:#c94232}.day.is-split{background:#ffefc7;color:#9a6a08}.day.muted{background:transparent;color:#bdb5b0;opacity:1}.day.muted:after,.day.muted:before{display:none}.day.today{border-color:currentColor}.day.selected{box-shadow:0 0 0 2px #322824}.legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:16px;color:#5f524d;font-size:.9rem;font-weight:750}.legend span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.legend i{display:inline-block;width:20px;height:5px;border-radius:3px}.legend .dad{background:#2f8f5b}.legend .mom{background:#c94232}.legend .split{background:#c89422}.legend .handoff{width:9px;height:9px;border:1.8px solid #5f524d;background:transparent;border-radius:50%}.stack{display:grid;gap:16px}.search-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.search-controls>label{flex:1 1 190px}.search-controls.range>label{flex-basis:150px}.switch-row{display:flex;align-items:center;gap:8px;min-height:44px;margin-top:10px;padding-bottom:1px}.switch-row>button:not(.switch){border:0;background:transparent;color:#7b665f;font-size:.9rem;font-weight:800;white-space:nowrap}.switch-row>button.active{color:#402b27}.switch{display:flex;width:54px;height:32px;align-items:center;justify-content:flex-start;border:0;border-radius:999px;padding:4px;background:#402b27}.switch.range{justify-content:flex-end}.switch span{width:24px;height:24px;border-radius:50%;background:#fffdfa}input{width:100%;min-height:44px;border:1px solid #ded0c7;border-radius:8px;padding:10px 12px;background:#fbf7f3;color:#322824;font-weight:700}.result{margin-top:14px;border-radius:8px;padding:16px;background:#f5f0ec}.result p{margin-bottom:6px;color:#6f625b;font-size:.9rem;font-weight:700}.result strong{display:block;color:#2f8f5b;font-size:1.45rem;line-height:1.1}.result span{display:block;margin-top:10px;color:#544742;font-weight:650}.range-inputs{display:grid;grid-template-columns:1fr 1fr;gap:10px}label{color:#6f625b;font-size:.85rem;font-weight:750;white-space:nowrap}label input{margin-top:5px}.totals{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.totals div{border-radius:8px;padding:14px}.totals div:first-child{background:#dff0e4;color:#2f8f5b}.totals div:last-child{background:#f7d9d3;color:#c94232}.totals strong,.totals span{display:block}.totals strong{font-size:2rem;line-height:1}.totals span{margin-top:4px;font-size:.85rem;font-weight:750}.blocks{display:grid;gap:7px;margin:14px 0 0;padding:0;list-style:none}.blocks li{border-radius:8px;background:#f5f0ec;padding:10px 12px;color:#4b3e39;font-size:.92rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:760px){.page{width:min(100% - 24px,430px);padding:24px 0}h1{font-size:clamp(2.65rem,14vw,3.6rem)}.eyebrow{font-size:.78rem}.status{font-size:.96rem;line-height:1.15}.panel{padding:20px 16px}.range-inputs{grid-template-columns:1fr}.hero{padding:22px 18px}.weekdays,.days{gap:5px}.weekdays{margin-bottom:10px;font-size:.68rem}.day{min-height:41px;border-radius:9px;padding:5px;border-width:1.5px;font-size:.86rem}.day:after{left:6px;bottom:6px;width:17px;height:4px}.day.handoff:before{top:5px;right:5px;width:5px;height:5px;border-width:1.5px}.panel-head{display:flex;align-items:center;gap:10px;margin-bottom:18px}.panel-head h2{font-size:clamp(1.5rem,7vw,1.85rem)}.calendar-actions{margin-top:0;gap:6px}.panel-head button{min-width:34px;height:34px;border-radius:11px;font-size:1.1rem}.text-button{min-width:72px;font-size:.95rem}.legend{gap:13px 16px;font-size:.86rem}.search-controls,.search-controls.range{display:grid;grid-template-columns:1fr;gap:10px}.search-controls>label,.search-controls.range>label{width:100%;flex:none}input{display:block;max-width:100%;min-height:42px;font-size:.95rem}.switch-row{flex-wrap:wrap;gap:8px}.totals{gap:10px}.blocks li{font-size:.8rem;line-height:1.25}}
