/* My classes (student dashboard). Uses the site color variables from style.css. */
.pt-card{background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:22px 26px;border-top:8px solid var(--blue)}
.pt-card.soft{background:var(--soft);box-shadow:none;border-top-color:var(--green)}
.pt-card h2{margin-top:0}
.pt-signin{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:26px;align-items:start}
.pt-form{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.pt-card .pt-form{margin-top:10px}
.pt-form label{font-weight:800;width:100%}
.pt-form input{font:inherit;font-size:19px;padding:10px 14px;border:2px solid var(--line);border-radius:10px;flex:1 1 260px;min-width:0}
.pt-err{background:#FFF4E5;border-left:6px solid #B26A00;border-radius:10px;padding:10px 14px}
.pt-list{padding-left:22px}
.pt-list li{margin:4px 0}
.pt-who{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;background:var(--soft);border-radius:12px;padding:10px 16px}
.pt-who form,.pt-form{background:none;border:0;border-radius:0;box-shadow:none;padding:0;margin:0}
.pt-stats{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:0;margin:20px 0 6px}
.pt-stats li{background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:16px 18px;border-left:6px solid var(--green2)}
.pt-stats b{display:block;font-size:34px;color:var(--navy);line-height:1.1}
.pt-stats span{font-size:16px;color:#33415C}
.pt-classes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:14px}
.pt-class{background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:20px 22px;border-top:6px solid var(--blue)}
.pt-ch{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}
.pt-ch h3{font-size:22px;margin:0 0 10px}
.pt-pill{display:inline-block;white-space:nowrap;font-size:13px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;border-radius:999px;padding:3px 10px}
.pt-pill.done{background:var(--green2);color:#fff}
.pt-pill.pass{background:var(--soft2);color:var(--green2)}
.pt-pill.prog{background:var(--soft);color:var(--blue2)}
.pt-pill.todo{background:#E3E8F0;color:#33415C}
.pt-prog{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:4px 0 10px}
.pt-track{flex:1 1 160px;height:12px;background:#E3E8F0;border-radius:999px;overflow:hidden}
.pt-track span{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--green));border-radius:999px}
.pt-pct{font-size:15px;font-weight:700;color:#33415C}
.pt-dl{margin:0 0 10px}
.pt-dl div{display:flex;gap:10px;justify-content:space-between;border-bottom:1px solid var(--line);padding:6px 0;font-size:16.5px}
.pt-dl dt{font-weight:700;color:#33415C}
.pt-dl dd{margin:0;text-align:right}
.pt-mods summary{cursor:pointer;font-weight:700;color:var(--blue2)}
.pt-mods ol{padding-left:22px;margin:8px 0}
.pt-mods li{font-size:16px;margin:3px 0}
.pt-mods li.ok::marker{color:var(--green2)}
.pt-mods li.ok{color:var(--green2)}
.pt-mods small{color:#5C6F8F}
.pt-total th,.pt-total td{background:var(--soft)}
.pt-paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:14px}
.pt-path{background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:18px 20px;border-top:6px solid var(--navy)}
.pt-path h3{font-size:21px;margin:0 0 8px}
.pt-steps{list-style:none;padding:0;margin:6px 0 0}
.pt-steps li{display:flex;align-items:baseline;gap:8px;font-size:15.5px;padding:3px 0}
.pt-steps small{margin-left:auto;color:#5C6F8F;white-space:nowrap}
.pt-dot{flex:0 0 12px;height:12px;border-radius:50%;border:2px solid #B8C4D6;background:#fff;transform:translateY(1px)}
.pt-steps li.done .pt-dot{background:var(--green2);border-color:var(--green2)}
.pt-steps li.started .pt-dot{background:var(--soft);border-color:var(--blue)}
.pt-steps li.free .pt-dot{border-style:dashed}
.pt-steps li.done small{color:var(--green2);font-weight:700}
.tscroll{position:relative}  /* keeps the hidden "Print" header text inside the scroll box */
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:980px){.pt-signin,.pt-classes{grid-template-columns:1fr}.pt-paths{grid-template-columns:1fr 1fr}.pt-stats{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.pt-paths{grid-template-columns:1fr}.pt-stats b{font-size:28px}.pt-card{padding:18px}}
.pt-stats ~ h2{margin-top:44px}
