:root{--cream:#f7f3eb;--paper:#fffdf9;--ink:#26332f;--muted:#75817c;--green:#396d5b;--green2:#dce9df;--blue:#dfe9f0;--yellow:#f4e8b9;--peach:#f2ddd0;--line:#e6e2d9;--shadow:0 8px 28px rgba(47,61,55,.07);font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--cream)}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,textarea,select{font:inherit;color:inherit}button,a{cursor:pointer}aside{position:fixed;inset:0 auto 0 0;width:224px;padding:28px 18px;background:#f0ede4;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:3}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-size:20px;letter-spacing:2px;margin:0 8px 35px}.brand span{width:36px;height:36px;border-radius:50% 50% 45% 55%;display:grid;place-items:center;background:var(--green);color:white;font-family:Fraunces;font-size:23px}.brand b{font-weight:700}nav{display:grid;gap:5px}aside nav a{display:flex;gap:13px;align-items:center;padding:11px 13px;border-radius:10px;color:#69736f;text-decoration:none;font-size:14px;font-weight:600}aside nav a i{font-style:normal;width:21px;text-align:center;font-size:19px}aside nav a.active{background:#dce6de;color:var(--green)}.parent-switch{margin-top:auto;border-top:1px solid var(--line);padding:18px 9px 0}.parent-switch small{display:block;color:var(--muted);font-size:11px}.parent-switch button{border:0;background:transparent;padding:7px 0;font-weight:600;width:100%;text-align:left}main{margin-left:224px;padding:26px 42px 60px;max-width:1600px}header{height:70px;display:flex;align-items:flex-start;justify-content:space-between}header small{color:var(--muted)}h1{font-family:Fraunces;font-size:26px;margin:3px 0}.avatar{width:38px;height:38px;background:var(--green);color:white;border-radius:50%;display:grid;place-items:center;font-weight:700}.welcome{margin:22px 0 26px;padding:30px 36px;border-radius:20px;background:#dfeadd;display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:700;color:#75817c}.welcome h2,.hero-points h2{font-family:Fraunces;font-size:32px;margin:9px 0 4px}.welcome p,.page-intro p,.toolbar p,.hero-points p{margin:0;color:#62716b}.primary,.secondary,.danger{border:0;border-radius:10px;padding:11px 16px;font-weight:700;text-decoration:none;display:inline-block}.primary{background:var(--green);color:white}.primary:disabled{opacity:.4;cursor:not-allowed}.secondary{background:#edf1ed;color:var(--green);border:1px solid #d9e2da}.danger{background:#f7e1dc;color:#963e2e}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px}.metrics.four{grid-template-columns:repeat(4,1fr)}.metric{background:var(--paper);border-radius:16px;padding:19px 22px;box-shadow:var(--shadow);border-top:4px solid var(--green2)}.metric.blue{border-color:#c9dce7}.metric.yellow{border-color:#ead47b}.metric.peach{border-color:#e8beaa}.metric small{font-size:10px;letter-spacing:1px;color:var(--muted);display:block}.metric strong{font-family:Fraunces;font-size:28px;display:block;margin:7px 0}.metric span{font-size:12px;color:var(--muted)}.dash-grid{display:grid;grid-template-columns:1.55fr .8fr;gap:16px}.card{background:var(--paper);border:1px solid rgba(230,226,217,.8);border-radius:16px;padding:23px;box-shadow:var(--shadow);margin-bottom:16px}.card h3{margin:7px 0 15px;font-size:18px}.card-head,.toolbar,.form-head{display:flex;justify-content:space-between;align-items:center;gap:18px}.card-head a,.text-btn{font-size:12px;color:var(--green);text-decoration:none;border:0;background:none}.calendar-card{grid-row:span 2}.goal-card{text-align:center}.goal-icon{font-size:34px;color:var(--green);margin:20px 0 7px}.goal-card b{font-size:22px}.goal-card b small{font-size:12px;color:var(--muted)}.progress{height:8px;background:#ece9e1;border-radius:10px;overflow:hidden;margin:15px 0 7px}.progress i{height:100%;display:block;background:var(--green);border-radius:10px}.goal-card>span:last-child{font-size:11px;color:var(--muted)}.principle{display:flex;align-items:center;gap:18px;background:#f1e8dc}.principle>i{font-style:normal;font-size:28px}.principle h3{margin:0 0 3px}.principle p{margin:0;color:var(--muted);font-size:13px}.event{display:grid;grid-template-columns:46px 3px 1fr;gap:14px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.event:last-child{border:0}.event time{text-align:center}.event time b{font-size:20px;display:block}.event time small{font-size:9px;color:var(--muted)}.event>i{width:3px;height:32px;border-radius:5px;background:#dfb868}.event>div b,.event>div span{display:block}.event>div span{color:var(--muted);font-size:12px;margin-top:3px}em{font-style:normal;font-size:8px;background:var(--yellow);padding:2px 5px;border-radius:5px}.recognition-row{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.recognition-row:last-child{border:0}.recognition-row>i{font-style:normal;width:34px;height:34px;border-radius:50%;background:var(--yellow);display:grid;place-items:center;color:#856f1a}.recognition-row p{margin:4px 0;color:#5e6965}.recognition-row small{color:var(--muted)}.empty{padding:28px;text-align:center;color:var(--muted);font-size:13px}.mobile-nav{display:none}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:1000px}.quick-grid .diary-quick{grid-column:span 2}.point-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.point-btn{border:0;border-radius:14px;background:var(--yellow);padding:23px 10px;font-family:Fraunces;font-size:25px;color:#635817}.action-row{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;width:100%;border:0;border-top:1px solid var(--line);background:transparent;padding:14px 2px;text-align:left}.action-row i{width:36px;height:36px;border-radius:10px;background:#e4eee7;display:grid;place-items:center;font-style:normal}.action-row span b,.action-row span small{display:block}.action-row span small{color:var(--muted);margin-top:2px}.toolbar{margin:15px 0 20px}.toolbar>div{display:flex;gap:8px}.weekly{display:grid;grid-template-columns:180px 1fr;gap:20px;align-items:center}.weekly small{grid-column:2}.table .tr,.tr{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.tr i{font-style:normal;width:33px;height:33px;display:grid;place-items:center;border-radius:50%}.tr i.income{background:var(--green2);color:var(--green)}.tr i.spend{background:var(--peach)}.tr>div b,.tr>div small,.tr>span b,.tr>span small{display:block}.tr small{color:var(--muted)}.tr>span{text-align:right}.pos{color:var(--green)}.hero-points{background:#e7eedc;border-radius:18px;padding:28px 35px;margin:15px 0 18px;display:flex;justify-content:space-between;align-items:center}.point-summary{text-align:center;background:var(--paper);border-radius:50%;width:145px;height:145px;display:flex;flex-direction:column;justify-content:center;box-shadow:var(--shadow)}.point-summary b{font-family:Fraunces;font-size:42px}.point-summary span,.point-summary small{font-size:11px}.point-summary small{color:var(--muted);margin-top:6px}.award{max-width:700px}.reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.reward{display:flex;flex-direction:column;min-height:190px}.reward>b{font-family:Fraunces;font-size:33px;margin-top:13px}.reward>b i{font:600 11px 'DM Sans';margin-left:3px}.reward>div{margin-top:auto;display:flex;gap:8px}.reward.disabled{opacity:.55}.calendar-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.private-note{background:#e8ece7;border-radius:14px;padding:16px 20px;margin:15px 0;display:flex;gap:14px;align-items:center}.private-note i{font-size:26px;font-style:normal}.private-note p{margin:2px 0;color:var(--muted)}form label{display:block;font-size:12px;font-weight:600;margin:15px 0}input,textarea,select{display:block;width:100%;border:1px solid #dcded8;background:#fff;border-radius:9px;padding:11px;margin-top:6px;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--green)}.checks{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 22px}.checks label{margin:0}.checks input{display:none}.checks span{display:block;border:1px solid var(--line);padding:9px 12px;border-radius:20px;font-weight:500;background:#faf9f5}.checks input:checked+span{background:var(--green2);border-color:#9eb7a7;color:var(--green)}.form-head>span{font-size:11px;color:var(--muted)}details{border-bottom:1px solid var(--line);padding:14px 0}summary{cursor:pointer;display:flex;justify-content:space-between}summary span{color:var(--muted);font-size:12px}.safety{border-left:5px solid #d7a47f;background:#fffaf5}.settings-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:18px}.section{display:block;margin-top:28px}.split{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.feed{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line)}.feed small{display:block;color:var(--muted)}.toggle input{display:none}.toggle span{display:block;width:42px;height:24px;border-radius:20px;background:#ccc;position:relative}.toggle span:after{content:'';position:absolute;width:18px;height:18px;background:white;border-radius:50%;top:3px;left:3px;transition:.2s}.toggle input:checked+span{background:var(--green)}.toggle input:checked+span:after{left:21px}.modal-back{position:fixed;inset:0;background:rgba(23,34,30,.42);display:grid;place-items:center;z-index:10;padding:20px}.modal{width:min(460px,100%);background:var(--paper);border-radius:18px;padding:27px;position:relative;box-shadow:0 25px 70px #18231f44}.modal h2{font-family:Fraunces;margin:0 0 18px}.close{position:absolute;right:15px;top:13px;border:0;background:transparent;font-size:25px;color:var(--muted)}.hint{color:var(--muted);font-size:12px}#toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,20px);background:var(--green);color:white;padding:12px 18px;border-radius:10px;opacity:0;pointer-events:none;z-index:20;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}#toast.bad{background:#9b4c3b}
.auth-page{margin:0;max-width:none;min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 10%,#e4eddf,transparent 34%),var(--cream)}.auth-card{width:min(460px,100%);background:var(--paper);padding:42px;border-radius:22px;box-shadow:0 22px 70px rgba(47,61,55,.13)}.auth-card .brand{margin:0 0 38px}.auth-card h1{font-size:38px;margin:10px 0}.auth-card>p{color:var(--muted);line-height:1.6}.auth-card form{margin:28px 0 18px}.auth-card form .primary{width:100%;margin-top:7px}.auth-card>small{color:var(--muted);line-height:1.5;display:block}.display-main{margin:0 auto;padding:30px 48px;max-width:1600px}.display-main .welcome{margin-top:10px}
@media(max-width:900px){aside{width:76px;padding:25px 10px}.brand b,aside nav a span,.parent-switch small{display:none}.brand{margin-left:10px}.brand span{flex:none}aside nav a{justify-content:center}.parent-switch button{font-size:11px;text-align:center}main{margin-left:76px;padding:22px}.dash-grid,.settings-grid{grid-template-columns:1fr}.calendar-card{grid-row:auto}.metrics.four{grid-template-columns:repeat(2,1fr)}.calendar-columns,.reward-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){aside{display:none}main{margin:0;padding:18px 14px 88px}header{height:62px}.mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:8px;right:8px;bottom:8px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:7px;z-index:6;box-shadow:0 8px 30px #2f3d3722}.mobile-nav a{text-decoration:none;color:var(--muted);display:flex;flex-direction:column;text-align:center;gap:2px}.mobile-nav a.active{color:var(--green)}.mobile-nav i{font-style:normal;font-size:19px}.mobile-nav small{font-size:9px}.welcome{padding:23px;display:block}.welcome h2,.hero-points h2{font-size:27px}.welcome .primary{margin-top:18px}.metrics,.metrics.four{grid-template-columns:1fr 1fr}.metrics .metric:nth-child(3){grid-column:span 2}.metric{padding:15px}.metric strong{font-size:23px}.dash-grid,.quick-grid,.calendar-columns,.reward-grid,.settings-grid{grid-template-columns:1fr}.quick-grid .diary-quick{grid-column:auto}.card{padding:19px}.toolbar{align-items:flex-start;flex-direction:column}.toolbar>div{width:100%}.toolbar button{flex:1}.weekly{display:block}.weekly small{display:block}.hero-points{padding:22px;display:block}.point-summary{width:110px;height:110px;margin:18px auto 0}.point-summary b{font-size:33px}.calendar-columns{display:block}.split{grid-template-columns:1fr}.form-head{align-items:flex-start;flex-direction:column}.checks{gap:6px}.checks span{padding:8px 10px;font-size:11px}.modal{padding:23px}.welcome p{font-size:13px}}
@media(max-width:620px){.calendar-card{display:none}}
.display-main .welcome{display:none}
.display-controls{display:flex;gap:10px;align-items:center}
.welcome-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.correction-list>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.correction-list>div:last-child{border:0}.correction-list span b,.correction-list span small{display:block}.correction-list span small{color:var(--muted);margin-top:3px}.correction-list+.empty{padding:15px}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;flex-wrap:wrap}.cal-nav,.cal-actions{display:flex;align-items:center;gap:10px}.cal-nav h2{margin:0 0 0 8px;min-width:220px}.icon-button{width:40px;height:40px;border:1px solid var(--line,#ddd8ce);border-radius:10px;background:#fff;font-size:25px;color:#315e55}.view-switch{display:flex;border:1px solid var(--line,#ddd8ce);border-radius:10px;overflow:hidden;background:#fff}.view-switch button{border:0;border-right:1px solid var(--line,#ddd8ce);background:#fff;padding:11px 15px;color:#586763}.view-switch button:last-child{border:0}.view-switch button.active{background:#dce9e3;color:#235f52;font-weight:700}.google-calendar{padding:0;overflow:hidden}.month-weekdays{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid #e4e0d7;background:#faf9f5}.month-weekdays b{padding:12px;text-align:center;font-size:12px;color:#6f7975;text-transform:uppercase;letter-spacing:.08em}.month-grid{display:grid;grid-template-columns:repeat(7,1fr)}.month-day{min-height:128px;border-right:1px solid #e7e3da;border-bottom:1px solid #e7e3da;padding:7px;overflow:hidden}.month-day:nth-child(7n){border-right:0}.month-day time{display:grid;place-items:center;width:28px;height:28px;margin:0 0 4px auto;font-size:13px}.month-day.outside{background:#faf9f6;color:#aaa}.month-day.today time,.week-day.today header b{background:#347565;color:#fff;border-radius:50%}.cal-event{display:block;width:100%;border:0;border-left:4px solid var(--event-colour);border-radius:4px;background:color-mix(in srgb,var(--event-colour) 14%,white);color:#233c36;text-align:left;padding:5px 7px;margin:3px 0;font-size:12px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-event:hover{filter:saturate(1.15);transform:translateY(-1px)}.cal-event.all-day{background:var(--event-colour);color:#fff;border-left:0}.cal-event span{font-weight:700}.month-day>small{display:block;padding:4px;color:#60706c}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));min-height:560px;overflow-x:auto}.week-day{border-right:1px solid #e7e3da}.week-day:last-child{border:0}.week-day>header{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px;border-bottom:1px solid #e7e3da}.week-day>header small{text-transform:uppercase;color:#71807b}.week-day>header b{display:grid;place-items:center;width:34px;height:34px;font-size:18px}.week-day>div{padding:8px}.cal-empty{display:block;text-align:center;color:#9aa29f;font-size:12px;padding:20px 5px}.agenda-list section{display:grid;grid-template-columns:115px 1fr;gap:18px;padding:16px 20px;border-bottom:1px solid #e7e3da}.agenda-list section:last-child{border:0}.agenda-list time{display:flex;flex-direction:column}.agenda-list time b{font-size:16px}.agenda-list time small{color:#77827e}.calendar-legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:14px;color:#64716d;font-size:13px}.calendar-legend span{display:flex;align-items:center;gap:7px}.calendar-legend i{width:10px;height:10px;border-radius:50%}.event-modal{position:relative}.event-colour{display:block;width:38px;height:6px;border-radius:4px;margin-bottom:18px}
.dash-week{display:grid;grid-template-columns:repeat(7,minmax(86px,1fr));overflow-x:auto;border:1px solid #e7e3da;border-radius:12px;margin-top:8px}.dash-week>section{min-height:185px;border-right:1px solid #e7e3da;background:#fff}.dash-week>section:nth-child(7n){border-right:0}.dash-week>section:nth-child(n+8){border-top:1px solid #e7e3da}.dash-week>section>header{display:flex;align-items:center;justify-content:space-between;padding:9px;border-bottom:1px solid #ece8df;background:#faf9f5}.dash-week>section>header small{text-transform:uppercase;color:#73807c;font-size:10px}.dash-week>section>header b{display:grid;place-items:center;width:25px;height:25px}.dash-week>section.today>header b{border-radius:50%;background:#347565;color:#fff}.dash-week>section>div{padding:5px}.dash-week .cal-event{white-space:normal;font-size:10px;padding:5px}.dash-week .cal-empty{padding:24px 2px}.display-main .calendar-card{min-width:0}
@media(max-width:850px){.calendar-toolbar,.cal-actions{align-items:stretch}.cal-actions{width:100%;flex-wrap:wrap}.view-switch{flex:1}.view-switch button{flex:1}.month-day{min-height:88px;padding:3px}.month-weekdays b{padding:8px 2px;font-size:10px}.cal-event{font-size:10px;padding:4px}.cal-event span{display:none}.cal-nav h2{min-width:0;font-size:20px}.week-grid{grid-template-columns:repeat(7,minmax(150px,1fr))}.agenda-list section{grid-template-columns:82px 1fr;padding:14px 10px}}
.caregiver-main{margin:0 auto;padding:20px 18px 100px;max-width:760px}.caregiver-header{height:auto;align-items:center;margin-bottom:20px}.caregiver-header .brand{margin:0}.caregiver-welcome{background:var(--green2);border-radius:18px;padding:24px;margin-bottom:16px}.caregiver-welcome h1{font-size:32px;margin:7px 0}.caregiver-welcome p{margin:0;color:var(--muted)}.caregiver-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.caregiver-metrics .metric{padding:16px}.caregiver-metrics .metric strong{font-size:24px}.care-point input{display:none}.care-point span{display:grid;place-items:center;background:var(--yellow);border:2px solid transparent;border-radius:13px;padding:18px;font-family:Fraunces;font-size:24px}.care-point input:checked+span{border-color:var(--green);background:#e8edca}.caregiver-nav{position:fixed;left:50%;bottom:12px;transform:translateX(-50%);width:min(420px,calc(100% - 24px));display:grid;grid-template-columns:1fr 1fr;background:var(--ink);border-radius:16px;padding:8px;z-index:5;box-shadow:0 10px 35px #0003}.caregiver-nav a{display:flex;gap:6px;justify-content:center;align-items:center;color:white;text-decoration:none;padding:10px;border-radius:10px}.caregiver-nav small{font-size:11px}.action-row:disabled{opacity:.55;cursor:not-allowed}@media(max-width:620px){.caregiver-metrics{grid-template-columns:1fr 1fr}.caregiver-metrics .metric:first-child{grid-column:span 2}.caregiver-main .card{padding:19px}.caregiver-main .checks{gap:6px}.caregiver-main .checks span{padding:8px 10px}}
.caregiver-avatar{margin-left:auto;margin-right:8px;width:42px;height:42px;font-size:12px}
.regular-tasks{grid-column:span 2}.task-admin-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}.task-admin-row:last-child{border:0}.task-admin-row span b,.task-admin-row span small{display:block}.task-admin-row span small{color:var(--muted);margin-top:3px}.task-admin-row>div{display:flex;gap:8px}.task-delete{color:#963e2e}
.diary-export{border-left:5px solid var(--green)}.export-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.export-recipient{padding:11px 13px;background:var(--green2);border-radius:10px;font-size:13px}.export-log{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.export-log small{display:block;color:var(--muted);margin-top:4px}.export-log>span{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--green);background:var(--green2);padding:6px 9px;border-radius:999px}.export-history{border-top:4px solid var(--blue)}
@media(max-width:620px){.export-fields{grid-template-columns:1fr}.export-log{align-items:flex-start;flex-direction:column}}
