@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Nunito:wght@600;700;800&display=swap');
:root{--ink:#303638;--muted:#777f80;--paper:#e9e6df;--card:#f7f4ed;--line:#ddd7cb;--coral:#f18c78;--gold:#d6a52d;--mint:#dff2e8;--lav:#eee8fa;--shadow:0 8px 28px #59452a0c}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.topbar{height:76px;padding:0 max(22px,calc((100% - 1100px)/2));display:flex;align-items:center;justify-content:space-between;background:#f3efe7;border-bottom:1px solid var(--line)}
body[data-season="spring"]{--paper:#e3e9df}
body[data-season="summer"]{--paper:#e8e4d8}
body[data-season="autumn"]{--paper:#e9e0d5}
body[data-season="winter"]{--paper:#dfe5e8}
body[data-season="spring"] .topbar{background:#e9eee5}
body[data-season="summer"] .topbar{background:#eee9dc}
body[data-season="autumn"] .topbar{background:#eee4d9}
body[data-season="winter"] .topbar{background:#e7ecef}
main{background:transparent}
.brand{display:flex;align-items:center;gap:11px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#e9d7c8;color:#dc826d}.brand-mark svg{width:34px;height:34px}.brand strong{font:800 19px Nunito}.brand small{display:block;color:var(--muted);font-size:11px}.profile-wrap{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted)}select,input,textarea{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;color:var(--ink);min-width:0}.profile-wrap select{padding:8px 28px 8px 10px}main{max-width:1100px;margin:auto;padding:32px 22px 24px}.intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:700;color:#c58b68;margin:0 0 7px}.intro h1{font:800 clamp(25px,4vw,34px) Nunito;margin:0 0 5px}.sub{margin:0;color:var(--muted);font-size:13px}.primary{border:0;background:#ed907b;color:white;padding:11px 17px;border-radius:12px;font-weight:700;box-shadow:0 4px 10px #ed907b30}.primary:active{transform:translateY(1px)}.toolbar{display:flex;align-items:center;gap:12px;margin:18px 0 12px}.toolbar h2{font:800 20px Nunito;margin:0;min-width:175px;text-align:center}.icon-btn{width:32px;height:32px;border:1px solid var(--line);background:white;border-radius:10px;font-size:22px;color:#687176}.today-btn,.view-switch button{border:1px solid var(--line);background:white;border-radius:9px;padding:7px 12px;color:#697276;font-size:12px}.view-switch{margin-left:auto;display:flex;gap:4px;padding:3px;background:#e4dfd6;border-radius:11px}.view-switch button{border:0;background:transparent}.view-switch button.selected{background:#f7f4ed;color:var(--ink);box-shadow:0 2px 6px #0000000a}.calendar-card,.day-panel,.family-card{background:#f7f4ed;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.calendar-card{padding:16px 18px 12px}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.weekdays{padding:0 0 10px;color:#92999b;font-size:11px;text-align:center}.calendar-cell{position:relative;min-height:94px;border:1px solid transparent;border-radius:12px;padding:8px 7px;text-align:left;background:#f7f4ed;overflow:hidden}.calendar-cell:hover{background:#eee9df;border-color:#f3e7d9}.calendar-cell.outside{opacity:.35}.calendar-cell.today .date-num{background:#e7d3c7;color:#985b4b}.calendar-cell.selected{border-color:#d9957f;background:#eee4dc}.calendar-cell.holiday,.calendar-cell.school-holiday{outline:2px solid #dfb34c;outline-offset:-2px}.calendar-cell .date-num{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;font-size:12px;font-weight:700;margin-bottom:5px}.event-bars{display:flex;flex-direction:row;align-items:center;gap:3px;min-width:0}.event-bar{flex:1;min-width:0}.event-bar{height:7px;border-radius:5px;display:flex;overflow:hidden;background:#eee}.event-bar i{height:100%;flex:1;min-width:3px}.more{font-size:9px;color:#888;margin-top:2px}.day-label{font-size:9px;color:#9b8553;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.day-label.school{color:#a77a1b}.legend{display:flex;gap:17px;align-items:center;color:#899194;font-size:10px;margin:13px 2px 0}.legend span{display:flex;align-items:center;gap:6px}.legend-holiday{width:11px;height:11px;border:2px solid #dfb34c;border-radius:4px}.legend-school{width:11px;height:11px;border-radius:4px;background:#dff2e8}.day-panel{margin-top:18px;padding:19px 20px}.day-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.day-heading h2,.family-card h2{font:800 20px Nunito;margin:0}.text-btn{border:0;background:transparent;color:#d77f6c;font-weight:700;font-size:12px;padding:8px}.day-event{display:grid;grid-template-columns:62px 1fr auto;gap:12px;align-items:start;padding:12px 0;border-top:1px solid #f2eee8}.same-time-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;border-top:1px solid #f2eee8;padding:10px 0}.same-time-group>.event-time{grid-column:1/-1}.same-time-group .day-event{border:1px solid #f0e9df;border-radius:12px;padding:10px;min-width:0}.same-time-group .event-time{grid-column:1/-1;padding:0}.same-time-group .day-event{grid-template-columns:1fr auto}.same-time-group .day-event .event-time{display:none}.event-time{font-size:12px;font-weight:700;color:#8b9294;padding-top:3px}.event-main{border-left:4px solid var(--event-color);padding:1px 10px}.event-main strong{font-size:13px}.event-main small{display:block;color:#899194;font-size:11px;margin-top:4px}.event-people{display:flex;gap:4px;align-items:center}.avatar-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.comment-corner{position:relative;border:0;background:#fff1d6;color:#9b6d12;width:31px;height:31px;border-radius:8px;font-size:12px;font-weight:800}.comment-corner:after{content:"";position:absolute;right:0;top:0;border-top:9px solid #d8a63e;border-left:9px solid transparent}.comment-corner.empty{visibility:hidden}.empty-state{color:#9ba2a3;font-size:12px;padding:12px 0}.family-card{margin-top:18px;padding:19px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px}.family-colors{display:flex;gap:15px;flex-wrap:wrap}.member-color{display:flex;align-items:center;gap:8px;font-size:12px}.member-color input{width:28px;height:28px;padding:2px;border:0;background:transparent;cursor:pointer}footer{display:flex;align-items:center;gap:10px;padding:22px 4px;color:#9ba1a2;font-size:10px}footer span{margin-right:auto}dialog{border:0;border-radius:20px;padding:23px;width:min(550px,calc(100% - 28px));max-height:90vh;overflow:auto;box-shadow:0 20px 80px #1d252b35;color:var(--ink)}dialog::backdrop{background:#26323870;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:17px}.dialog-head h2{font:800 22px Nunito;margin:0}.close{border:0;background:#f6f1eb;border-radius:50%;width:31px;height:31px;font-size:21px;color:#7d8587}#eventForm label{display:block;font-size:12px;font-weight:700;color:#657074;margin:12px 0}#eventForm label input,#eventForm label textarea{display:block;width:100%;margin-top:6px;font-weight:400}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.participant-choices{display:flex;gap:7px;flex-wrap:wrap}.person-chip{border:1px solid var(--line);border-radius:20px;padding:7px 11px;font-size:11px;background:white}.person-chip.active{border-color:var(--chip);background:color-mix(in srgb,var(--chip) 13%,white)}.dialog-actions{display:flex;align-items:center;gap:8px;margin-top:20px}.dialog-actions span{flex:1}.secondary{border:1px solid var(--line);background:white;padding:10px 13px;border-radius:10px;font-size:12px}.danger-link{border:0;background:transparent;color:#c76e60;font-size:12px}.detail-meta{font-size:12px;color:#7c8588;display:flex;gap:12px;flex-wrap:wrap}.detail-notes{font-size:13px;white-space:pre-wrap}.detail-actions{display:flex;gap:8px;margin:12px 0 18px}.task-section,.comments-section{border-top:1px solid var(--line);padding-top:14px;margin-top:13px}.task-section h3,.comments-section h3{font:800 15px Nunito;margin:0 0 10px}.tiny{font:400 10px 'DM Sans';color:#9ba1a2}.task-row{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid #f5f1ec;font-size:12px}.task-row input{accent-color:#78ad8e}.task-row.done .task-text{text-decoration:line-through;color:#a1a7a7}.task-owner{margin-left:auto;color:#899194;font-size:10px}.task-add{display:flex;gap:6px;margin-top:10px}.task-add input{flex:1}.task-add select{max-width:115px;font-size:11px}.task-add button{padding:8px 12px}.section-title{display:flex;align-items:center;justify-content:space-between}.unread-pill{font-size:10px;color:#a46f15;background:#fff2d6;padding:4px 8px;border-radius:20px}.comment{padding:9px 10px;background:#faf8f4;border-radius:10px;margin:7px 0;font-size:12px}.comment strong{font-size:11px}.comment small{float:right;color:#9ba1a2;font-size:9px}.comment p{margin:5px 0 0;white-space:pre-wrap}.comment.system{background:#f0f7f2}.comment-compose{display:flex;gap:8px;margin-top:10px;align-items:end}.comment-compose textarea{flex:1}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);background:#29383c;color:white;padding:11px 16px;border-radius:12px;font-size:12px;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:650px){.topbar{height:65px;padding:0 15px}main{padding:23px 12px}.intro{align-items:flex-start;flex-direction:column}.intro .primary{width:100%}.toolbar{gap:6px}.toolbar h2{min-width:0;flex:1;font-size:17px}.view-switch{margin-left:0}.calendar-card{padding:10px 8px}.weekdays,.calendar-grid{gap:2px}.calendar-cell{min-height:67px;padding:4px 3px;border-radius:8px}.calendar-cell .date-num{width:21px;height:21px;font-size:11px;margin-bottom:3px}.day-label{font-size:7px}.event-bars{gap:2px}.event-bar{height:5px}.legend{gap:8px;flex-wrap:wrap;font-size:9px}.day-panel{padding:15px 12px}.family-card{align-items:flex-start;flex-direction:column}.family-colors{gap:10px}.day-event{grid-template-columns:48px 1fr auto;gap:7px}footer{flex-wrap:wrap}.form-row{gap:8px}dialog{padding:18px}.task-add select{max-width:92px}}

.member-name-input{width:100px;max-width:28vw;padding:7px 8px;font-size:12px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink)}
.member-color{gap:6px}
@media(max-width:650px){.member-name-input{width:92px;max-width:25vw}}

/* Warm, low-glare surfaces and subtle seasonal atmosphere */
.calendar-card,.day-panel,.family-card{background:#f7f4ed}
.event-bar{opacity:.94}
body[data-season="spring"] .calendar-card{box-shadow:0 8px 28px #526a4a10}
body[data-season="summer"] .calendar-card{box-shadow:0 8px 28px #92733b10}
body[data-season="autumn"] .calendar-card{box-shadow:0 8px 28px #8d5c3b12}
body[data-season="winter"] .calendar-card{box-shadow:0 8px 28px #536b8012}
