:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#18373a;background:#f4f8f8}*{box-sizing:border-box}body{margin:0}header{background:white;display:flex;align-items:center;justify-content:space-between;padding:14px max(18px,calc((100vw - 960px)/2));box-shadow:0 1px 8px #173e4014;gap:12px}.brand{display:flex;gap:10px;align-items:center}.brand strong{display:block;color:#087f85;font-size:17px}.brand small{display:block;color:#647a7b;font-size:12px}.mark{font-size:26px;background:#e4f3f1;padding:9px;border-radius:12px}button{cursor:pointer;border:0;border-radius:10px;padding:11px 15px;background:#087f85;color:white;font-weight:700}button.outline{background:#e6f3f2;color:#087f85;font-size:12px}button.active{background:#087f85;color:white}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #f49a25}main{max-width:960px;margin:auto;padding:22px 18px 80px}.intro h1{font-size:clamp(23px,5vw,32px);margin:12px 0 5px}.intro p{color:#637a7b;margin:0 0 18px}.pill{font-size:11px;letter-spacing:.04em;background:#fff1d8;color:#825000;padding:6px 9px;border-radius:100px;font-weight:750}nav{display:flex;gap:7px;overflow:auto;padding:8px 0 18px}nav button{white-space:nowrap;background:#e5eeee;color:#31585a;padding:10px 13px}section{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.card{background:white;border:1px solid #e1ebeb;border-radius:16px;padding:20px;box-shadow:0 2px 6px #24494c08}.card.wide{grid-column:1/-1}.card h2{font-size:18px;margin:0 0 16px}.metric{font-size:30px;color:#087f85;font-weight:800}.line{display:flex;justify-content:space-between;gap:15px;padding:10px 0;border-bottom:1px solid #eff3f3}.line:last-child{border:0}.muted{color:#657c7d}.note{font-size:13px;color:#637a7b;line-height:1.6}.actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.actions button{background:#e5eeee;color:#254d4f}.actions button.selected{background:#087f85;color:white}input,select,textarea{display:block;width:100%;padding:12px;border:1px solid #c9dada;border-radius:10px;font:inherit;margin:10px 0;background:white}textarea{min-height:95px}.date{display:flex;align-items:center;gap:12px;padding:10px;border-bottom:1px solid #edf2f2}.dot{width:13px;height:13px;border-radius:50%;flex-shrink:0}.date span:last-child{margin-left:auto;color:#657c7d;font-size:13px}.orange{background:#f49a25}.yellow{background:#f5c842}.teal{background:#087f85}.status{font-weight:700;color:#087f85}.message{padding:12px;border-radius:12px;background:#e9f2f1;margin:8px 0;max-width:90%}.message.mine{margin-left:auto;background:#087f85;color:white}footer{text-align:center;font-size:12px;color:#728889;padding:25px}.help{background:#fff9ed;border-left:4px solid #f49a25;padding:12px;border-radius:7px}@media(max-width:650px){section{grid-template-columns:1fr}.card{padding:16px}header{padding:12px}.brand strong{font-size:14px}.brand small{font-size:10px}main{padding:18px 12px 70px}}

[hidden]{display:none!important}.login-panel{max-width:520px;margin:35px auto}.login-panel .card{width:100%}button:disabled{opacity:.6;cursor:wait}

#add-family-form button{margin-top:8px}#family-save-status{min-height:1em}

.invoice-entry{padding:12px 0;border-bottom:1px solid #e1ebeb}.invoice-entry:last-child{border-bottom:0}.invoice-entry h3{font-size:15px;margin:0 0 8px;color:#087f85}.invoice-entry .line{align-items:baseline}.invoice-entry .line strong{text-align:right}

/* Interactive monthly calendar */
.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.calendar-header h3{margin:0;text-align:center;font-size:18px}.calendar-header button{min-width:42px;font-size:25px;padding:5px 12px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekday{text-align:center;font-size:12px;color:#647a7b;font-weight:700;padding:7px 0}.calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:65px;background:#f4f8f8;color:#18373a;border:2px solid transparent;border-radius:10px;padding:5px;font-weight:600}.calendar-day:hover{background:#e6f3f2}.calendar-day.selected{border-color:#087f85;background:#e6f3f2}.calendar-day:focus-visible{outline:3px solid #f49a25}.calendar-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex-shrink:0}.calendar-dot.tuition{background:#087f85}.calendar-dot.due{background:#f49a25}.calendar-dot.assessment{background:#f5c842}.calendar-legend{display:flex;flex-wrap:wrap;gap:15px;margin-top:17px;font-size:13px;color:#31585a}.calendar-legend span{display:inline-flex;align-items:center;gap:6px}.calendar-detail{margin:18px 0 12px;padding:14px;background:#f4f8f8;border-radius:10px}.calendar-detail p{margin:6px 0 0;color:#31585a}.calendar-empty{min-height:65px}@media(max-width:650px){.calendar-grid{gap:3px}.calendar-day,.calendar-empty{min-height:48px}.calendar-day{font-size:13px}.calendar-weekday{font-size:11px}}
