@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,700&display=swap');
:root{--ink:#263238;--muted:#6f7773;--cream:#fffaf3;--paper:#fff;--coral:#ef476f;--coral-dark:#d9365e;--pink:#fff0f3;--mint:#dff6e8;--green:#16825d;--yellow:#fff2b8;--line:#ebe6de;--shadow:0 18px 50px rgba(71,52,36,.09)}
*{box-sizing:border-box}html{background:var(--cream);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif}body{margin:0;min-height:100vh;background:radial-gradient(circle at 5% 5%,#fff0e5 0,transparent 25%),radial-gradient(circle at 95% 20%,#f2f9e9 0,transparent 24%)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.08}h1{font-family:'Fraunces',Georgia,serif;font-size:clamp(2.15rem,5vw,4rem);letter-spacing:-.04em;margin-bottom:.6rem}h2{font-family:'Fraunces',Georgia,serif;font-size:1.65rem;letter-spacing:-.025em;margin-bottom:.8rem}p{color:var(--muted);line-height:1.65}.topbar{height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1240px)/2));border-bottom:1px solid rgba(235,230,222,.8);background:rgba(255,250,243,.84);backdrop-filter:blur(16px);position:sticky;top:0;z-index:10}.brand{font-family:'Fraunces',serif;font-weight:700;font-size:1.3rem;display:flex;align-items:center;gap:.55rem}.brand-mark{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--coral);color:#fff;box-shadow:0 7px 18px rgba(239,71,111,.28)}nav{display:flex;align-items:center;gap:24px;font-size:.93rem;font-weight:600}nav form{margin:0}.link-button{border:0;background:none;color:var(--muted);cursor:pointer;padding:0}.container{width:min(1240px,calc(100% - 40px));margin:0 auto;padding:54px 0 80px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;font-weight:700;color:var(--coral);margin-bottom:9px}.card{background:rgba(255,255,255,.92);border:1px solid rgba(235,230,222,.9);border-radius:24px;box-shadow:var(--shadow)}.button{border:1px solid var(--ink);border-radius:999px;background:var(--ink);color:#fff;padding:.75rem 1.15rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;transition:.18s transform,.18s box-shadow}.button:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(38,50,56,.15)}.button.primary{background:var(--coral);border-color:var(--coral)}.button.primary:hover{background:var(--coral-dark)}.button.ghost{background:transparent;color:var(--ink);border-color:var(--line)}.button.soft{background:var(--pink);border-color:var(--pink);color:var(--coral-dark)}.button.small{padding:.55rem .85rem;font-size:.8rem}.button.wide{width:100%;padding:1rem}.button:disabled{opacity:.45;cursor:not-allowed}.flash{padding:14px 18px;border-radius:14px;margin-bottom:24px;font-size:.9rem}.flash.success{background:var(--mint);color:var(--green)}.flash.error{background:var(--pink);color:#a62446}.flash ul{margin-bottom:0}.hero-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:38px}.hero-row p{font-size:1.06rem}.hero-row.compact{margin-bottom:30px}.wave{font-family:system-ui;font-size:.7em}.balance{display:flex;align-items:center;gap:13px;background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:14px 20px;box-shadow:var(--shadow)}.balance>span{font-size:2.1rem;color:var(--coral)}.balance div{display:flex;flex-direction:column}.balance strong{font-family:'Fraunces';font-size:1.7rem;line-height:1}.balance small{color:var(--muted);font-size:.75rem;margin-top:4px}.content-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(290px,.75fr);gap:34px;align-items:start}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:18px}.section-heading h1,.section-heading h2{margin:0}.week-list{display:grid;gap:10px}.day-card{display:grid;grid-template-columns:78px 1fr;background:rgba(255,255,255,.78);border:1px solid var(--line);border-radius:18px;overflow:hidden;min-height:82px}.day-card.today{border-color:#f2adbd;box-shadow:0 8px 22px rgba(239,71,111,.08)}.day-label{display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid var(--line);background:rgba(255,250,243,.78)}.day-label strong{text-transform:uppercase;font-size:.68rem;letter-spacing:.11em;color:var(--muted)}.day-label span{font-family:'Fraunces';font-size:1.6rem}.today .day-label{background:var(--pink)}.today .day-label span{color:var(--coral)}.day-tasks{display:flex;flex-direction:column;justify-content:center;padding:9px 12px}.task-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px}.task-row+.task-row{border-top:1px dashed var(--line)}.task-main{display:flex;align-items:center;gap:14px}.task-main>div{display:flex;flex-direction:column}.task-main small{font-size:.73rem;color:var(--muted);margin-top:3px}.heart-pill{background:var(--pink);color:var(--coral-dark);border-radius:999px;padding:5px 9px;font-size:.76rem;font-weight:700}.empty{color:#a1a49f;font-size:.83rem;padding:7px}.done{color:var(--green);font-size:.78rem;font-weight:700}.waiting,.claimed{color:var(--muted);font-size:.76rem}.leaderboard{padding:25px}.tabs{display:flex;background:#f5f3ee;border-radius:999px;padding:4px;margin:18px 0}.tabs a{flex:1;text-align:center;border-radius:999px;padding:7px;font-size:.75rem;font-weight:700;color:var(--muted)}.tabs a.active{background:#fff;color:var(--ink);box-shadow:0 3px 9px rgba(0,0,0,.06)}.leaderboard ol{list-style:none;padding:0;margin:0}.leaderboard li{display:flex;align-items:center;gap:9px;padding:11px 0}.leaderboard li+li{border-top:1px solid var(--line)}.rank{font-family:'Fraunces';width:18px;color:#aaa}.avatar{width:38px;height:38px;border-radius:50%;background:var(--avatar);color:#fff;display:grid;place-items:center;font-weight:700}.avatar.mini{width:32px;height:32px;flex:0 0 32px}.member{display:flex;flex-direction:column;flex:1;font-size:.88rem}.member small{color:var(--muted);font-size:.7rem}.score{font-size:.87rem;color:var(--coral)}.reward-teaser{margin-top:18px;background:var(--yellow);border-radius:22px;padding:22px;display:flex;gap:14px}.reward-teaser>span{font-size:2rem}.reward-teaser h3{margin-bottom:8px}.reward-teaser a{font-size:.8rem;font-weight:700}.approval-box{background:#273b35;color:#fff;border-radius:24px;padding:24px 27px;margin-bottom:34px}.approval-box .eyebrow{color:#8ce1bd}.approval-box h2{margin:0}.count{background:var(--coral);width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:700}.approval-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.approval-list>div{background:rgba(255,255,255,.08);border-radius:15px;padding:12px;display:flex;align-items:center;gap:10px}.approval-list p{color:#e5eeea;margin:0;flex:1;font-size:.83rem;line-height:1.3}.approval-list .button{border-color:#fff;background:#fff;color:#273b35}.auth-wrap{min-height:calc(100vh - 190px);display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center}.welcome-card{padding:20px 5vw}.welcome-card h1 span{color:var(--coral)}.welcome-card p{font-size:1.1rem;max-width:520px}.heart-orbit{display:flex;gap:16px;color:var(--coral);font-size:1.8rem;margin-top:35px}.heart-orbit span:nth-child(2){transform:translateY(14px);opacity:.55}.heart-orbit span:nth-child(3){opacity:.25}.login-card{padding:42px;max-width:480px;width:100%}.login-card form{display:grid;gap:18px}label{display:grid;gap:7px;font-size:.82rem;font-weight:700;color:#4b5552}input,textarea,select{width:100%;border:1px solid #dedbd4;background:#fff;border-radius:12px;padding:13px 14px;color:var(--ink);outline:none}input:focus,textarea:focus,select:focus{border-color:var(--coral);box-shadow:0 0 0 3px rgba(239,71,111,.1)}label.check{display:flex;align-items:center;grid-template-columns:auto 1fr}label.check input{width:auto}.hint{font-size:.75rem;text-align:center;margin:0}.form-page{max-width:720px;margin:0 auto}.back{display:inline-block;color:var(--muted);font-size:.86rem;font-weight:600;margin-bottom:20px}.form-card{padding:38px}.form-card form{display:grid;gap:19px;margin-top:28px}.field-grid{display:grid;grid-template-columns:1fr 2fr;gap:14px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.rewards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.reward-card{padding:25px;min-height:255px;display:flex;flex-direction:column}.reward-icon{font-size:2rem;margin-bottom:18px}.reward-card p{font-size:.88rem}.reward-bottom{margin-top:auto;display:flex;justify-content:space-between;align-items:center}.reward-bottom>strong{font-family:'Fraunces';font-size:1.3rem;color:var(--coral)}.inline-form{margin-top:28px;padding:25px}.inline-form form{display:grid;grid-template-columns:1.2fr 1.7fr .6fr auto;gap:10px}.admin-heading{align-items:center}.table-card{overflow:hidden}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:16px 20px;border-bottom:1px solid var(--line)}th{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#faf8f4}code{background:var(--pink);color:var(--coral-dark);padding:4px 7px;border-radius:6px}
@media(max-width:900px){.content-grid{grid-template-columns:1fr}.auth-wrap{grid-template-columns:1fr;gap:20px}.welcome-card{padding:10px}.rewards-grid{grid-template-columns:repeat(2,1fr)}.approval-list{grid-template-columns:1fr}.inline-form form{grid-template-columns:1fr 1fr}.inline-form form button{grid-column:2}.hero-row{align-items:flex-start}}
@media(max-width:620px){.container{width:min(100% - 24px,1240px);padding-top:30px}.topbar{padding:0 14px;height:64px}.brand{font-size:1.1rem}.brand-mark{width:31px;height:31px}nav{gap:13px}nav a{font-size:.78rem}h1{font-size:2.35rem}.hero-row{display:grid;gap:18px}.balance{justify-self:start}.section-heading{align-items:center}.section-heading .button{font-size:.78rem;padding:.65rem .8rem}.day-card{grid-template-columns:60px 1fr}.task-row{align-items:flex-start;flex-direction:column}.task-action{align-self:stretch}.task-action form .button{width:100%}.rewards-grid{grid-template-columns:1fr}.inline-form form{grid-template-columns:1fr}.inline-form form button{grid-column:auto}.field-grid{grid-template-columns:1fr}.form-card,.login-card{padding:25px}.welcome-card{display:none}.auth-wrap{display:flex;justify-content:center}.approval-list>div{flex-wrap:wrap}.approval-list form{width:100%}.approval-list .button{width:100%}.table-card{overflow-x:auto}th,td{white-space:nowrap;padding:13px}}
.member-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:28px}.member-card{padding:20px;display:flex;align-items:center;gap:15px}.member-card>div{flex:1}.member-card h2{font-family:'DM Sans';font-size:1rem;margin:0 0 3px}.member-card p{font-size:.75rem;margin:0 0 7px}.member-card>strong{color:var(--coral)}.avatar.large{width:50px;height:50px}.role-pill{background:#f5f3ee;border-radius:999px;padding:4px 8px;font-size:.67rem;font-weight:700}.member-form{max-width:760px;margin:0 auto}@media(max-width:620px){.member-grid{grid-template-columns:1fr}.topbar nav a:nth-child(3){display:none}}

/* Responsive safety: all calendar content must stay inside a phone viewport. */
html,body{overflow-x:hidden}.content-grid,.content-grid>*,.week-list,.day-tasks,.task-row,.task-main,.task-main>div{min-width:0}.day-card{grid-template-columns:78px minmax(0,1fr)}.task-main strong{overflow-wrap:anywhere}
@media(max-width:620px){
  .topbar{padding:0 14px}.brand{font-size:1.05rem}.topbar nav{gap:0}.topbar nav>a{display:none}.link-button{font-size:.78rem}
  h1{font-size:2.25rem;overflow-wrap:anywhere}.hero-row p{font-size:.98rem}.section-heading{align-items:flex-start;gap:12px}.section-heading>div{min-width:0}.section-heading h2{font-size:1.45rem}.section-heading .button{font-size:.75rem;padding:.62rem .75rem;white-space:nowrap}
  .day-card{grid-template-columns:58px minmax(0,1fr)}.day-tasks{padding:8px}.task-row{gap:8px}.task-main{width:100%;justify-content:space-between;gap:8px}.heart-pill{flex:0 0 auto}
}

.mobile-nav{display:none}.approval-actions{display:flex;gap:7px;align-items:center}.approval-list .button.secondary{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
.heart-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.heart-summary>div{min-width:130px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:16px 20px;box-shadow:var(--shadow);display:grid;grid-template-columns:auto 1fr;column-gap:10px}.heart-summary span{grid-row:1/3;color:var(--coral);font-size:1.6rem;align-self:center}.heart-summary strong{font-family:'Fraunces';font-size:1.55rem;line-height:1}.heart-summary small{color:var(--muted)}.history-card{max-width:820px;padding:28px}.history-list article{display:flex;align-items:center;gap:13px;padding:14px 0}.history-list article+article{border-top:1px solid var(--line)}.history-icon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;flex:0 0 40px}.history-icon.plus{background:var(--pink);color:var(--coral)}.history-icon.minus{background:var(--yellow)}.history-list article>div{display:flex;flex-direction:column;min-width:0;flex:1}.history-list article>div strong{overflow-wrap:anywhere}.history-list article small{color:var(--muted);font-size:.72rem;margin-top:3px}.history-amount{white-space:nowrap}.history-amount.plus{color:var(--green)}.history-amount.minus{color:var(--coral-dark)}.empty-history{margin:0}.pagination{margin-top:20px}
@media(max-width:620px){
  .container{padding-bottom:calc(100px + env(safe-area-inset-bottom))}
  .mobile-nav{position:fixed;z-index:20;display:flex;left:8px;right:8px;bottom:8px;padding:7px 6px calc(7px + env(safe-area-inset-bottom));border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.95);box-shadow:0 12px 35px rgba(38,50,56,.18);backdrop-filter:blur(16px);gap:2px}
  .mobile-nav a{min-width:0;flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;color:var(--muted);font-size:.62rem;font-weight:700;border-radius:13px}.mobile-nav a span{font-size:1rem;line-height:1}.mobile-nav a.active{background:var(--pink);color:var(--coral-dark)}
  .heart-summary{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}.heart-summary>div{min-width:0;padding:13px}.history-card{padding:20px 15px}.history-list article{gap:9px}.history-icon{width:34px;height:34px;flex-basis:34px}.history-amount{font-size:.8rem}.approval-actions{width:100%;display:grid;grid-template-columns:1fr 1.4fr}.approval-actions form,.approval-actions .button{width:100%}.member-card>div{min-width:0}.member-card p{overflow-wrap:anywhere}
}
@media(max-width:350px){
  .container{width:calc(100% - 18px)}.topbar{padding:0 10px}.brand{font-size:.98rem}.section-heading{flex-wrap:wrap}.section-heading .button{margin-left:auto}.day-card{grid-template-columns:52px minmax(0,1fr)}.day-label span{font-size:1.35rem}.task-main{align-items:flex-start}.heart-summary{grid-template-columns:1fr}.mobile-nav a{font-size:.57rem}.history-list article{align-items:flex-start}
}

.heading-actions{display:flex;gap:8px}.weekday-field{border:1px solid var(--line);border-radius:16px;padding:16px;margin:0}.weekday-field legend{font-size:.82rem;font-weight:700;padding:0 7px}.weekday-field>small{display:block;color:var(--muted);margin-top:10px}.weekday-options{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.weekday-options label{display:block}.weekday-options input{position:absolute;opacity:0;pointer-events:none}.weekday-options span{display:grid;place-items:center;padding:10px 4px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:.72rem}.weekday-options input:checked+span{background:var(--pink);border-color:var(--coral);color:var(--coral-dark)}
.management-list{display:grid;gap:12px}.management-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px}.management-main{display:flex;align-items:center;gap:15px;min-width:0}.management-main>div{min-width:0}.management-main h2{font-family:'DM Sans';font-size:1rem;margin:0 0 4px}.management-main p{font-size:.78rem;margin:0 0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.management-icon{width:42px;height:42px;display:grid;place-items:center;flex:0 0 42px;background:var(--pink);border-radius:14px;color:var(--coral);font-size:1.25rem}.meta-row{display:flex;gap:7px;flex-wrap:wrap}.meta-row span{background:#f6f4ef;border-radius:999px;padding:4px 8px;color:var(--muted);font-size:.68rem;font-weight:700}.management-side{display:grid;grid-template-columns:auto auto;align-items:center;justify-items:end;column-gap:12px;flex:0 0 auto}.management-side small{color:var(--muted);font-size:.65rem}.management-side strong{font-size:.8rem}.management-side .button,.management-side .done{grid-row:1/3;grid-column:2}.empty-state{padding:32px;text-align:center}.empty-state p{margin-bottom:0}.reward-card-top{display:flex;align-items:flex-start;justify-content:space-between}.reward-card.inactive{opacity:.65}.edit-link{color:var(--coral-dark);font-size:.74rem;font-weight:700;text-decoration:underline;text-underline-offset:3px}.member-actions{display:flex;flex-direction:column;align-items:flex-end;gap:7px}.member-actions strong{color:var(--coral)}
.view-switch{display:flex;width:max-content;background:#f1eee8;padding:4px;border-radius:999px;margin:-18px 0 28px}.view-switch a{padding:7px 18px;border-radius:999px;color:var(--muted);font-size:.76rem;font-weight:700}.view-switch a.active{background:#fff;color:var(--ink);box-shadow:0 3px 9px rgba(0,0,0,.06)}.calendar-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.calendar-heading h1{margin-bottom:.4rem}.calendar-controls{display:flex;gap:7px;margin-bottom:14px}.calendar-controls .button{min-width:44px}.calendar-switch{margin:0 0 18px}.month-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));overflow:hidden}.month-weekday{padding:10px;text-align:center;background:#f8f6f1;border-bottom:1px solid var(--line);color:var(--muted);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.month-day{min-height:132px;padding:9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}.month-day:nth-child(7n+7){border-right:0}.month-day.outside{background:#faf9f6;color:#b6b2aa}.month-day.today{background:var(--pink)}.month-number{display:grid;place-items:center;width:25px;height:25px;font-family:'Fraunces';font-weight:700}.today .month-number{background:var(--coral);color:#fff;border-radius:50%}.month-tasks{display:grid;gap:4px;margin-top:6px}.month-task{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:4px;align-items:center;padding:5px 6px;border-radius:7px;background:#f3f1ec;font-size:.6rem;min-width:0}.month-task strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-task span{color:var(--muted)}.month-task em{font-style:normal;color:var(--coral-dark);font-weight:700}.month-task.status-completed{background:var(--mint);color:var(--green)}.month-task.status-claimed,.month-task.status-pending_approval{background:var(--yellow)}.month-agenda{display:none}.agenda-day{display:grid;grid-template-columns:60px 1fr;overflow:hidden}.agenda-date{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#faf7f1;border-right:1px solid var(--line);padding:14px 8px}.agenda-date strong{font-size:.65rem;text-transform:uppercase;color:var(--muted)}.agenda-date span{font-family:'Fraunces';font-size:1.5rem}.agenda-tasks{padding:8px 12px}.agenda-tasks>div{display:flex;align-items:center;gap:9px;padding:8px 0}.agenda-tasks>div+div{border-top:1px solid var(--line)}.agenda-tasks>div>div{display:flex;flex-direction:column;min-width:0}.agenda-tasks strong{font-size:.82rem}.agenda-tasks small{font-size:.67rem;color:var(--muted)}.status-dot{width:9px;height:9px;border-radius:50%;background:#bbb;flex:0 0 9px}.status-dot.status-open{background:var(--coral)}.status-dot.status-completed{background:var(--green)}.status-dot.status-claimed,.status-dot.status-pending_approval{background:#e8b229}
@media(max-width:620px){
  .heading-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.heading-actions .button{width:100%;white-space:nowrap}.weekday-options{grid-template-columns:repeat(4,1fr)}.management-row{align-items:flex-start;flex-direction:column;padding:17px}.management-main{align-items:flex-start;width:100%}.management-main p{white-space:normal}.management-side{width:100%;grid-template-columns:1fr auto;justify-items:start}.management-side .button,.management-side .done{justify-self:end}.member-actions{flex:0 0 auto}.calendar-heading{align-items:flex-start;flex-direction:column}.calendar-controls{margin:0}.month-calendar{display:none}.month-agenda{display:grid;gap:10px}.calendar-switch{margin-top:18px}.view-switch{margin-top:-12px}.reward-card-top .reward-icon{margin-bottom:0}
}
@media(max-width:350px){.weekday-options{grid-template-columns:repeat(3,1fr)}.management-main{gap:10px}.management-icon{width:36px;height:36px;flex-basis:36px}.calendar-controls .button{padding:.65rem .8rem}.member-card{gap:10px}.member-actions{font-size:.8rem}}
.weekday-options input{width:1px;height:1px}
