/* Prepnity UI boost — colour, depth, motion. Loaded after style.css on every page. */
body{background:linear-gradient(180deg,#eef2ff 0%,#f8fafc 260px,#f1f5f9 100%);background-attachment:fixed;}
.navbar{background:linear-gradient(90deg,#1e3a8a,#4c2fa8 60%,#7c3aed)!important;box-shadow:0 4px 18px rgba(30,58,138,.25);}
.nav-links a{padding:6px 10px;border-radius:8px;transition:background .2s;}
.nav-links a:hover{background:rgba(255,255,255,.16);}
h1{color:#1e3a8a;font-weight:800;letter-spacing:-.2px;}
h2{color:#312e81;}
.card{border-radius:16px;border:1px solid #e0e7ff;box-shadow:0 6px 22px rgba(30,58,138,.07);animation:pnUp .45s ease both;}
@keyframes pnUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.btn{background:linear-gradient(135deg,#2563eb,#7c3aed);border-radius:10px;box-shadow:0 4px 12px rgba(79,70,229,.28);transition:transform .15s,box-shadow .15s,filter .15s;font-weight:600;}
.btn:hover{background:linear-gradient(135deg,#1d4ed8,#6d28d9);transform:translateY(-1px);box-shadow:0 8px 18px rgba(79,70,229,.35);}
.btn-secondary{background:#475569;box-shadow:0 3px 8px rgba(71,85,105,.22);}
.btn-secondary:hover{background:#334155;}
table{border-radius:12px;overflow:hidden;}
table th{background:linear-gradient(90deg,#e0e7ff,#ede9fe);color:#312e81;}
table tr:hover td{background:#f5f3ff;}
.dashboard-card{border-radius:16px!important;border:1px solid #e0e7ff!important;border-left:5px solid #2563eb!important;transition:transform .18s,box-shadow .18s;box-shadow:0 4px 14px rgba(30,58,138,.07);}
.dashboard-card:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(79,70,229,.18);}
.dashboard-grid>.dashboard-card:nth-child(4n+2){border-left-color:#7c3aed!important;}
.dashboard-grid>.dashboard-card:nth-child(4n+3){border-left-color:#f97316!important;}
.dashboard-grid>.dashboard-card:nth-child(4n+4){border-left-color:#16a34a!important;}
.sd-stat{border-radius:16px!important;background:linear-gradient(160deg,#fff,#eef2ff)!important;border:1px solid #c7d2fe!important;box-shadow:0 4px 12px rgba(79,70,229,.08);}
.sd-stat b{background:linear-gradient(135deg,#1e3a8a,#7c3aed);-webkit-background-clip:text;background-clip:text;color:transparent!important;}
/* tips / instructions */
.pn-tip{display:flex;gap:12px;align-items:flex-start;border-radius:14px;padding:12px 16px;margin:0 0 16px;font-size:14px;line-height:1.5;border:1px solid #fde68a;background:linear-gradient(135deg,#fffbeb,#fef3c7);color:#78350f;}
.pn-tip .ic{font-size:22px;line-height:1.2;flex-shrink:0;}
.pn-tip.info{border-color:#bfdbfe;background:linear-gradient(135deg,#eff6ff,#dbeafe);color:#1e3a8a;}
.pn-tip.good{border-color:#bbf7d0;background:linear-gradient(135deg,#f0fdf4,#dcfce7);color:#14532d;}
.pn-tip b{font-weight:700;}
/* progress bars */
.pn-bar{height:10px;background:#e2e8f0;border-radius:8px;overflow:hidden;}
.pn-bar i{display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,#2563eb,#7c3aed,#f97316);}
/* celebration banner + petals */
.pn-cele{border-radius:18px;padding:18px 20px;margin:0 0 16px;text-align:center;color:#fff;background:linear-gradient(135deg,#f59e0b,#ef4444 55%,#a855f7);box-shadow:0 10px 28px rgba(239,68,68,.3);animation:pnPop .7s cubic-bezier(.2,1.4,.4,1) both;}
.pn-cele b{display:block;font-size:22px;margin-bottom:2px;}
.pn-cele button{margin-top:8px;border:0;border-radius:20px;padding:6px 16px;font-weight:700;cursor:pointer;background:#fff;color:#be123c;}
@keyframes pnPop{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}
#pn-petals{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:9999;}
.pn-petal{position:absolute;top:-60px;will-change:transform;animation-name:pnFall;animation-timing-function:linear;animation-fill-mode:forwards;}
@keyframes pnFall{0%{transform:translate3d(0,-60px,0) rotate(0deg);opacity:1}85%{opacity:1}100%{transform:translate3d(var(--dx),110vh,0) rotate(var(--rot));opacity:0}}
@media (prefers-reduced-motion:reduce){.card,.pn-cele{animation:none}.dashboard-card:hover,.btn:hover{transform:none}}
/* ---- round 2 polish (17 Oct 2026) ---- */
/* links: no more default blue/purple */
:where(a){color:#2563eb;}
:where(a:visited){color:#2563eb;}
.btn,.btn:visited,.btn:hover,.btn:focus,.btn-secondary,.btn-secondary:visited,.btn-danger,.btn-danger:visited{color:#fff;}
main a:not(.btn):not(.btn-secondary):not(.series-card):not(.pn-exam-link):hover,.card a:not(.btn):not(.btn-secondary):hover{text-decoration:underline;}
table td a:not(.btn):not(.btn-secondary){color:#4f46e5;font-weight:600;text-decoration:none;white-space:nowrap;}
table td a:not(.btn):not(.btn-secondary):hover{text-decoration:underline;color:#312e81;}
/* home: exam heading row */
.pn-exam-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 14px;margin:30px 0 6px;}
.pn-exam-head .pn-exam-label{margin:0;font-size:17px;}
.pn-exam-link{font-size:12.5px;font-weight:700;text-decoration:none!important;color:#4338ca!important;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;padding:5px 12px;white-space:nowrap;transition:background .15s,transform .15s;}
.pn-exam-link span{display:inline-block;transition:transform .15s;}
.pn-exam-link:hover{background:#e0e7ff;}
.pn-exam-link:hover span{transform:translateX(3px);}
.pn-exam-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0 0 12px!important;color:#64748b;font-size:13px;}
/* series cards: softer, consistent */
.pn-home .series-card,.series-card{border-radius:14px!important;box-shadow:0 3px 12px rgba(30,58,138,.06);min-height:112px;display:flex!important;flex-direction:column;justify-content:space-between;}
.pn-home .series-card:hover,.series-card:hover{box-shadow:0 14px 28px -10px rgba(79,70,229,.28);}
.pn-price-row{margin-top:10px;}
/* cards on phone: breathing room, bigger tap targets */
@media (max-width:640px){
  .card{border-radius:14px;}
  .btn,.btn-secondary{min-height:44px;display:inline-flex;align-items:center;justify-content:center;}
  .pn-exam-head{margin-top:24px;}
  .pn-exam-link{padding:7px 12px;}
  table td a:not(.btn){display:inline-block;padding:4px 2px;}
}
/* focus ring for keyboard users */
a:focus-visible,button:focus-visible,.btn:focus-visible{outline:3px solid #a5b4fc;outline-offset:2px;border-radius:8px;}

/* header links: keep readable on the purple header (fix for global link colour) */
.navbar a,.navbar a:visited,.navbar .nav-links a,.navbar .nav-links a:visited{color:#fff;}
.navbar .nav-links a{font-weight:600;}
.navbar .nav-links a.nav-logout,.navbar .nav-links a.nav-logout:visited{color:#fdba74;}
.navbar .nav-links a:hover{color:#fff;background:rgba(255,255,255,.2);}

/* footer links: same colour whether visited or not */
.site-footer .footer-col a,.site-footer .footer-col a:visited{color:#cbd5e1;}
.site-footer .footer-col a:hover{color:#fff;}
.site-footer .footer-col p a,.site-footer .footer-col p a:visited{color:#93c5fd;}
.site-footer .footer-col p a:hover{color:#fff;}

/* footer links: same colour whether visited or not */
.footer-col a,.footer-col a:visited{color:#cbd5e1;}
.footer-col a:hover{color:#fff;}
.footer-col a.footer-contact,.footer-col a[href^="mailto:"],.footer-col a[href^="tel:"]{color:#93c5fd;}
