/* Sri Lorven School: parent portal and driver page (phone first) */
:root {
  --navy: #1b2559;
  --navy-deep: #131a42;
  --indigo: #33409c;
  --gold: #f4b400;
  --ink: #1b1e2f;
  --body: #474b63;
  --muted: #6b7089;
  --line: #e1e4ee;
  --bg: #f2f3f9;
  --red: #b3192a;
  --green: #1f8a4c;
  --amber: #d98a00;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font: 400 1rem/1.55 'Plus Jakarta Sans', 'Noto Sans Telugu', system-ui, sans-serif; color: var(--body); background: var(--bg); padding-bottom: calc(5.2rem + env(safe-area-inset-bottom)); }
body.is-out { padding-bottom: 0; background: var(--navy-deep); }
h1, h2 { color: var(--ink); margin: 0; line-height: 1.25; }
h2 { font-size: 1.02rem; }
p { margin: 0 0 0.7rem; }
a { color: var(--indigo); }
img { max-width: 100%; height: auto; display: block; }
ul { list-style: none; margin: 0; padding: 0; }
.icon { width: 1.25em; height: 1.25em; flex: none; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; border-radius: 6px; }

.phead { background: var(--navy-deep); color: #fff; padding: 0.75rem 1rem 1.1rem; border-radius: 0 0 22px 22px; }
.is-out .phead { border-radius: 0; padding-bottom: 0.5rem; }
.phead__in, .phead__child, .pmain { width: min(100%, 620px); margin-inline: auto; }
.phead__in { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.phead__brand img { width: 118px; }
.phead__tools { display: flex; align-items: center; gap: 0.6rem; font-size: 0.84rem; }
.phead__lang, .phead__tools button { color: #fff; text-decoration: none; border: 1px solid rgba(255, 255, 255, 0.35); border-radius: 999px; padding: 0.22rem 0.75rem; font: inherit; font-weight: 600; background: none; cursor: pointer; }
.phead__child { display: flex; align-items: center; gap: 0.8rem; margin-top: 1rem; }
.phead__child div { display: grid; min-width: 0; }
.phead__child strong { font-size: 1.2rem; line-height: 1.25; overflow-wrap: anywhere; }
.phead__child span { color: #c5cbee; font-size: 0.88rem; }
.avatar { width: 3rem; height: 3rem; border-radius: 50%; background: var(--gold); color: var(--navy-deep) !important; display: grid; place-items: center; font-weight: 700; font-size: 1.3rem !important; flex: none; }

.pmain { padding: 1rem 1rem 1.5rem; display: grid; gap: 0.9rem; }
.pmain > * { min-width: 0; }
.ptitle { font-size: 1.35rem; }
.ptitle--row { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.ptitle--row h1 { font-size: 1.35rem; }
.pmuted { color: var(--muted); }
.psmall { font-size: 0.86rem; }
.peyebrow { font-size: 0.74rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: var(--gold); margin: 0; }
.pflash { margin: 0; padding: 0.75rem 1rem; border-radius: 12px; font-weight: 600; background: #fde8ea; color: #8f1220; }
.pflash--ok { background: #e4f5ea; color: #14532d; }

.pcard { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 1rem; }
.pcard > h2 { margin-bottom: 0.7rem; }
.pcard__head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: 0.7rem; }
.pcard__head a { font-size: 0.86rem; font-weight: 600; white-space: nowrap; }
.pcard > :last-child { margin-bottom: 0; }

.pbtn { display: flex; align-items: center; justify-content: center; gap: 0.5rem; width: 100%; padding: 0.85rem 1rem; border: 0; border-radius: 12px; background: var(--navy); color: #fff; font: 700 1rem/1.2 inherit; font-family: inherit; text-decoration: none; cursor: pointer; }
.pbtn--small { width: auto; padding: 0.5rem 0.9rem; font-size: 0.86rem; }
.pbtn--light { background: #eef0fb; color: var(--navy); margin-top: 0.8rem; }

.plogin { display: grid; gap: 0.8rem; padding-top: 1.2rem; color: #c5cbee; }
.plogin h1 { color: #fff; font-size: 1.6rem; }
.plogin .pmuted { color: #c5cbee; margin: 0; }
.plogin a { color: #fff; }
.pform { display: grid; gap: 0.9rem; margin: 0.5rem 0; }
.pform label { display: grid; gap: 0.35rem; font-weight: 600; color: var(--ink); font-size: 0.92rem; }
.pform input { width: 100%; padding: 0.8rem 0.85rem; border: 1.5px solid #cdd2e2; border-radius: 11px; font: inherit; font-size: 1.05rem; color: var(--ink); }
.pform input:focus { outline: none; border-color: var(--indigo); box-shadow: 0 0 0 3px rgba(51, 64, 156, 0.15); }

.ptoday { border-radius: 16px; padding: 1rem 1.1rem; display: grid; gap: 0.15rem; background: #e9ebf5; color: var(--body); border-left: 6px solid #b3b9d6; }
.ptoday strong { font-size: 1.25rem; color: var(--ink); line-height: 1.3; }
.ptoday__date { margin: 0; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }
.ptoday--present { background: #e4f5ea; border-color: var(--green); }
.ptoday--present strong { color: #14532d; }
.ptoday--late { background: #fff4d6; border-color: var(--amber); }
.ptoday--late strong { color: #6b4a00; }
.ptoday--absent { background: #fde8ea; border-color: var(--red); }
.ptoday--absent strong { color: #8f1220; }

.pgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.9rem; }
.pgrid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pstat { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 0.9rem 1rem; display: grid; gap: 0.1rem; text-decoration: none; color: var(--body); min-width: 0; }
.pstat span { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--muted); }
.pstat strong { font-size: 1.55rem; line-height: 1.25; color: var(--ink); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.pstat em { font-style: normal; font-size: 0.8rem; color: var(--muted); }
.pstat--warn { border-color: #f1b7bd; background: #fff6f6; }
.pstat--warn strong { color: var(--red); }

.prow { display: flex; align-items: center; gap: 0.8rem; text-decoration: none; color: var(--body); }
.prow__icon { width: 2.6rem; height: 2.6rem; border-radius: 12px; background: #eef0fb; color: var(--navy); display: grid; place-items: center; flex: none; }
.prow__icon.is-live { background: var(--green); color: #fff; }
.prow__text { display: grid; flex: 1; min-width: 0; }
.prow__text strong { color: var(--ink); }
.prow__text span { font-size: 0.88rem; }

.pdiary { display: grid; gap: 0.7rem; }
.pdiary li { border-left: 3px solid var(--gold); padding-left: 0.8rem; }
.pdiary p { margin: 0.2rem 0 0.1rem; color: var(--ink); white-space: pre-wrap; overflow-wrap: anywhere; }
.ptag { display: inline-block; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--indigo); }

.plist li + li { border-top: 1px solid #eef0f6; }
.plist a { display: flex; align-items: center; gap: 0.7rem; padding: 0.7rem 0; text-decoration: none; color: var(--ink); font-weight: 600; }
.plist a > span { flex: 1; min-width: 0; display: inline-flex; gap: 0.4rem; align-items: center; }
.plist a > strong { color: var(--indigo); }
.plist a > em { font-style: normal; font-weight: 400; font-size: 0.82rem; color: var(--muted); white-space: nowrap; }
.plist a > .icon { color: #a4aac6; }

.pledger li { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; padding: 0.65rem 0; }
.pledger li + li { border-top: 1px solid #eef0f6; }
.pledger span { display: grid; min-width: 0; }
.pledger strong { color: var(--ink); }
.pledger em { font-style: normal; font-size: 0.82rem; color: var(--muted); }
.pledger b { color: var(--ink); white-space: nowrap; font-variant-numeric: tabular-nums; text-align: right; }
.pledger b.is-paid { color: var(--green); }

.ppay { text-align: center; }
.ppay h2 { text-align: left; }
.ppay .pmuted { text-align: left; }
.ppay__qr { display: grid; place-items: center; padding: 0.4rem 0 0.9rem; }
.ppay__qr svg { width: min(220px, 70vw); height: auto; border: 1px solid var(--line); border-radius: 12px; padding: 6px; background: #fff; }
.ppay .psmall { margin-top: 0.8rem; }

.pcal__nav { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.7rem; }
.pcal__nav strong { color: var(--ink); font-size: 1.05rem; }
.pcal__nav a, .pcal__nav > span { width: 2.4rem; height: 2.4rem; display: grid; place-items: center; border-radius: 50%; text-decoration: none; font-size: 1.5rem; color: var(--navy); }
.pcal__nav a { background: #eef0fb; }
.pcal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 0.3rem; text-align: center; }
.pcal__w { font-size: 0.7rem; font-weight: 700; color: var(--muted); padding-bottom: 0.2rem; }
.pcal__d { aspect-ratio: 1; display: grid; place-items: center; border-radius: 10px; background: #f3f4f9; color: var(--muted); font-weight: 600; font-size: 0.92rem; }
.pcal__d--P { background: var(--green); color: #fff; }
.pcal__d--L { background: var(--amber); color: #fff; }
.pcal__d--A { background: var(--red); color: #fff; }
.pkey { display: flex; gap: 1rem; margin: 0.8rem 0 0; font-size: 0.82rem; color: var(--muted); flex-wrap: wrap; }
.pkey span { display: inline-flex; align-items: center; gap: 0.35rem; }
.pkey span::before { content: ''; width: 0.8rem; height: 0.8rem; border-radius: 4px; }
.pkey__P::before { background: var(--green); }
.pkey__L::before { background: var(--amber); }
.pkey__A::before { background: var(--red); }
.pmeter { height: 0.8rem; border-radius: 999px; background: #eef0f6; overflow: hidden; margin-bottom: 0.6rem; }
.pmeter span { display: block; height: 100%; background: var(--green); border-radius: 999px; }

.map { height: 300px; border-radius: 12px; overflow: hidden; background: #e9ecf5; margin-bottom: 0.7rem; position: relative; z-index: 0; }
.plive { font-size: 0.8rem; font-weight: 700; color: var(--muted); text-align: right; }
.plive.is-live { color: var(--green); }
.busmark { background: var(--navy); color: #fff; border-radius: 999px; border: 3px solid #fff; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35); font-weight: 700; font-size: 0.8rem; display: grid; place-items: center; }
.busmark--live { background: var(--green); }
.busmark--school { background: var(--gold); color: var(--navy-deep); }

.ptabs { position: fixed; inset: auto 0 0 0; z-index: 50; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); background: #fff; border-top: 1px solid var(--line); padding: 0.35rem 0.3rem calc(0.35rem + env(safe-area-inset-bottom)); }
.ptabs a { display: grid; justify-items: center; gap: 0.1rem; padding: 0.35rem 0.1rem; border-radius: 12px; text-decoration: none; color: var(--muted); font-size: 0.7rem; font-weight: 600; min-width: 0; }
.ptabs a span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ptabs a[aria-current='page'] { color: var(--navy); background: #eef0fb; }
.ptabs .icon { width: 1.45rem; height: 1.45rem; }

.reportcard { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 1.1rem; }
.reportcard > header { display: flex; gap: 0.8rem; align-items: center; border-bottom: 2px solid var(--navy); padding-bottom: 0.8rem; margin-bottom: 0.9rem; }
.reportcard > header img { width: 96px; }
.reportcard > header div { display: grid; font-size: 0.8rem; min-width: 0; }
.reportcard > header strong { font-size: 1.02rem; color: var(--ink); }
.reportcard h2 { text-align: center; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.86rem; margin-bottom: 0.9rem; }
.reportcard__who { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem 1rem; margin: 0 0 0.9rem; }
.reportcard__who dt { font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); font-weight: 700; }
.reportcard__who dd { margin: 0; color: var(--ink); font-weight: 600; font-size: 0.92rem; overflow-wrap: anywhere; }
.reportcard table { width: 100%; border-collapse: collapse; font-size: 0.92rem; }
.reportcard th { text-align: left; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); padding: 0.45rem 0.4rem; border-bottom: 1px solid var(--line); }
.reportcard td { padding: 0.55rem 0.4rem; border-bottom: 1px solid #eef0f6; color: var(--ink); }
.reportcard table th:not(:first-child), .reportcard table td:not(:first-child) { text-align: center; }
.reportcard tfoot th { font-size: 0.9rem; text-transform: none; letter-spacing: 0; color: var(--ink); border-top: 2px solid var(--navy); border-bottom: 0; }
.reportcard__remark { background: #f6f7fb; border-radius: 10px; padding: 0.7rem 0.85rem; margin: 0.9rem 0 0.5rem; color: var(--ink); }
.reportcard__scale { font-size: 0.72rem; color: var(--muted); margin: 0.6rem 0 0; }
.reportcard > footer { display: none; }

.driver { min-height: 100vh; min-height: 100dvh; width: min(100%, 460px); margin-inline: auto; padding: 1.5rem 1.25rem 2rem; display: grid; gap: 0.9rem; align-content: center; justify-items: center; text-align: center; color: #c5cbee; }
.driver img { width: 150px; }
.driver h1 { color: #fff; font-size: 1.5rem; }
.driver__sub { margin: 0; }
.driver__state { width: 100%; background: rgba(255, 255, 255, 0.08); border-radius: 16px; padding: 1rem; display: grid; gap: 0.2rem; justify-items: center; }
.driver__state strong { color: #fff; font-size: 1.2rem; }
.driver__state span { font-size: 0.9rem; }
.driver__pulse { width: 0.9rem; height: 0.9rem; border-radius: 50%; background: #6b7089; }
.driver.is-on .driver__pulse { background: #35d07f; animation: pulse 1.4s ease-in-out infinite; }
.driver__btn { width: 100%; padding: 1.4rem 1rem; border: 0; border-radius: 18px; background: var(--gold); color: var(--navy-deep); font: 700 1.5rem/1.2 inherit; font-family: inherit; cursor: pointer; display: grid; gap: 0.2rem; }
.driver__btn span { font-size: 1rem; font-weight: 600; }
.driver__btn--stop { background: #e23d4f; color: #fff; }
[hidden] { display: none !important; }
.driver__note { font-size: 0.84rem; margin: 0; }
@keyframes pulse { 50% { transform: scale(1.6); opacity: 0.5; } }
@media (prefers-reduced-motion: reduce) { .driver.is-on .driver__pulse { animation: none; } }

@media (min-width: 700px) {
  .pmain { padding-top: 1.5rem; }
  .ptabs { inset: auto auto 1rem 50%; transform: translateX(-50%); width: 460px; border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 12px 30px -12px rgba(27, 37, 89, 0.35); }
}
@media print {
  .phead, .ptabs, .noprint, .pflash { display: none !important; }
  body { background: #fff; padding: 0; }
  .reportcard { border: 0; padding: 0; }
  .reportcard > footer { display: flex; justify-content: space-between; margin-top: 3rem; font-size: 0.8rem; color: var(--muted); }
}
.ppay form { margin: 0.4rem 0 0; }

/* ---------- asking for leave ---------- */
.pform textarea { width: 100%; padding: 0.8rem 0.85rem; border: 1.5px solid #cdd2e2; border-radius: 11px; font: inherit; font-size: 1.05rem; color: var(--ink); resize: vertical; }
.pform textarea:focus { outline: none; border-color: var(--indigo); box-shadow: 0 0 0 3px rgba(51, 64, 156, 0.15); }
.pleave { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.9rem; }
.pleave li { display: grid; gap: 0.35rem; padding-bottom: 0.9rem; border-bottom: 1px solid #e6e8f2; }
.pleave li:last-child { border-bottom: 0; padding-bottom: 0; }
.pleave li > div { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; justify-content: space-between; }
.pleave p { margin: 0; overflow-wrap: anywhere; }
.ptag--approved { background: #e4f5ea; color: #14532d; }
.ptag--declined { background: #fde8ea; color: #8f1220; }
.ptag--pending { background: #fff1c9; color: #7a5600; }

/* ---------- home: quick links, rating, the week ---------- */
.pquick { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.7rem; margin: 0.9rem 0; }
.pquick a { background: #fff; border: 1px solid #e3e6f2; border-radius: 14px; padding: 0.8rem 0.85rem; text-decoration: none; color: var(--body); display: grid; gap: 0.15rem; min-width: 0; }
.pquick a .icon { color: var(--indigo); width: 1.5rem; height: 1.5rem; }
.pquick strong { color: var(--ink); font-size: 0.98rem; }
.pquick span { font-size: 0.78rem; color: var(--muted); overflow-wrap: anywhere; }
.pbirthday, .pnote { display: flex; gap: 0.6rem; align-items: center; border-radius: 14px; padding: 0.8rem 0.95rem; margin: 0 0 0.9rem; font-weight: 600; }
.pbirthday { background: #fff4cf; color: #6b4a00; }
.pnote { background: #e4f5ea; color: #14532d; font-weight: 500; }
.pbirthday .icon, .pnote .icon { flex: none; width: 1.4rem; height: 1.4rem; }
.prate__stars { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.35rem; margin: 0.5rem 0 0.9rem; }
.prate__stars label { position: relative; }
.prate__stars input { position: absolute; inset: 0; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.prate__stars span { display: grid; justify-items: center; gap: 0.1rem; padding: 0.55rem 0.1rem; border-radius: 11px; border: 1.5px solid #cdd2e2; background: #f6f7fb; font-size: 0.68rem; font-weight: 600; color: var(--muted); text-align: center; line-height: 1.2; overflow-wrap: anywhere; }
.prate__stars b { font-size: 1.25rem; color: var(--ink); }
.prate__stars input:checked + span { background: var(--navy); border-color: var(--navy); color: #fff; }
.prate__stars input:checked + span b { color: #fff; }
.prate__stars input:focus-visible + span { outline: 3px solid var(--gold); outline-offset: 1px; }
.prate__note { display: grid; gap: 0.35rem; font-weight: 600; color: var(--ink); font-size: 0.92rem; margin-bottom: 0.8rem; }
.prate__note textarea, .pform select { width: 100%; padding: 0.7rem 0.8rem; border: 1.5px solid #cdd2e2; border-radius: 11px; font: inherit; font-size: 1rem; color: var(--ink); background: #fff; }
.pweek { display: flex; flex-wrap: wrap; gap: 0.4rem 1.2rem; margin: 0 0 0.6rem; }
.pweek strong { font-size: 1.25rem; color: var(--ink); }
.phigh { margin: 0.4rem 0 0.8rem; padding: 0.75rem 0.9rem; background: #f6f7fb; border-left: 4px solid var(--gold); border-radius: 0 10px 10px 0; }
.phigh p { margin: 0; color: var(--ink); white-space: pre-wrap; overflow-wrap: anywhere; }
.phigh footer { font-size: 0.8rem; color: var(--muted); margin-top: 0.35rem; }
.psub { font-size: 0.8rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); margin: 0.9rem 0 0.4rem; }
.pperiods { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.25rem; }
.pperiods li { display: grid; grid-template-columns: 3.4rem minmax(0, 1fr) auto; gap: 0.6rem; align-items: baseline; padding: 0.4rem 0.6rem; border-radius: 9px; background: #f6f7fb; }
.pperiods li.is-break { background: none; color: var(--muted); padding-block: 0.1rem; }
.pperiods li.is-break strong { font-weight: 500; font-size: 0.85rem; color: var(--muted); }
.pperiods span { font-variant-numeric: tabular-nums; color: var(--muted); font-size: 0.82rem; }
.pperiods strong { color: var(--ink); overflow-wrap: anywhere; }
.pperiods em { font-style: normal; font-size: 0.8rem; color: var(--muted); }

/* ---------- learning passport, pickup pass ---------- */
.pbadges { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.7rem; }
.pbadges li { display: flex; gap: 0.75rem; align-items: flex-start; }
.pbadges__icon { flex: none; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: #fff4cf; color: #a06d00; display: grid; place-items: center; }
.pbadges div { display: grid; gap: 0.1rem; min-width: 0; }
.pbadges strong { color: var(--ink); }
.pbadges span, .pbadges em { font-size: 0.82rem; color: var(--muted); font-style: normal; }
.pprojects { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.7rem; }
.pprojects figure { margin: 0; border: 1px solid #e3e6f2; border-radius: 12px; overflow: hidden; min-width: 0; }
.pprojects img, .pprojects__blank { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.pprojects__blank { background: linear-gradient(135deg, #eef0fb, #dfe4fa); color: var(--indigo); display: grid; place-items: center; }
.pprojects figcaption { padding: 0.55rem 0.65rem 0.7rem; display: grid; gap: 0.15rem; font-size: 0.86rem; overflow-wrap: anywhere; }
.pprojects figcaption strong { color: var(--ink); }
.pprojects figcaption span, .pprojects figcaption em { font-size: 0.78rem; color: var(--muted); font-style: normal; }
.pcard form + form, .pcard .pbtn + form { margin-top: 0; }
.ppass { text-align: center; border: 2px solid var(--navy); }
.ppass h2 { font-size: 1.3rem; }
.ppass__qr { background: #fff; padding: 0.5rem; display: inline-block; border-radius: 12px; }
.ppass__qr svg { width: min(220px, 62vw); height: auto; display: block; }
.ppass__pin { display: grid; gap: 0.1rem; margin: 0.4rem 0 0.7rem; }
.ppass__pin span { font-size: 0.74rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); font-weight: 700; }
.ppass__pin strong { font-size: 2rem; letter-spacing: 0.12em; color: var(--ink); font-variant-numeric: tabular-nums; }
.ppass--used { border-color: #1f8a4c; }
.ppass__done { display: inline-flex; gap: 0.4rem; align-items: center; color: #14532d; font-weight: 700; margin: 0.3rem 0; }
.ppass .pbtn { margin-top: 0.6rem; }

/* ---------- brothers and sisters, meetings, syllabus, progress ---------- */
.phead__sibs { width: min(100%, 620px); margin: 0.7rem auto 0; display: flex; flex-wrap: wrap; gap: 0.4rem; }
.phead__sibs button { border: 1px solid rgba(255, 255, 255, 0.35); background: rgba(255, 255, 255, 0.08); color: #fff; border-radius: 999px; padding: 0.3rem 0.8rem; font: inherit; font-weight: 600; font-size: 0.86rem; cursor: pointer; }
.phead__sibs button span { color: #c5cbee; font-weight: 500; font-size: 0.78rem; }
.pnote--ask { background: #fff4cf; color: #6b4a00; text-decoration: none; }
.pfamtotal { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin: 0.6rem 0 0.2rem; padding-top: 0.6rem; border-top: 2px solid var(--navy); }
.pfamtotal strong { font-size: 1.35rem; color: var(--ink); }
.plate { color: #b3192a !important; font-weight: 700; }
.pslot { display: flex; gap: 0.5rem; align-items: center; background: #e4f5ea; color: #14532d; border-radius: 11px; padding: 0.65rem 0.8rem; margin: 0.4rem 0 0.8rem; }
.pslot .icon { flex: none; width: 1.3rem; height: 1.3rem; }
.ptimes { display: grid; grid-template-columns: repeat(auto-fill, minmax(4.6rem, 1fr)); gap: 0.4rem; margin: 0.5rem 0 0.9rem; }
.ptimes label { position: relative; }
.ptimes input { position: absolute; inset: 0; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.ptimes span { display: block; text-align: center; padding: 0.55rem 0.2rem; border-radius: 10px; border: 1.5px solid #cdd2e2; background: #f6f7fb; font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; }
.ptimes input:checked + span { background: var(--navy); border-color: var(--navy); color: #fff; }
.ptimes input:focus-visible + span { outline: 3px solid var(--gold); outline-offset: 1px; }
.psyl summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.3rem 0.8rem; align-items: center; cursor: pointer; list-style: none; }
.psyl summary::-webkit-details-marker { display: none; }
.psyl summary strong { color: var(--ink); }
.psyl summary span { font-variant-numeric: tabular-nums; color: var(--muted); font-weight: 600; }
.psyl summary .pmeter { grid-column: 1 / -1; display: block; }
.psyl ul { list-style: none; margin: 0.8rem 0 0; padding: 0; display: grid; gap: 0.35rem; }
.psyl li { display: grid; grid-template-columns: 1.3rem minmax(0, 1fr); gap: 0.4rem; color: var(--body); overflow-wrap: anywhere; }
.psyl li span { color: var(--muted); }
.psyl li.is-done { color: var(--ink); }
.psyl li.is-done span { color: #1f8a4c; font-weight: 700; }
.psyl li em { font-style: normal; font-size: 0.78rem; color: var(--muted); grid-column: 2; }
.pchart { width: 100%; height: auto; display: block; margin: 0.4rem 0; overflow: visible; }
.pchart__grid { stroke: #e6e8f2; stroke-width: 1; }
.pchart__axis { font-size: 8px; fill: #7a819c; }
.pchart__line { fill: none; stroke: #1f8a4c; stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.pchart__avg { fill: none; stroke: #9aa2c4; stroke-width: 1.5; stroke-dasharray: 4 4; }
.pchart__dot { fill: #1f8a4c; stroke: #fff; stroke-width: 1.5; }
.pchart__label { font-size: 9px; font-weight: 700; fill: #131a42; }
.pkey .pkey__avg::before { content: ''; display: inline-block; width: 1.1rem; height: 0; border-radius: 0; background: none; border-top: 2px dashed #9aa2c4; vertical-align: middle; margin-right: 0.35rem; }
.ptablewrap { overflow-x: auto; margin: 0 -0.2rem; }
.ptable { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.ptable th, .ptable td { padding: 0.45rem 0.4rem; text-align: right; border-bottom: 1px solid #eef0f6; white-space: nowrap; }
.ptable th:first-child, .ptable td:first-child { text-align: left; white-space: normal; }
.ptable th { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); white-space: normal; }
.ptable .is-up { color: #14532d; font-weight: 700; }
.ptable .is-down { color: #b3192a; font-weight: 700; }
.ptable__total td { font-weight: 700; color: var(--ink); border-bottom: 0; }
.pform h2 { font-size: 1rem; margin-top: 0.4rem; }

/* ---------- bus attender: scanning ID cards ---------- */
.driver__scan { width: 100%; margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, 0.2); display: grid; gap: 0.8rem; justify-items: stretch; text-align: center; }
.driver__scan h2 { color: #fff; font-size: 1.15rem; margin: 0; display: grid; }
.driver__scan h2 span { font-size: 0.86rem; font-weight: 500; color: #c5cbee; }
.driver__kind { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
.driver__kind label { position: relative; }
.driver__kind input { position: absolute; inset: 0; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.driver__kind span { display: grid; padding: 0.7rem 0.4rem; border-radius: 12px; border: 2px solid rgba(255, 255, 255, 0.35); color: #fff; font-weight: 700; }
.driver__kind em { font-style: normal; font-weight: 500; font-size: 0.8rem; color: #c5cbee; }
.driver__kind input:checked + span { background: var(--gold); border-color: var(--gold); color: var(--navy-deep); }
.driver__kind input:checked + span em { color: var(--navy-deep); }
.driver__view video { width: 100%; border-radius: 14px; background: #000; display: block; }
.driver__btn--scan { background: #fff; color: var(--navy-deep); }
.driver__last { margin: 0; padding: 0.7rem 0.8rem; border-radius: 12px; background: #1f8a4c; color: #fff; font-weight: 700; }
.driver__last.is-bad { background: #b3192a; }
.driver__count { margin: 0; color: #c5cbee; font-size: 0.9rem; }
.driver__count strong { color: #fff; font-size: 1.2rem; }
.driver__scan form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.4rem; }
.driver__scan form input { padding: 0.65rem 0.75rem; border-radius: 10px; border: 0; font: inherit; min-width: 0; }
.driver__scan form button { padding: 0 1rem; border-radius: 10px; border: 0; font: inherit; font-weight: 700; background: var(--gold); color: var(--navy-deep); }

/* ---------- circulars and quizzes ---------- */
.pcard--new { border: 2px solid var(--gold); }
.pcirc { white-space: pre-wrap; overflow-wrap: anywhere; color: var(--ink); }
.pquiz { display: grid; gap: 0.9rem; }
.pquiz fieldset { margin: 0; min-width: 0; display: grid; gap: 0.45rem; }
.pquiz legend { font-weight: 700; color: var(--ink); padding: 0; margin-bottom: 0.5rem; float: left; width: 100%; }
.pquiz legend + * { clear: both; }
.pquiz legend span { display: inline-grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--navy); color: #fff; font-size: 0.8rem; margin-right: 0.3rem; }
.popt { position: relative; display: block; }
.popt input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.popt span { display: block; padding: 0.7rem 0.85rem; border: 1.5px solid #cdd2e2; border-radius: 11px; background: #f6f7fb; color: var(--ink); overflow-wrap: anywhere; }
.popt input:checked + span { border-color: var(--navy); background: #e9ecfb; font-weight: 700; }
.popt input:focus-visible + span { outline: 3px solid var(--gold); outline-offset: 1px; }
.popt.is-right span { border-color: #1f8a4c; background: #e4f5ea; font-weight: 700; }
.popt.is-wrong span { border-color: #b3192a; background: #fde8ea; }
.pscore { text-align: center; display: grid; gap: 0.5rem; border: 2px solid var(--navy); }
.pscore strong { font-size: 2.6rem; color: var(--ink); line-height: 1.1; }
.pscore--top { border-color: #1f8a4c; }
.pscore--top strong { color: #14532d; }
.phigh p.te { font-family: 'Noto Sans Telugu', sans-serif; line-height: 1.8; }

/* ---------- homework help, reading coach, messages ---------- */
.phelp { background: #fffbee; border-left: 4px solid var(--gold); border-radius: 0 10px 10px 0; padding: 0.7rem 0.85rem; margin-top: 0.5rem; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--ink); line-height: 1.7; }
.pdiary li .pbtn--small { margin-top: 0.4rem; }
.pnote--urgent { background: #b3192a; color: #fff; text-decoration: none; }
.preader { display: grid; gap: 0.8rem; }
.preader__text { font-size: 1.35rem; line-height: 2.1; color: var(--ink); margin: 0; overflow-wrap: anywhere; }
.preader__text span { border-radius: 6px; padding: 0.05rem 0.15rem; }
.preader__text span.is-read { background: #e4f5ea; }
.preader__text span.is-missed { background: #fde8ea; color: #8f1220; text-decoration: underline wavy; }
.preader__clock { display: flex; gap: 0.7rem; align-items: baseline; margin: 0; color: var(--muted); }
.preader__clock strong { font-size: 1.5rem; color: var(--ink); font-variant-numeric: tabular-nums; }
.pspark { display: flex; align-items: flex-end; gap: 0.3rem; height: 5.5rem; margin: 0.4rem 0; }
.pspark span { flex: 1; background: #1f8a4c; border-radius: 5px 5px 0 0; position: relative; min-width: 0; }
.pspark b { position: absolute; top: -1.15rem; left: 0; right: 0; text-align: center; font-size: 0.68rem; color: var(--ink); }
.pthread { display: grid; gap: 0.5rem; margin: 0.6rem 0 1rem; }
.pbubble { max-width: 88%; padding: 0.55rem 0.75rem; border-radius: 14px; background: #eef0fb; display: grid; gap: 0.2rem; justify-self: start; }
.pbubble--parent { background: #e4f5ea; justify-self: end; }
.pbubble p { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--ink); }
.pbubble__tr { font-size: 0.86rem; border-top: 1px dashed #b9c0dd; padding-top: 0.2rem; font-family: 'Noto Sans Telugu', sans-serif; }
.pbubble span { font-size: 0.72rem; color: var(--muted); }
.pform input[type='file'] { padding: 0.55rem; font-size: 0.9rem; }

/* ---------- lessons at home, catch-up, homework photos ---------- */
.pvideo { position: relative; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; background: #0d1230; margin: 0 0 0.9rem; }
.pvideo iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.plesson { margin: 0 0 0.7rem; color: var(--ink); line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere; }
.plesson--sheet { background: #fffbee; border-left: 4px solid var(--gold); border-radius: 0 10px 10px 0; padding: 0.7rem 0.85rem; }
.psyl .plist { margin-top: 0.4rem; }
.phandin { margin: 0.45rem 0 0; font-size: 0.86rem; font-weight: 700; color: #14532d; display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; }
.phandin a, .phandin span { display: inline-flex; align-items: center; gap: 0.3rem; color: inherit; }
.phandin .icon { width: 1rem; height: 1rem; }
.phandin em { font-style: normal; font-weight: 400; color: var(--body); }
.phandin--sent { color: var(--indigo); }
.phandin--redo { color: #9a5b00; }
.phandinform { margin-top: 0.45rem; }
.phandinform label { display: inline-flex; align-items: center; gap: 0.4rem; background: #eef0fb; color: var(--navy); font-weight: 700; font-size: 0.86rem; padding: 0.5rem 0.9rem; border-radius: 12px; cursor: pointer; position: relative; overflow: hidden; }
.phandinform input { position: absolute; inset: 0; opacity: 0; cursor: pointer; font-size: 0; }
.phandinform .icon { width: 1rem; height: 1rem; transform: rotate(180deg); }
.phandinform.is-sending label { opacity: 0.6; }

/* ---------- child mode ---------- */
.pkid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.8rem; margin: 0.4rem 0 1.2rem; }
.pkid__hello { font-size: 1.7rem; }
.pkid__tile { position: relative; display: grid; place-items: center; gap: 0.5rem; aspect-ratio: 1; border-radius: 22px; text-decoration: none; color: #fff; font-size: 1.35rem; box-shadow: 0 10px 20px -12px rgba(19, 26, 66, 0.6); }
.pkid__tile .icon { width: 3rem; height: 3rem; }
.pkid__tile strong { margin-top: -1.4rem; }
.pkid__tile span { position: absolute; top: 0.7rem; right: 0.7rem; background: #fff; color: var(--ink); font-size: 0.9rem; font-weight: 800; min-width: 1.8rem; height: 1.8rem; border-radius: 999px; display: grid; place-items: center; padding: 0 0.4rem; }
.pkid__tile--a { background: #33409c; }
.pkid__tile--b { background: #1f8a4c; }
.pkid__tile--c { background: #c2410c; }
.pkid__tile--d { background: #8a3fb0; }
.pkid__tile--e { background: #0f766e; }
.pkid__exit summary { cursor: pointer; color: var(--muted); font-size: 0.86rem; }
.pkidstart { margin: 0 0 0.9rem; }
.pkidstart button { width: 100%; display: flex; align-items: center; gap: 0.8rem; text-align: left; border: 0; cursor: pointer; background: linear-gradient(120deg, #33409c, #8a3fb0); color: #fff; border-radius: 16px; padding: 0.9rem 1rem; font: inherit; }
.pkidstart button > .icon:first-child { width: 2rem; height: 2rem; flex: none; }
.pkidstart span { flex: 1; min-width: 0; display: grid; gap: 0.1rem; }
.pkidstart em { font-style: normal; font-size: 0.8rem; opacity: 0.9; }
.ptabs--kid a { flex: 1; }
body.is-kid .phead__lang { display: none; }

/* ---------- daily report, class photos, houses, speaking ---------- */
.pday { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0.3rem 0; }
.pday span { background: #e4f5ea; color: #14532d; font-weight: 700; font-size: 0.84rem; padding: 0.25rem 0.7rem; border-radius: 999px; }
.pday .pday--some, .pday .pday--short, .pday .pday--quiet { background: #fff1c9; color: #7a5600; }
.pday .pday--little, .pday .pday--no, .pday .pday--upset { background: #fde8ea; color: #8f1220; }
.pdaycard { display: grid; gap: 0.25rem; text-decoration: none; color: var(--body); border-left: 4px solid #1f8a4c; }
.pdaycard strong { color: var(--ink); }
.pdaycard em { font-style: normal; font-size: 0.9rem; }
.pphotos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; }
.pphotos figure { margin: 0; }
.pphotos img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; display: block; background: #eef0f6; }
.pphotos figcaption { font-size: 0.78rem; color: var(--muted); margin-top: 0.2rem; }
.pconsent { display: grid; gap: 0.5rem; margin-top: 0.6rem; padding-top: 0.7rem; border-top: 1px solid #eef0f6; }
.pconsent strong { color: var(--ink); font-size: 0.95rem; }
.pconsent__row { display: flex; gap: 0.6rem; }
.pconsent__row .pbtn { margin-top: 0; min-width: 5.5rem; }
.phouse { color: #fff; border-radius: 18px; padding: 1.2rem 1.1rem; display: grid; gap: 0.2rem; margin-bottom: 0.9rem; }
.phouse span { opacity: 0.9; font-size: 0.9rem; }
.phouse strong { font-size: 1.7rem; line-height: 1.2; }
.phouse em { font-style: normal; font-weight: 700; }
.phouses { display: grid; gap: 0.55rem; }
.phouses div { display: grid; grid-template-columns: minmax(0, 7.5rem) 1fr 2.6rem; gap: 0.6rem; align-items: center; font-size: 0.9rem; }
.phouses span { color: var(--ink); font-weight: 600; overflow-wrap: anywhere; }
.phouses i { display: block; height: 0.7rem; background: #eef0f6; border-radius: 999px; overflow: hidden; }
.phouses b { display: block; height: 100%; border-radius: 999px; }
.phouses strong { text-align: right; color: var(--ink); font-variant-numeric: tabular-nums; }
.pspeak { list-style: none; margin: 0.6rem 0 0; padding: 0; display: grid; gap: 0.5rem; }
.pspeak li { display: flex; align-items: center; justify-content: space-between; gap: 0.7rem; background: #f6f7fb; border-radius: 12px; padding: 0.6rem 0.7rem; }
.pspeak li span { color: var(--ink); font-weight: 600; min-width: 0; }
.pspeak .pbtn { margin: 0; flex: none; }
.pspeak .pbtn .icon { width: 1rem; height: 1rem; }
.pspeak__result { margin-top: 0.8rem; background: #fffbee; border-left: 4px solid var(--gold); border-radius: 0 10px 10px 0; padding: 0.7rem 0.85rem; }
.pspeak__result p { margin: 0 0 0.35rem; color: var(--ink); overflow-wrap: anywhere; }
.pspeak__better { color: #14532d !important; font-weight: 700; }
.pform select { width: 100%; padding: 0.8rem 0.85rem; border: 1.5px solid #cdd2e2; border-radius: 11px; font: inherit; font-size: 1.05rem; color: var(--ink); background: #fff; }

/* ---------- the driver's morning check ---------- */
.driver__check { width: 100%; background: rgba(255, 255, 255, 0.08); border-radius: 16px; padding: 1rem; text-align: left; margin-top: 0.4rem; }
.driver__check h2 { color: #fff; font-size: 1.05rem; margin: 0 0 0.6rem; display: grid; }
.driver__check h2 span, .driver__check summary span, .driver__check label em { font-family: 'Noto Sans Telugu', sans-serif; font-weight: 400; font-size: 0.8rem; opacity: 0.8; font-style: normal; display: block; }
.driver__check summary { color: #fff; cursor: pointer; font-weight: 600; }
.driver__check form { display: grid; gap: 0.55rem; margin-top: 0.7rem; }
.driver__check label { display: flex; gap: 0.7rem; align-items: center; background: rgba(255, 255, 255, 0.1); border-radius: 12px; padding: 0.65rem 0.8rem; color: #fff; font-weight: 600; }
.driver__check input[type='checkbox'] { width: 1.5rem; height: 1.5rem; flex: none; accent-color: #1faa59; }
.driver__check input[type='text'] { width: 100%; padding: 0.7rem 0.8rem; border-radius: 12px; border: 0; font: inherit; }
.driver__checked { background: #1f8a4c; color: #fff; border-radius: 12px; padding: 0.6rem 0.8rem; font-weight: 700; margin: 0 0 0.6rem; }
.driver__checked.is-bad { background: #b3192a; }

/* Certificate of fees paid (the same letter the office prints) */
.pyears { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0 0 1rem; }
.pyears a { padding: 0.4rem 0.85rem; border-radius: 999px; background: #fff; border: 1px solid #e1e4ee; text-decoration: none; font-weight: 600; color: inherit; font-size: 0.9rem; }
.pyears a[aria-current='true'] { background: #1b2559; color: #fff; border-color: #1b2559; }
.letter { background: #fff; border: 1px solid #e1e4ee; border-radius: 14px; padding: 1.25rem 1.1rem; color: #111; line-height: 1.7; overflow-x: auto; }
.letter > header { display: flex; gap: 0.9rem; align-items: center; border-bottom: 2.5px solid #1b2559; padding-bottom: 0.8rem; }
.letter > header img { width: 96px; height: auto; }
.letter > header div { display: grid; font-size: 0.84rem; }
.letter > header strong { font-size: 1.2rem; color: #1b2559; line-height: 1.2; }
.letter__meta { display: flex; justify-content: space-between; gap: 0.4rem 1rem; flex-wrap: wrap; margin: 0.9rem 0 0; font-size: 0.9rem; }
.letter h2 { text-align: center; text-transform: uppercase; letter-spacing: 0.1em; font-size: 1.05rem; margin: 1.3rem 0 1.1rem; text-decoration: underline; text-underline-offset: 0.35em; color: #111; }
.letter__body { font-size: 1rem; margin: 0 0 0.9rem; }
.letter__table { width: 100%; border-collapse: collapse; margin-bottom: 1rem; font-size: 0.82rem; }
.letter__table td, .letter__table th { border: 1px solid #b9bfd3; padding: 0.35rem 0.4rem; text-align: left; vertical-align: top; }
.letter__table .num { text-align: right; white-space: nowrap; }
.letter__foot { display: grid; grid-template-columns: 1fr; gap: 1rem; align-items: end; margin-top: 2.4rem; font-size: 0.84rem; }
.letter__sign { display: grid; text-align: center; color: #555; border-top: 1px solid #999; padding-top: 0.35rem; }
.letter__sign strong { color: #111; }
.feecert__note { font-size: 0.84rem; color: #555; margin: 0 0 1rem; }
.feecert__made { font-size: 0.78rem; color: #555; line-height: 1.4; }
@media (min-width: 640px) { .letter { padding: 2rem 2.2rem; } .letter__foot { grid-template-columns: 1.3fr 1fr 1fr; } .letter__table { font-size: 0.92rem; } }
@media print { .letter { border: 0; padding: 0; overflow: visible; } .letter__foot { grid-template-columns: 1.3fr 1fr 1fr; } .pyears { display: none; } @page { margin: 1.6cm; } }

/* Exam hall ticket (the same one the office prints) */
.hallticket { background: #fff; border: 1.5px solid #111; border-radius: 6px; padding: 1rem 1.2rem; color: #111; break-inside: avoid; }
.hallticket > header { display: flex; align-items: center; gap: 0.8rem; border-bottom: 2px solid #1b2559; padding-bottom: 0.6rem; }
.hallticket > header img { width: 86px; height: auto; }
.hallticket > header div { display: grid; font-size: 0.8rem; flex: 1; min-width: 0; }
.hallticket > header strong { font-size: 1.15rem; color: #1b2559; line-height: 1.2; }
.hallticket > header b { border: 1.5px solid #111; padding: 0.2rem 0.6rem; font-size: 0.8rem; letter-spacing: 0.1em; white-space: nowrap; }
.hallticket h2 { text-align: center; font-size: 1rem; margin: 0.7rem 0; color: #111; }
.hallticket__who { display: grid; grid-template-columns: 1fr 1fr; gap: 0.3rem 1.2rem; margin: 0 0 0.7rem; font-size: 0.9rem; }
.hallticket__who div { display: flex; gap: 0.5rem; border-bottom: 1px dotted #999; padding-bottom: 0.15rem; min-width: 0; }
.hallticket__who dt { color: #555; white-space: nowrap; }
.hallticket__who dd { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.hallticket table { width: 100%; border-collapse: collapse; font-size: 0.86rem; }
.hallticket th, .hallticket td { border: 1px solid #999; padding: 0.25rem 0.5rem; text-align: left; background: none; color: #111; text-transform: none; letter-spacing: 0; font-size: inherit; }
.hallticket__rules { font-size: 0.76rem; color: #444; margin: 0.6rem 0 0; }
.hallticket > footer { display: flex; justify-content: space-between; margin-top: 2rem; font-size: 0.8rem; color: #444; }
.hallticket > footer span { border-top: 1px solid #777; padding-top: 0.2rem; min-width: 9rem; text-align: center; }
@media (max-width: 560px) { .hallticket__who { grid-template-columns: 1fr; } .hallticket > header b { display: none; } }
@media print { .hallticket { border-radius: 0; } }

.feecert__note--warn { background: #fff4d6; border: 1px solid #f2dc9b; border-radius: 8px; padding: 0.5rem 0.7rem; color: #5b4300; }
@media (max-width: 560px) { .feecert .feecert__mode { display: none; } .feecert__table { font-size: 0.76rem; } .feecert__table td, .feecert__table th { padding: 0.3rem 0.3rem; } }
@media print { .feecert .feecert__mode { display: table-cell; } }
@media (max-width: 400px) { .letter { padding: 1rem 0.7rem; } .feecert__table { font-size: 0.7rem; } .feecert__table td, .feecert__table th { padding: 0.25rem 0.22rem; } }
.feecert__table tfoot td { border: 1px solid #b9bfd3; }

.reportcard__skills { margin-top: 0.8rem; }

/* Timetable, forms and growth */
.ptt summary { display: flex; justify-content: space-between; align-items: center; cursor: pointer; list-style: none; }
.ptt summary::-webkit-details-marker { display: none; }
.ptt summary strong { color: var(--ink); font-size: 1.02rem; }
.ptt__now { background: var(--gold, #f4b400); color: #1b1e2f; font-size: 0.72rem; font-weight: 700; padding: 0.15rem 0.6rem; border-radius: 999px; }
.ptt ul { list-style: none; margin: 0.8rem 0 0; padding: 0; display: grid; gap: 0.35rem; }
.ptt li { display: grid; grid-template-columns: 3.4rem 1fr; gap: 0.8rem; align-items: center; padding: 0.5rem 0.7rem; border-radius: 10px; background: #f6f7fb; }
.ptt li > span { font-size: 0.74rem; color: var(--muted); line-height: 1.25; font-variant-numeric: tabular-nums; }
.ptt li div { display: grid; }
.ptt li strong { color: var(--ink); }
.ptt li em { font-style: normal; font-size: 0.8rem; color: var(--muted); }
.ptt__break { background: none !important; padding: 0.1rem 0.7rem !important; }
.ptt__break em { text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.7rem !important; }
.pformcard__body { white-space: pre-wrap; margin: 0.3rem 0 0.6rem; }
.pformcard__mine { margin: 0.4rem 0; }
.pformcard__choices { display: grid; grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr)); gap: 0.6rem; }
.pformcard__choices .pbtn { margin-top: 0; }
.ptable { width: 100%; border-collapse: collapse; font-size: 0.92rem; margin-top: 0.4rem; }
.ptable th { text-align: left; font-size: 0.74rem; color: var(--muted); padding: 0.3rem 0; border-bottom: 1px solid var(--line); }
.ptable td { padding: 0.45rem 0; border-bottom: 1px solid var(--line); }
