:root{--ink:#203347;--muted:#6d7e8f;--bg:#f5f8f7;--card:#fff;--blue:#78a6d5;--sage:#8bbfae;--line:#dfe8e5}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink)}
a{text-decoration:none;color:inherit}.topbar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:14px 18px;background:#f5f8f7ee;border-bottom:1px solid var(--line)}
.brand{font-size:26px;font-weight:800;letter-spacing:.08em}.tagline{font-size:12px;color:var(--muted)}.container{max-width:760px;margin:auto;padding:18px 16px 90px}
h1{font-size:28px;margin:8px 0 4px}h2{font-size:18px}.day>h2 span{font-size:14px;color:var(--muted);font-weight:500}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:0 8px 24px #2033470d}.activity,.month{margin:10px 0}
.attendance{padding:12px 0;border-top:1px solid var(--line)}.childrow,.noterow,.pagehead,.weeknav,.summary,.listitem{display:flex;align-items:center;gap:10px}
.childrow,.pagehead{justify-content:space-between}.noterow{margin-top:8px}.summary{flex-wrap:wrap;padding:9px 0;border-top:1px solid var(--line)}.summary b{min-width:70px}
input,select,button{font:inherit}input,select{width:100%;padding:11px 12px;border:1px solid #cfdad7;border-radius:12px;background:#fff;color:var(--ink)}select{width:auto;max-width:65%}
button,.ghost{border:0;border-radius:12px;padding:11px 14px;background:var(--blue);color:white;font-weight:700}.ghost{background:#e9f0f5;color:var(--ink)}.small{font-size:13px;padding:8px 10px}.save{background:var(--sage)}
.stack{display:grid;gap:13px}.stack label{display:grid;gap:6px;font-size:14px;font-weight:650}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.check{display:inline-flex!important;align-items:center;gap:7px;margin-right:14px;font-weight:500!important}.check input{width:auto}
.labeltext{font-size:14px;font-weight:650;margin-bottom:8px}.muted,.empty{color:var(--muted);font-size:14px}.today>h2{color:#2f7f69}.pill{margin-left:auto;background:#edf5f1;color:#2f6d5d;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700}.list{display:grid;gap:10px;margin-top:14px}
.bottomnav{position:fixed;left:50%;transform:translateX(-50%);bottom:12px;width:min(92%,620px);display:grid;grid-template-columns:repeat(3,1fr);background:var(--ink);color:white;border-radius:18px;padding:5px;box-shadow:0 12px 36px #2033473d}.bottomnav a{text-align:center;padding:11px 6px}
.flash{padding:12px;border-radius:12px;margin-bottom:12px;background:#fff2d6}.flash.error{background:#fde7e2}.flash.ok{background:#e2f3ec}.login{max-width:430px;margin:10vh auto 0}
@media(max-width:560px){.grid2{grid-template-columns:1fr}.noterow input{min-width:0}.pagehead{gap:8px}h1{font-size:24px}}
.activity-listitem {
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 16px;
}
.activity-details {
  flex: 1 1 160px;
  min-width: 0;
  overflow-wrap: anywhere;
}
.activity-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  max-width: 100%;
  margin-left: auto;
}
.activity-actions .pill {
  margin-left: 0;
  overflow-wrap: anywhere;
}
.activity-actions .ghost {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 8px 12px;
  font-size: 14px;
}
