/* KALEM result portal (parents and students). Mobile first. */
:root{
  --maroon:#7a2140; --maroon-deep:#5c1830; --maroon-tint:#f7e9ee;
  --gold:#c98a2c; --gold-tint:#faf1e0; --gold-ink:#7a5210;
  --teal:#0e8f8a; --teal-ink:#0a6b67; --teal-tint:#e4f6f4;
  --ink:#1f2430; --soft:#5b6472; --line:#e2e5ea; --canvas:#f4f5f8; --paper:#fff;
  --danger:#a83228; --danger-tint:#fbeceb;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --sans:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55;}
h1,h2,h3{margin:0;line-height:1.25;}
p{margin:0 0 10px;}
a{color:var(--maroon);}
img{max-width:100%;}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums;}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;}

/* top bar */
.pt-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 16px;background:var(--paper);border-bottom:3px solid var(--maroon);}
.pt-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);}
.pt-brand img{width:38px;height:38px;border-radius:50%;border:2px solid var(--gold);object-fit:cover;}
.pt-brand b{display:block;font-family:var(--serif);font-size:16px;line-height:1.15;}
.pt-brand small{display:block;font-size:12px;color:var(--soft);}
.pt-user{display:flex;align-items:center;gap:12px;}
.pt-who{font-size:13px;font-weight:600;text-align:right;line-height:1.25;max-width:220px;}
.pt-who small{display:block;font-weight:400;color:var(--soft);font-size:12px;}
.pt-foot{padding:22px 16px 30px;text-align:center;font-size:12.5px;color:var(--soft);}

/* buttons */
.pt-btn{display:inline-block;background:var(--maroon);color:#fff;border:1px solid var(--maroon);border-radius:6px;padding:10px 18px;font:600 14px/1.2 var(--sans);text-decoration:none;cursor:pointer;text-align:center;}
.pt-btn:hover{background:var(--maroon-deep);border-color:var(--maroon-deep);}
.pt-btn:disabled{opacity:.5;cursor:not-allowed;}
.pt-btn-quiet{background:transparent;color:var(--maroon);border-color:var(--line);}
.pt-btn-quiet:hover{background:var(--maroon-tint);color:var(--maroon-deep);border-color:var(--maroon-tint);}
.pt-btn-block{display:block;width:100%;padding:13px 18px;font-size:15px;}

/* notes */
.pt-note{padding:11px 14px;border-radius:6px;margin-bottom:16px;font-size:14px;background:var(--gold-tint);color:var(--gold-ink);border:1px solid #ecd9b3;}
.pt-note-err{background:var(--danger-tint);color:var(--danger);border-color:#f0c4c0;}
.pt-note-ok{background:var(--teal-tint);color:var(--teal-ink);border-color:#b7e2de;}

/* login */
.pt-login{max-width:900px;margin:22px auto;background:var(--paper);border:1px solid var(--line);border-radius:10px;overflow:hidden;display:grid;grid-template-columns:1fr;}
.pt-letterhead{padding:26px 22px;background:var(--maroon);color:#fff;}
.pt-letterhead img{width:64px;height:64px;border-radius:50%;border:2px solid var(--gold);background:#fff;object-fit:cover;object-position:center 15%;margin-bottom:14px;}
.pt-letterhead h1{font-family:var(--serif);font-size:24px;margin-bottom:10px;}
.pt-letterhead p{color:#f0dfe6;font-size:14px;max-width:34em;}
.pt-steps{margin:14px 0 0;padding-left:20px;font-size:14px;color:#f7ecf0;}
.pt-steps li{margin-bottom:6px;}
.pt-signin{padding:26px 22px 24px;order:-1;}
.pt-signin h2{font-family:var(--serif);font-size:22px;margin-bottom:16px;}
.pt-seg{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:16px;}
.pt-seg label{position:relative;cursor:pointer;}
.pt-seg input{position:absolute;opacity:0;inset:0;}
.pt-seg span{display:block;text-align:center;padding:11px 8px;font-weight:600;font-size:14px;color:var(--soft);background:#fafbfc;}
.pt-seg input:checked + span{background:var(--maroon);color:#fff;}
.pt-seg input:focus-visible + span{outline:3px solid var(--gold);outline-offset:-3px;}
.pt-field{display:block;margin-bottom:14px;font-size:13px;font-weight:600;color:var(--soft);}
.pt-field input,.pt-pin{display:block;width:100%;margin-top:5px;padding:12px 13px;border:1px solid #c9ced6;border-radius:6px;font:500 16px var(--sans);color:var(--ink);background:#fff;}
.pt-pin{font-family:var(--mono);font-size:20px;letter-spacing:.14em;text-transform:uppercase;}
.pt-field input:focus,.pt-pin:focus{outline:none;border-color:var(--maroon);box-shadow:0 0 0 3px rgba(122,33,64,.15);}
.pt-help{margin:16px 0 0;font-size:13px;color:var(--soft);}
@media (min-width:760px){
  .pt-login{grid-template-columns:1.05fr 1fr;margin-top:40px;}
  .pt-letterhead,.pt-signin{padding:38px 34px;}
  .pt-signin{order:0;}
}

/* pages */
.pt-page{max-width:820px;margin:0 auto;padding:22px 14px 10px;}
.pt-page-wide{max-width:960px;}
.pt-pagehead{margin-bottom:18px;}
.pt-pagehead h1{font-family:var(--serif);font-size:26px;}
.pt-pagehead p{color:var(--soft);margin-top:4px;}
.pt-panel{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:18px;margin-bottom:18px;}
.pt-panel h1,.pt-panel h2{font-family:var(--serif);font-size:20px;margin-bottom:8px;}

/* children and terms */
.pt-child{background:var(--paper);border:1px solid var(--line);border-radius:10px;margin-bottom:18px;overflow:hidden;}
.pt-child-head{display:flex;align-items:center;gap:14px;padding:16px 18px;border-bottom:1px solid var(--line);}
.pt-child-head h2{font-family:var(--serif);font-size:20px;}
.pt-child-head p{margin:2px 0 0;color:var(--soft);font-size:13.5px;}
.pt-photo{width:56px;height:56px;border-radius:8px;object-fit:cover;flex:0 0 auto;background:var(--maroon-tint);}
.pt-initials{display:flex;align-items:center;justify-content:center;font:700 18px var(--serif);color:var(--maroon);}
.pt-photo-lg{width:84px;height:84px;border-radius:6px;border:1px solid var(--line);}
.pt-terms{list-style:none;margin:0;padding:0;}
.pt-term{display:grid;gap:8px;padding:14px 18px;border-bottom:1px solid var(--line);align-items:center;}
.pt-term:last-child{border-bottom:none;}
.pt-tag{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:20px;background:var(--gold-tint);color:var(--gold-ink);font-size:12px;font-weight:600;}
.pt-term-stats{display:flex;gap:18px;flex-wrap:wrap;font-size:14px;color:var(--soft);}
.pt-term-stats b{color:var(--ink);}
.pt-term-msg{font-size:14px;color:var(--soft);}
.pt-held .pt-term-msg{color:var(--gold-ink);}
.pt-empty{color:var(--soft);padding:14px 18px;margin:0;font-size:14px;}
.pt-comment .pt-empty{padding:0;}
@media (min-width:640px){
  .pt-term{grid-template-columns:1.2fr 1.6fr auto;}
  .pt-term > .pt-term-msg{grid-column:2 / 4;}
}
.pt-unlock .pt-inline{display:flex;gap:10px;flex-wrap:wrap;}
.pt-unlock .pt-pin{margin-top:0;width:auto;flex:1 1 200px;max-width:280px;}

/* report sheet */
.pt-actions{display:flex;gap:10px;justify-content:space-between;margin-bottom:14px;}
.pt-report{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:20px 16px;}
.pt-rhead{display:flex;align-items:center;gap:14px;padding-bottom:14px;border-bottom:2px solid var(--maroon);}
.pt-rcrest{width:54px;height:54px;border-radius:50%;border:2px solid var(--gold);flex:0 0 auto;}
.pt-rtitle{flex:1;min-width:0;}
.pt-rtitle h1{font-family:var(--serif);font-size:20px;color:var(--maroon-deep);}
.pt-rtitle p{margin:2px 0 0;color:var(--soft);font-size:14px;}
.pt-ident{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;margin:16px 0;}
.pt-ident dt{font-size:12.5px;color:var(--soft);}
.pt-ident dd{margin:0;font-weight:600;font-size:14px;overflow-wrap:anywhere;}
.pt-ident > div:first-child{grid-column:1 / -1;}
.pt-standing{display:grid;gap:14px;padding:16px;margin-bottom:20px;background:var(--maroon-tint);border-radius:8px;}
.pt-pos{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.pt-pos-n{font-family:var(--serif);font-weight:700;font-size:52px;line-height:1;color:var(--maroon-deep);}
.pt-pos-l{color:var(--soft);font-size:14px;}
.pt-figures,.pt-trend{display:flex;gap:10px 26px;flex-wrap:wrap;}
.pt-figures > div,.pt-trend > div{display:flex;flex-direction:column;}
.pt-fig-v{font-size:19px;font-weight:600;}
.pt-fig-l{font-size:12.5px;color:var(--soft);}
.pt-h2{font-family:var(--serif);font-size:18px;margin:22px 0 10px;}
.pt-standing + section .pt-h2{margin-top:4px;}
.pt-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:6px;}
.pt-table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:520px;}
.pt-table th,.pt-table td{padding:9px 7px;border-bottom:1px solid var(--line);text-align:center;}
.pt-table th{background:#f8f9fb;font-size:12.5px;font-weight:600;color:var(--soft);vertical-align:bottom;}
.pt-table th small{font-weight:400;}
.pt-table tbody tr:last-child td{border-bottom:none;}
.pt-table .pt-l{text-align:left;}
.pt-table td.pt-l,.pt-table th.pt-l{position:sticky;left:0;background:#fff;min-width:104px;max-width:120px;font-weight:600;}
.pt-table th.pt-l{background:#f8f9fb;}
.pt-grade{display:inline-block;min-width:24px;padding:1px 6px;border-radius:4px;font-weight:700;font-size:13px;}
.pt-g-a,.pt-g-b{background:var(--teal-tint);color:var(--teal-ink);}
.pt-g-c,.pt-g-d{background:var(--gold-tint);color:var(--gold-ink);}
.pt-g-e,.pt-g-f{background:var(--danger-tint);color:var(--danger);}
.pt-remark{font-size:12.5px;color:var(--soft);}
.pt-two{display:grid;gap:8px 28px;}
@media (min-width:720px){ .pt-two{grid-template-columns:1.3fr 1fr;} }
.pt-aff{list-style:none;margin:0;padding:0;}
.pt-aff li{display:grid;grid-template-columns:110px auto 1fr;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line);font-size:14px;}
.pt-dots{display:inline-flex;gap:4px;}
.pt-dots i{width:11px;height:11px;border-radius:50%;border:1.5px solid var(--gold);display:block;}
.pt-dots i.on{background:var(--gold);}
.pt-aff-w{color:var(--soft);font-size:13px;}
.pt-key{min-width:0;}
.pt-key td{padding:6px 10px;text-align:left;}
.pt-promo{margin:12px 0 0;padding:10px 12px;border-radius:6px;background:var(--gold-tint);color:var(--gold-ink);}
.pt-promo-ok{background:var(--teal-tint);color:var(--teal-ink);}
.pt-comment{padding:10px 0;border-bottom:1px solid var(--line);}
.pt-cwho{font-weight:600;font-size:13px;color:var(--soft);margin-bottom:2px;}
.pt-printfoot{display:none;}
@media (min-width:640px){
  .pt-report{padding:28px 30px;}
  .pt-ident{grid-template-columns:repeat(3,1fr);}
  .pt-ident > div:first-child{grid-column:1 / -1;}
  .pt-standing{grid-template-columns:auto 1fr;align-items:center;gap:30px;padding:18px 22px;}
}

@media print{
  @page{size:A4;margin:12mm;}
  .no-print{display:none !important;}
  body{background:#fff;font-size:12px;}
  .pt-page,.pt-page-wide{max-width:none;padding:0;}
  .pt-report{border:none;padding:0;border-radius:0;}
  .pt-standing{background:#fff;border:1px solid #999;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .pt-scroll{overflow:visible;border:none;}
  .pt-table{min-width:0;font-size:12px;}
  .pt-table td.pt-l,.pt-table th.pt-l{position:static;}
  .pt-grade{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .pt-two,.pt-comment,.pt-standing,.pt-table tr{break-inside:avoid;}
  .pt-printfoot{display:block;margin-top:14px;font-size:11px;color:#555;text-align:center;}
}
