/* Coaching features: paginated tables, students to watch, test insights, homework (DPP), receipts + UPI QR,
   online fee payments. Paper & Ink tokens only (themes/<centre>.css); no raw brand colours. */

/* ---------------------------------------------------------------- paginated table */
.skel{display:block;height:12px;border-radius:6px;background:linear-gradient(90deg,var(--paper-2),var(--line),var(--paper-2));background-size:200% 100%;animation:skel 1.2s linear infinite}
.pt-skel td{padding-top:16px;padding-bottom:16px}
@keyframes skel{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.skel{animation:none}}
tbody.pt-loading{opacity:.55;transition:opacity var(--dur) var(--ease)}
.pt-foot{flex-wrap:wrap}
.pt-foot .pager{flex-wrap:wrap}
.pt-size{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-14);color:var(--ink-2)}
.pt-size .select{height:34px;padding-top:0;padding-bottom:0;width:auto}
th[data-pt-sort] button{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:4px;font:inherit}
th[data-pt-sort] button:focus-visible{box-shadow:var(--focus);border-radius:4px}
th[aria-sort="ascending"] button::after{content:"↑";color:var(--accent-600)}
th[aria-sort="descending"] button::after{content:"↓";color:var(--accent-600)}

/* ---------------------------------------------------------------- students to watch */
.why-list{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.why{display:inline-flex;align-items:center;gap:5px;min-height:26px;padding:2px 10px;border-radius:var(--r-pill);font:600 var(--t-12)/1.3 var(--f-body);background:var(--paper-2);color:var(--ink-1);border:1px solid var(--line-2)}
.why.sev-3{background:var(--danger-bg);border-color:#ecc2c2;color:var(--danger)}
.why.sev-2{background:var(--warn-bg);border-color:#efd8a3;color:var(--warn)}
.watch-rules{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px 20px;margin:0;font-size:var(--t-14)}
.watch-rules div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed var(--line-2);padding:6px 0}
.watch-rules dt{color:var(--ink-2)} .watch-rules dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}
.watch-mini li .why-list{margin-top:4px}
.watch-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.note-box{margin-top:6px}
.note-box textarea{width:100%;min-height:64px}

/* ---------------------------------------------------------------- test insights */
.dist{display:grid;grid-template-columns:repeat(var(--bins,9),1fr);gap:4px;align-items:end;height:120px;margin:8px 0 4px}
.dist i{display:block;background:var(--d3);border-radius:4px 4px 0 0;min-height:2px}
.dist i.me{background:var(--accent-500)}
.dist-axis{display:grid;grid-template-columns:repeat(var(--bins,9),1fr);gap:4px;font-size:var(--t-12);color:var(--ink-3);text-align:center;font-variant-numeric:tabular-nums}
.opt-bar{display:flex;height:14px;border-radius:4px;overflow:hidden;min-width:140px;background:var(--paper-2)}
.opt-bar i{display:block;height:100%}
.opt-bar .ok{background:var(--success)} .opt-bar .trap{background:var(--danger)} .opt-bar .other{background:var(--d2)} .opt-bar .skip{background:var(--line)}
.opt-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:var(--t-12);color:var(--ink-2)}
.opt-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.heat{border-collapse:separate;border-spacing:3px;width:100%}
.heat th{font:600 var(--t-12) var(--f-body);color:var(--ink-2);text-align:left;padding:4px 6px}
.heat td{text-align:center;font:600 var(--t-14) var(--f-display);font-variant-numeric:tabular-nums;border-radius:6px;padding:10px 6px;min-width:56px}
.heat .h1{background:var(--accent-100);color:var(--ink-1);box-shadow:inset 0 0 0 1.5px var(--accent-500)} .heat .h2{background:var(--d1);color:var(--ink-1)} .heat .h3{background:var(--brand-200);color:var(--brand-950)}
.heat .h4{background:var(--d3);color:#fff} .heat .h5{background:var(--d5);color:#fff}
.heat-key{display:flex;gap:4px;align-items:center;font-size:var(--t-12);color:var(--ink-2);flex-wrap:wrap}
.heat-key span{display:inline-block;width:28px;height:12px;border-radius:3px}
.reteach li{align-items:flex-start}
.reteach input{width:18px;height:18px;margin-top:3px;accent-color:var(--brand-900)}

/* ---------------------------------------------------------------- homework / DPP */
.dpp-q{padding:16px 20px;border:0;border-top:1px solid var(--line);margin:0;min-width:0}
.dpp-q:first-child{border-top:0}
.dpp-q h3{font:600 var(--t-16)/1.45 var(--f-body);margin:0 0 10px;display:flex;gap:8px}
.dpp-q h3 .qno{flex:none;color:var(--ink-3);font-variant-numeric:tabular-nums}
.dpp-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;border:0}
.dpp-opts label{display:flex;gap:10px;align-items:center;min-height:44px;padding:8px 12px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--sheet);cursor:pointer}
.dpp-opts label:has(input:checked){border-color:var(--brand-900);background:var(--brand-50)}
.dpp-opts label:has(input:focus-visible){box-shadow:var(--focus)}
.dpp-opts input{accent-color:var(--brand-900)}
.dpp-opts label.right{border-color:var(--success);background:var(--success-bg)}
.dpp-opts label.wrong{border-color:var(--danger);background:var(--danger-bg)}
.dpp-why{margin:10px 0 0;font-size:var(--t-14);color:var(--ink-2)}
.dpp-score{font:700 var(--t-36)/1 var(--f-display);color:var(--brand-900);font-variant-numeric:tabular-nums}
@media (max-width:640px){.dpp-opts{grid-template-columns:1fr}}

/* ---------------------------------------------------------------- receipt + UPI QR */
.qr-box{display:flex;gap:16px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--sheet)}
.qr-box>span:first-child{display:block;flex:none;line-height:0}
.qr-box .qr{display:block;width:148px;height:148px;max-width:none}
.qr-ph{width:148px;height:148px;flex:none;display:grid;place-items:center;text-align:center;padding:10px;border:2px dashed var(--line-2);border-radius:var(--r-sm);font-size:var(--t-12);color:var(--ink-2)}
.rc-print{display:none}
@page receipt{size:A5 portrait;margin:12mm}
@media print{
  html.printing-receipt body *{visibility:hidden}
  html.printing-receipt .rc-print,html.printing-receipt .rc-print *{visibility:visible}
  html.printing-receipt .rc-print{display:block;position:absolute;inset:0 auto auto 0;width:100%;page:receipt}
  .rc-print .receipt{box-shadow:none;border:1px solid #000}
}

/* ---------------------------------------------------------------- online fee payments (Cashfree) */
.gw-steps{counter-reset:gw;list-style:none;margin:0;padding:0;display:grid;gap:10px}
.gw-steps li{counter-increment:gw;display:grid;grid-template-columns:32px 1fr;gap:10px;align-items:start;font-size:var(--t-14);line-height:1.5}
.gw-steps li::before{content:counter(gw);display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--brand-900);color:#fff;font:700 var(--t-12) var(--f-display)}
.gw-steps b{color:var(--ink-1)}
.gw-guide summary{cursor:pointer;font:600 var(--t-16) var(--f-display);color:var(--brand-900);padding:4px 0;min-height:44px;display:flex;align-items:center}
.copy-row{display:flex;gap:8px;align-items:center}
.copy-row code{flex:1;min-width:0;overflow-wrap:anywhere;padding:8px 10px;border-radius:var(--r-sm);background:var(--paper-2);border:1px solid var(--line);font-size:var(--t-12)}
.pay-note{font-size:var(--t-12);color:var(--ink-2)}
.sim-pay{max-width:420px}
