/* ==========================================================================
   Photon PDF theme — the web version of the Photon PDF look
   (Basics / topical / Mastery / predicted papers).

   Fonts   : Fraunces (titles) · Inter (labels, UI) · Source Serif 4 italic (lede / body prose)
   Palette : navy #12294b titles · ink #1f2633 body · muted #5f6675 · rules #d9d2c3 on a cream page
             claret #7a2232 mastheads/section bars · Basics green #1d7a5a · Mastery gold #9a7223
   Pages   : /library/ /mastery-questions/ /account/ /admin/diagnostics/ /papers/ /assigned/
             /worksheets/ /predicted-papers/

   Load AFTER the page's own <style>, plus the Google Fonts line:
   https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;1,8..60,400&display=swap

   Sections: 1 tokens · 2 masthead + key strip · 3 pills · 4 buttons · 5 cards/gates/notes
             6 section bar · 7 modal chrome · 8 page chrome · 9 viewer shell (fp-*, papers/assigned/
             worksheets/predicted) · 10 booklet button + modal
   ========================================================================== */

/* ---------- 1. tokens ---------- */
:root{
  --pl-bg:#f6f3ec; --pl-paper:#ffffff; --pl-ink:#1f2633; --pl-navy:#12294b; --pl-muted:#5f6675;
  --pl-rule:#d9d2c3; --pl-rule-soft:#ebe5da;
  --pl-claret:#7a2232; --pl-claret-tint:#f7eeef;
  --pl-slate:#355a8a;  --pl-slate-tint:#eef2f8;
  --pl-green:#1d7a5a;  --pl-green-tint:#eef6f1;
  --pl-gold:#9a7223;   --pl-gold-tint:#f8f1e2;
  --pl-sans:'Inter',system-ui,-apple-system,sans-serif;
  --pl-display:'Fraunces',Georgia,serif;
  --pl-serif:'Source Serif 4',Georgia,serif;
  --pl-radius:10px;
  --pl-accent:var(--pl-claret);          /* kicker word / badge accent; pages may override (Mastery = gold) */
}
body.pl-page{background:var(--pl-bg);font-family:var(--pl-sans);color:var(--pl-ink);}

/* ---------- 2. masthead + key strip (same anatomy as a PDF cover) ---------- */
.pl-wrap{max-width:1200px;margin:0 auto;padding:0 24px;}
@media(max-width:600px){.pl-wrap{padding:0 16px;}}
.pl-mast{background:var(--pl-paper);border-bottom:1px solid var(--pl-rule);padding:30px 0 0;color:var(--pl-ink);font-family:var(--pl-sans);}
.pl-kicker{font-family:var(--pl-display);font-weight:600;font-size:15px;letter-spacing:0.32em;text-transform:uppercase;color:var(--pl-navy);margin:0;line-height:1.4;}
.pl-kicker b{color:var(--pl-accent);font-weight:600;}
.pl-sub{font-family:var(--pl-sans);font-size:10.5px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--pl-muted);margin:8px 0 6px;line-height:1.4;}
.pl-titlerow{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;justify-content:space-between;}
.pl-mast h1{font-family:var(--pl-display);font-weight:600;font-size:clamp(30px,4.2vw,44px);letter-spacing:-0.01em;line-height:1.08;color:var(--pl-navy);margin:0;}
.pl-badge{font-family:var(--pl-sans);display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--pl-accent);color:var(--pl-accent);border-radius:4px;padding:6px 12px;font-size:10.5px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;white-space:nowrap;background:transparent;}
.pl-badge--navy{border-color:var(--pl-navy);color:var(--pl-navy);}
.pl-badge--student,.pl-badge--admin{border-color:var(--pl-navy);color:var(--pl-navy);}
.pl-badge--solid{background:var(--pl-navy);border-color:var(--pl-navy);color:#fff;}
@media(max-width:600px){.pl-badge{white-space:normal;line-height:1.4;letter-spacing:0.1em;font-size:10px;}}
.pl-lede{font-family:var(--pl-serif);font-style:italic;font-size:15.5px;line-height:1.6;color:var(--pl-muted);max-width:760px;margin:12px 0 22px;font-weight:400;}
.pl-lede a{color:var(--pl-claret);text-decoration:underline;text-underline-offset:2px;}
.pl-mast--gold{--pl-accent:var(--pl-gold);}
.pl-mast--green{--pl-accent:var(--pl-green);}

/* Key strip = the "facts" row on a PDF cover.  .pl-keys__cell > .pl-keys__k + .pl-keys__v */
.pl-keys{display:grid;grid-template-columns:repeat(var(--pl-cols,5),1fr);border-top:1px solid var(--pl-rule);}
.pl-keys__cell{padding:12px 16px 16px;border-right:1px solid var(--pl-rule);min-width:0;}
.pl-keys__cell:first-child{padding-left:0;}
.pl-keys__cell:last-child{border-right:0;}
.pl-keys__k{display:flex;align-items:center;gap:7px;font-family:var(--pl-sans);font-size:10px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--pl-muted);}
.pl-keys__v{font-family:var(--pl-sans);font-size:13px;font-weight:600;color:var(--pl-navy);margin-top:4px;line-height:1.35;}
.pl-keys__v small{display:block;font-weight:400;color:var(--pl-muted);font-size:12px;margin-top:2px;}
.pl-keys--4{--pl-cols:4;} .pl-keys--3{--pl-cols:3;}
@media(max-width:900px){
  /* Compact key on small screens: just the coloured labels. */
  .pl-keys{display:flex;flex-wrap:wrap;gap:8px 16px;padding:12px 0 14px;}
  .pl-keys__cell{padding:0;border:0;}
  .pl-keys__v{display:none;}
  .pl-mast{padding-top:22px;}
  .pl-lede{font-size:14.5px;margin:10px 0 14px;}
}
/* "facts" variant: values stay visible, 2-up on phones (Mastery, dashboard, admin) */
.pl-keys--facts .pl-keys__v{font-size:14px;}
@media(max-width:760px){
  .pl-keys--facts{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:0;}
  .pl-keys--facts .pl-keys__cell{padding:10px 10px 12px 0;border:0;}
  .pl-keys--facts .pl-keys__cell:nth-child(2n){padding-left:12px;border-left:1px solid var(--pl-rule-soft);}
  .pl-keys--facts .pl-keys__cell:nth-child(n+5){display:none;}
  .pl-keys--facts .pl-keys__v{display:block;}
}
.pl-dot{width:8px;height:8px;border-radius:2px;display:inline-block;flex-shrink:0;}
.pl-dot--notes{background:var(--pl-navy);} .pl-dot--cheatsheet{background:var(--pl-slate);}
.pl-dot--tutorial{background:var(--pl-claret);} .pl-dot--basic{background:var(--pl-green);}
.pl-dot--mastery{background:var(--pl-gold);}

/* ---------- 3. pills (subject / paper switchers) ---------- */
.pl-pills{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:2px;}
.pl-pills::-webkit-scrollbar{display:none;}
.pl-pill{font-family:var(--pl-sans);flex-shrink:0;display:inline-flex;align-items:center;gap:6px;background:var(--pl-paper);border:1px solid var(--pl-rule);color:var(--pl-ink);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer;line-height:1.2;transition:border-color .12s,background .12s;}
.pl-pill:hover{border-color:var(--pl-navy);}
.pl-pill.active{background:var(--pl-navy);border-color:var(--pl-navy);color:#fff;}
.pl-pill[disabled]{opacity:.5;cursor:not-allowed;}
.pl-pill svg{width:12px;height:12px;opacity:.65;}
.pl-pill--gold.active{background:var(--pl-gold);border-color:var(--pl-gold);}
.pl-pill--claret.active{background:var(--pl-claret);border-color:var(--pl-claret);}
.pl-label{font-family:var(--pl-sans);font-size:10px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--pl-muted);}
.pl-input{font-family:var(--pl-sans);font-size:13.5px;color:var(--pl-ink);background:#fff;border:1px solid var(--pl-rule);border-radius:999px;padding:7px 14px;}
.pl-input:focus{border-color:var(--pl-navy);outline:none;}

/* ---------- 4. buttons ---------- */
.pl-btn{font-family:var(--pl-sans);display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:7px;padding:11px 20px;font-size:14px;font-weight:600;border:1px solid var(--pl-navy);cursor:pointer;line-height:1.2;text-decoration:none;transition:background .12s,border-color .12s,color .12s;}
.pl-btn--solid{background:var(--pl-navy);color:#fff;}
.pl-btn--solid:hover{background:var(--pl-claret);border-color:var(--pl-claret);color:#fff;}
.pl-btn--line{background:#fff;color:var(--pl-navy);}
.pl-btn--line:hover{border-color:var(--pl-claret);color:var(--pl-claret);}
.pl-btn--gold{background:var(--pl-gold);border-color:var(--pl-gold);color:#fff;}
.pl-btn--gold:hover{background:var(--pl-navy);border-color:var(--pl-navy);}
.pl-btn--sm{padding:7px 12px;font-size:12.5px;border-radius:6px;}
.pl-btn[disabled]{opacity:.45;cursor:not-allowed;}
.pl-btn svg{width:14px;height:14px;flex-shrink:0;}

/* ---------- 5. cards, gates, notes ---------- */
.pl-card{background:var(--pl-paper);border:1px solid var(--pl-rule);border-radius:var(--pl-radius);padding:44px 32px;text-align:center;font-family:var(--pl-sans);}
.pl-card h2,.pl-card h3{font-family:var(--pl-display);font-weight:600;color:var(--pl-navy);font-size:24px;margin:0 0 10px;line-height:1.2;}
.pl-card p{font-family:var(--pl-serif);font-size:15.5px;line-height:1.6;color:var(--pl-muted);margin:0 auto 22px;max-width:520px;font-weight:400;}
.pl-card__icon{display:inline-flex;width:52px;height:52px;border-radius:12px;align-items:center;justify-content:center;background:var(--pl-claret-tint);color:var(--pl-claret);margin-bottom:14px;}
.pl-card__icon svg{width:24px;height:24px;}
.pl-card__acts{display:inline-flex;gap:10px;flex-wrap:wrap;justify-content:center;}
.pl-gate{max-width:560px;margin:48px auto;padding:40px 28px;text-align:center;background:var(--pl-paper);border:1px solid var(--pl-rule);border-radius:var(--pl-radius);font-family:var(--pl-sans);}
.pl-gate h2{font-family:var(--pl-display);font-weight:600;color:var(--pl-navy);font-size:24px;margin:0 0 10px;line-height:1.2;}
.pl-gate p{font-family:var(--pl-serif);color:var(--pl-muted);font-size:15.5px;line-height:1.6;margin:0 0 22px;font-weight:400;}
.pl-gate--plain{background:none;border:0;color:var(--pl-muted);font-size:14px;}
.pl-note{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--pl-rule);background:var(--pl-paper);border-radius:var(--pl-radius);padding:12px 16px;font-family:var(--pl-sans);font-size:13.5px;line-height:1.55;color:var(--pl-ink);}
.pl-note__tag{flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;padding:4px 9px;border-radius:4px;background:var(--pl-navy);color:#fff;margin-top:1px;}
.pl-note--gold{background:var(--pl-gold-tint);border-color:#e6d6b3;} .pl-note--gold .pl-note__tag{background:var(--pl-gold);}
.pl-note--claret{background:var(--pl-claret-tint);border-color:#e3c4c9;} .pl-note--claret .pl-note__tag{background:var(--pl-claret);}
.pl-spin{width:32px;height:32px;border:3px solid rgba(18,41,75,0.14);border-top-color:var(--pl-claret);border-radius:50%;animation:pl-spin .8s linear infinite;margin:0 auto 14px;}
@keyframes pl-spin{to{transform:rotate(360deg);}}
.pl-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--pl-navy);color:#fff;padding:12px 20px;border-radius:8px;font-family:var(--pl-sans);font-size:13.5px;box-shadow:0 8px 30px rgba(0,0,0,0.25);opacity:0;transition:opacity .2s;pointer-events:none;z-index:10000;}
.pl-toast.show{opacity:1;} .pl-toast--err{background:var(--pl-claret);}
/* generic content panel + chip + table used by dashboard/admin */
.pl-panel{background:var(--pl-paper);border:1px solid var(--pl-rule);border-radius:var(--pl-radius);padding:18px 20px;}
.pl-chip{display:inline-flex;align-items:center;gap:5px;font-family:var(--pl-sans);font-size:10.5px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:var(--pl-slate-tint);color:var(--pl-slate);}
.pl-chip--green{background:var(--pl-green-tint);color:var(--pl-green);} .pl-chip--gold{background:var(--pl-gold-tint);color:var(--pl-gold);}
.pl-chip--claret{background:var(--pl-claret-tint);color:var(--pl-claret);}

/* ---------- 6. section bar — "SECTION 1  Paper 2" bar in the PDFs ---------- */
.pl-secbar{display:flex;align-items:baseline;gap:12px;background:var(--pl-claret-tint);border-left:3px solid var(--pl-claret);padding:9px 14px;border-radius:0 6px 6px 0;}
.pl-secbar__n{font-family:var(--pl-sans);font-size:10px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--pl-claret);}
.pl-secbar__t{font-family:var(--pl-display);font-weight:600;font-size:18px;color:var(--pl-navy);}
.pl-secbar__d{margin-left:auto;font-size:12px;color:var(--pl-muted);text-align:right;}

/* ---------- 7. modal chrome ---------- */
.pl-vm-head{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--pl-paper);border-bottom:3px solid var(--pl-claret);flex-shrink:0;}
.pl-vm-head__k{font-family:var(--pl-sans);font-size:10px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--pl-claret);}
.pl-vm-head__t{font-family:var(--pl-display);font-weight:600;font-size:17px;color:var(--pl-navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ---------- 8. page chrome (viewer-style pages: the dark site banner is replaced by a paper masthead) ---------- */
.pl-bar{background:var(--pl-paper);border-bottom:1px solid var(--pl-rule);font-family:var(--pl-sans);}

/* ---------- 9. viewer shell (fp-*) — /papers/ /worksheets/ /predicted-papers/ ----------
   Scoped to body.pl-app so it out-ranks each page's own (older, dark/gold) <style>.
   Re-points the page variables at the Photon PDF palette, then skins the shell. */
body.pl-app{
  --navy:#12294b; --navy-deep:#12294b; --navy-mid:#355a8a; --gold:#9a7223; --gold-light:#b88a35;
  --cream:#f6f3ec; --cream-2:#ebe5da; --panel:#ffffff; --panel-soft:#faf8f3;
  --text:#1f2633; --text-mute:#5f6675; --border:#ebe5da; --border-strong:#d9d2c3;
  font-family:var(--pl-sans);background:var(--pl-bg);color:var(--pl-ink);font-size:14px;
}
body.pl-app button,body.pl-app select,body.pl-app input{font-family:var(--pl-sans);}
/* compact masthead (kicker + sub), same type as the PDF cover */
body.pl-app .fp-banner{background:var(--pl-paper);color:var(--pl-ink);border-bottom:1px solid var(--pl-rule);height:64px;padding:10px 22px;}
body.pl-app .fp-banner::after{height:3px;background:var(--pl-claret);opacity:1;left:0;right:auto;width:84px;}
body.pl-app .fp-banner-back{background:#fff;border:1px solid var(--pl-rule);color:var(--pl-navy);}
body.pl-app .fp-banner-back:hover{border-color:var(--pl-navy);background:#fff;color:var(--pl-navy);}
body.pl-app .fp-banner-logo-img{background:#fff;border:1px solid var(--pl-rule);}
body.pl-app .fp-banner-text{gap:3px;}
body.pl-app .fp-banner-text strong{font-family:var(--pl-display);font-weight:600;font-size:15px;letter-spacing:0.26em;color:var(--pl-navy);}
body.pl-app .fp-banner-text small{font-family:var(--pl-sans);font-size:10px;letter-spacing:0.16em;color:var(--pl-muted);font-weight:600;}
body.pl-app .fp-banner-username{color:var(--pl-muted);}
body.pl-app .fp-banner-avatar{background:var(--pl-navy);color:#fff;}
body.pl-app .fp-banner-user-link{color:var(--pl-navy);border:1px solid var(--pl-rule);background:#fff;font-family:var(--pl-sans);}
body.pl-app .fp-banner-user-link:hover{background:var(--pl-navy);color:#fff;border-color:var(--pl-navy);}
body.pl-app .fp-paper-toggle{background:#fff;border:1px solid var(--pl-rule);color:var(--pl-navy);border-radius:6px;font-family:var(--pl-sans);}
body.pl-app .fp-paper-toggle:hover{background:var(--pl-navy);color:#fff;}
/* filter bar */
body.pl-app .fp-filter-bar{background:var(--pl-paper);border-bottom:1px solid var(--pl-rule);box-shadow:none;padding:12px 22px;gap:18px;align-items:flex-end;}
body.pl-app .fp-filter-group label{font-family:var(--pl-sans);font-size:10px;letter-spacing:0.16em;color:var(--pl-muted);}
body.pl-app .fp-filter-group select{border:1px solid var(--pl-rule);border-radius:7px;background-color:#fff;color:var(--pl-ink);font-weight:600;}
body.pl-app .fp-filter-group select:focus,body.pl-app .fp-filter-group select:hover{border-color:var(--pl-navy);}
body.pl-app .fp-mode-toggle{background:var(--pl-bg);border:1px solid var(--pl-rule);border-radius:999px;padding:3px;}
body.pl-app .fp-mode-btn{border-radius:999px;color:var(--pl-muted);font-weight:600;}
body.pl-app .fp-mode-btn:hover{color:var(--pl-navy);}
body.pl-app .fp-mode-btn.active{background:var(--pl-navy);color:#fff;box-shadow:none;}
body.pl-app .fp-btn-booklet{background:var(--pl-gold-tint);border:1px solid #e0cf9f;color:var(--pl-gold);border-radius:6px;font-family:var(--pl-sans);font-size:12.5px;font-weight:700;letter-spacing:0;text-transform:none;padding:8px 13px;}
body.pl-app .fp-btn-booklet:hover{background:var(--pl-gold);border-color:var(--pl-gold);color:#fff;}
/* info banner (worksheets / predicted) */
body.pl-app .fp-info-banner{background:var(--pl-gold-tint);border-bottom:1px solid #e6d6b3;color:var(--pl-ink);}
body.pl-app .fp-info-banner__text{color:var(--pl-ink);}
body.pl-app .fp-info-banner__icon{color:var(--pl-gold);}
body.pl-app .fp-info-banner__cta{background:var(--pl-navy);color:#fff;border-radius:6px;}
body.pl-app .fp-info-banner__cta:hover{background:var(--pl-claret);color:#fff;}
/* paper list */
body.pl-app .fp-main,body.pl-app .fp-viewer,body.pl-app .fp-viewer-pane{background:var(--pl-bg);}
body.pl-app .fp-paper-list{background:var(--pl-paper);border-right:1px solid var(--pl-rule);}
body.pl-app .fp-paper-list__collapse,body.pl-app .fp-paper-list__close{font-family:var(--pl-sans);color:var(--pl-muted);border-bottom:1px solid var(--pl-rule-soft);background:var(--pl-paper);}
body.pl-app .fp-paper-list__collapse:hover,body.pl-app .fp-paper-list__close:hover{background:var(--pl-bg);color:var(--pl-navy);}
body.pl-app .fp-reopen-tab{background:#fff;border-color:var(--pl-rule);color:var(--pl-navy);}
body.pl-app .fp-reopen-tab:hover{background:var(--pl-navy);color:#fff;border-color:var(--pl-navy);}
body.pl-app .fp-set-header{background:var(--pl-claret-tint);border-top:0;border-bottom:0;border-left:3px solid var(--pl-claret);color:var(--pl-claret);font-family:var(--pl-sans);letter-spacing:0.16em;}
body.pl-app .fp-set-header__num{color:var(--pl-claret);}
body.pl-app .fp-set-header__badge--free{background:var(--pl-green-tint);color:var(--pl-green);}
body.pl-app .fp-set-header__badge--locked{background:var(--pl-bg);color:var(--pl-muted);}
body.pl-app .fp-set-header__badge--unlocked{background:var(--pl-gold-tint);color:var(--pl-gold);}
body.pl-app .fp-paper-item{border-bottom:1px solid var(--pl-rule-soft);}
body.pl-app .fp-paper-item:hover{background:var(--pl-bg);}
body.pl-app .fp-paper-item.active{background:var(--pl-slate-tint);border-left-color:var(--pl-navy);}
body.pl-app .fp-paper-item.active .fp-paper-label{color:var(--pl-navy);}
body.pl-app .fp-paper-label{color:var(--pl-ink);}
body.pl-app .fp-paper-badge--qp{background:var(--pl-green-tint);color:var(--pl-green);}
body.pl-app .fp-paper-badge--ms{background:var(--pl-claret-tint);color:var(--pl-claret);}
body.pl-app .fp-paper-badge--lock{background:var(--pl-bg);color:var(--pl-muted);}
body.pl-app .fp-list-empty{color:var(--pl-muted);font-family:var(--pl-serif);font-style:italic;font-size:14px;}
/* viewer panes */
body.pl-app .fp-pane-header{background:var(--pl-paper);border-bottom:1px solid var(--pl-rule);}
body.pl-app .fp-pane-title{font-family:var(--pl-sans);color:var(--pl-navy);letter-spacing:0.16em;}
body.pl-app .fp-pane-title::before{border-radius:2px;background:var(--pl-green);}
body.pl-app .fp-pane-header--ms .fp-pane-title::before{background:var(--pl-claret);}
body.pl-app .fp-page-nav input{border:1px solid var(--pl-rule);color:var(--pl-navy);}
body.pl-app .fp-page-nav input:focus{border-color:var(--pl-navy);}
body.pl-app .fp-page-nav__btn{background:var(--pl-bg);color:var(--pl-navy);}
body.pl-app .fp-page-nav__btn:hover{background:var(--pl-navy);color:#fff;}
body.pl-app .fp-btn-download,body.pl-app .fp-btn-print{background:#fff;border:1px solid var(--pl-rule);color:var(--pl-navy);border-radius:6px;font-family:var(--pl-sans);font-size:12px;letter-spacing:0;text-transform:none;font-weight:600;}
body.pl-app .fp-btn-download:hover,body.pl-app .fp-btn-print:hover{background:var(--pl-navy);border-color:var(--pl-navy);color:#fff;}
body.pl-app .fp-btn-print:disabled{background:#fff;color:var(--pl-navy);border-color:var(--pl-rule);}
body.pl-app .fp-pane-body,body.pl-app .fp-pdf-pages{background:#d8d2c4;}
body.pl-app .fp-pdf-pages canvas{box-shadow:0 1px 6px rgba(18,41,75,0.22);}
body.pl-app .fp-pdf-pages__info{color:var(--pl-muted);}
body.pl-app .fp-pane-placeholder,body.pl-app .fp-pane-loading{background:var(--pl-bg);color:var(--pl-muted);font-family:var(--pl-serif);font-style:italic;font-size:14px;}
body.pl-app .fp-pane-loading{font-style:normal;font-family:var(--pl-sans);}
body.pl-app .fp-viewer-divider{background:var(--pl-rule);}
body.pl-app .spin{border-color:rgba(18,41,75,0.14);border-top-color:var(--pl-claret);}
/* gates / locked / blurred markscheme */
body.pl-app .fp-overlay{background:var(--pl-bg);color:var(--pl-ink);}
body.pl-app .fp-overlay::before{display:none;}
body.pl-app .fp-overlay h2{font-family:var(--pl-display);font-weight:600;color:var(--pl-navy);font-size:26px;}
body.pl-app .fp-overlay p{font-family:var(--pl-serif);color:var(--pl-muted);}
body.pl-app .fp-overlay .btn{background:var(--pl-navy);color:#fff;border-radius:7px;font-family:var(--pl-sans);text-transform:none;letter-spacing:0;font-size:14px;font-weight:600;padding:12px 22px;}
body.pl-app .fp-overlay .btn:hover{background:var(--pl-claret);color:#fff;}
body.pl-app .fp-overlay .spin{border-color:rgba(18,41,75,0.14);border-top-color:var(--pl-claret);}
body.pl-app .fp-locked-overlay{background:var(--pl-bg);color:var(--pl-ink);}
body.pl-app .fp-locked-overlay::before{display:none;}
body.pl-app .fp-locked-overlay__icon{background:var(--pl-claret-tint);border-color:#e3c4c9;color:var(--pl-claret);}
body.pl-app .fp-locked-overlay h2{font-family:var(--pl-display);font-weight:600;color:var(--pl-navy);}
body.pl-app .fp-locked-overlay p{font-family:var(--pl-serif);color:var(--pl-muted);}
body.pl-app .fp-locked-overlay .btn{background:var(--pl-navy);color:#fff;border-radius:7px;font-family:var(--pl-sans);text-transform:none;letter-spacing:0;font-size:14px;font-weight:600;box-shadow:none;}
body.pl-app .fp-locked-overlay .btn:hover{background:var(--pl-claret);color:#fff;transform:none;box-shadow:none;}
body.pl-app .ms-blur-overlay{background:rgba(246,243,236,0.6);}
body.pl-app .ms-blur-pill{background:var(--pl-navy);font-family:var(--pl-sans);text-transform:none;letter-spacing:0;font-size:13.5px;}
body.pl-app .ms-blur-pill svg{color:#fff;}
body.pl-app .toast{background:var(--pl-navy);font-family:var(--pl-sans);border-radius:8px;}
body.pl-app .toast--err{background:var(--pl-claret);}
/* print + booklet buttons injected into pane headers share one look */
body.pl-app .pl-bk-btn{padding:6px 11px;font-size:12px;}
@media(max-width:780px){
  body.pl-app .fp-banner{padding:10px 14px;}
  body.pl-app .fp-banner{gap:8px;padding:10px 12px;}
  body.pl-app .fp-banner-back{width:30px;height:30px;}
  body.pl-app .fp-banner-logo-img{width:30px;height:30px;}
  body.pl-app .fp-banner-right{gap:8px;}
  body.pl-app .fp-paper-toggle span{font-size:10.5px;}
  body.pl-app .fp-banner-username,body.pl-app .fp-banner-user-link{display:none;}
  body.pl-app .fp-banner-text strong{letter-spacing:0.1em;font-size:12px;white-space:nowrap;}
  body.pl-app .fp-banner-text small{font-size:9.5px;letter-spacing:0.12em;white-space:nowrap;}
  body.pl-app .fp-paper-toggle{padding:7px 10px;}
  body.pl-app .fp-paper-list > .fp-filter-bar{background:var(--pl-bg);border-bottom:1px solid var(--pl-rule);}
}

/* pane actions (Print + Download) — used by worksheets and predicted papers */
.fp-pane-actions{display:inline-flex;align-items:center;gap:6px;}
body.pl-app .fp-btn-print,body.pl-app .fp-btn-download{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;cursor:pointer;white-space:nowrap;text-decoration:none;line-height:1.2;}
body.pl-app .fp-btn-print svg,body.pl-app .fp-btn-download svg{width:13px;height:13px;flex-shrink:0;}
@media(max-width:780px){body.pl-app .fp-btn-print span,body.pl-app .fp-btn-download span{display:none;}body.pl-app .fp-btn-print,body.pl-app .fp-btn-download{padding:6px 9px;}}
/* /worksheets/ floating Formula / Data booklet button + viewer */
body.pl-app .fb-fab{background:var(--pl-navy);color:#fff;border:1px solid var(--pl-navy);border-radius:999px;font-family:var(--pl-sans);font-size:13px;font-weight:600;padding:11px 18px;box-shadow:0 8px 24px rgba(18,41,75,.3);}
body.pl-app .fb-fab:hover{background:var(--pl-claret);border-color:var(--pl-claret);color:#fff;}
body.pl-app .fb-overlay{background:rgba(18,26,40,.78);backdrop-filter:none;}
body.pl-app .fb-modal{border-radius:10px;}
body.pl-app .fb-head{background:var(--pl-paper);color:var(--pl-navy);border-bottom:3px solid var(--pl-claret);}
body.pl-app .fb-head b{font-family:var(--pl-display);font-weight:600;font-size:17px;color:var(--pl-navy);}
body.pl-app .fb-head a.open{color:var(--pl-navy);border:1px solid var(--pl-rule);background:#fff;font-family:var(--pl-sans);font-weight:600;}
body.pl-app .fb-head a.open:hover{border-color:var(--pl-navy);background:#fff;}
body.pl-app .fb-head .x{background:#fff;border:1px solid var(--pl-rule);color:var(--pl-navy);}

/* ---------- 9b. /assigned/ (as-*) — same shell language, its own class family ---------- */
body.pl-app{--green:#1d7a5a;--green-bg:#eef6f1;--red:#7a2232;--red-bg:#f7eeef;}
body.pl-app .as-listtoggle{background:#fff;border:1px solid var(--pl-rule);color:var(--pl-navy);border-radius:6px;font-family:var(--pl-sans);}
body.pl-app .as-listtoggle:hover{background:var(--pl-navy);color:#fff;}
body.pl-app .as-side{background:var(--pl-paper);border-right:1px solid var(--pl-rule);}
body.pl-app .as-side__top{background:var(--pl-bg);border-bottom:1px solid var(--pl-rule);}
body.pl-app .as-side__close{color:var(--pl-muted);border-bottom:1px solid var(--pl-rule-soft);}
body.pl-app .as-tabs{background:#fff;border:1px solid var(--pl-rule);border-radius:999px;padding:3px;}
body.pl-app .as-tabs button{border-radius:999px;color:var(--pl-muted);font-weight:600;}
body.pl-app .as-tabs button.is-on{background:var(--pl-navy);color:#fff;box-shadow:none;}
body.pl-app .as-tabs .n{background:var(--pl-bg);color:var(--pl-navy);}
body.pl-app .as-tabs button.is-on .n{background:rgba(255,255,255,.2);color:#fff;}
body.pl-app .as-input,body.pl-app .as-select{border:1px solid var(--pl-rule);border-radius:7px;font-family:var(--pl-sans);color:var(--pl-ink);}
body.pl-app .as-input:focus,body.pl-app .as-select:focus{border-color:var(--pl-navy);}
body.pl-app .as-empty{font-family:var(--pl-serif);font-style:italic;font-size:14px;color:var(--pl-muted);}
body.pl-app .as-sectlabel{margin:12px 0 0;padding:8px 14px 8px 16px;background:var(--pl-claret-tint);border-left:3px solid var(--pl-claret);color:var(--pl-claret);font-weight:700;letter-spacing:.16em;}
body.pl-app .as-pack{border-bottom:1px solid var(--pl-rule-soft);}
body.pl-app .as-pack__head:hover{background:var(--pl-bg);}
body.pl-app .as-pack__name{font-family:var(--pl-display);font-weight:600;font-size:15px;color:var(--pl-navy);}
body.pl-app .as-pack__sub{color:var(--pl-muted);}
body.pl-app .as-pack__prog{background:var(--pl-bg);color:var(--pl-navy);}
body.pl-app .as-pack__prog.is-done{background:var(--pl-green-tint);color:var(--pl-green);}
body.pl-app .as-pack__chev,body.pl-app .as-setlabel{color:var(--pl-muted);}
body.pl-app .as-item:hover{background:var(--pl-bg);}
body.pl-app .as-item.is-active{background:var(--pl-slate-tint);border-left-color:var(--pl-navy);}
body.pl-app .as-item__label{color:var(--pl-ink);}
body.pl-app .as-item.is-active .as-item__label{color:var(--pl-navy);}
body.pl-app .as-dot{border-color:#c9c2b3;}
body.pl-app .as-dot.is-done{background:var(--pl-green);border-color:var(--pl-green);}
body.pl-app .as-dot.is-part{border-color:var(--pl-green);background:linear-gradient(90deg,var(--pl-green) 50%,transparent 50%);}
body.pl-app .as-dot.is-wait{border-color:var(--pl-slate);background:var(--pl-slate);}
body.pl-app .as-dot.is-over{border-color:var(--pl-claret);}
body.pl-app .as-badge--qp{background:var(--pl-green-tint);color:var(--pl-green);}
body.pl-app .as-badge--ms{background:var(--pl-claret-tint);color:var(--pl-claret);}
body.pl-app .as-badge--lock{background:var(--pl-bg);color:var(--pl-muted);}
body.pl-app .as-badge--part{background:var(--pl-gold-tint);color:var(--pl-gold);}
body.pl-app .as-vhead{background:var(--pl-paper);border-bottom:1px solid var(--pl-rule);}
body.pl-app .as-crumb{color:var(--pl-claret);font-family:var(--pl-sans);letter-spacing:.16em;}
body.pl-app .as-vtitle{font-family:var(--pl-display);font-weight:600;font-size:21px;color:var(--pl-navy);}
body.pl-app .as-vmeta{color:var(--pl-muted);}
body.pl-app .as-chip{background:var(--pl-bg);color:var(--pl-navy);}
body.pl-app .as-chip--gold{background:var(--pl-gold-tint);color:var(--pl-gold);}
body.pl-app .as-chip--done{background:var(--pl-green-tint);color:var(--pl-green);}
body.pl-app .as-chip--over{background:var(--pl-claret-tint);color:var(--pl-claret);}
body.pl-app .as-btn{border:1px solid var(--pl-rule);border-radius:6px;color:var(--pl-navy);font-family:var(--pl-sans);font-weight:600;letter-spacing:0;}
body.pl-app .as-btn:hover{border-color:var(--pl-navy);background:#fff;}
body.pl-app .as-btn--primary{background:var(--pl-navy);border-color:var(--pl-navy);color:#fff;}
body.pl-app .as-btn--primary:hover{background:var(--pl-claret);border-color:var(--pl-claret);}
body.pl-app .as-btn--green{color:var(--pl-green);border-color:#bcdccd;}
body.pl-app .as-btn--green:hover{background:var(--pl-green-tint);border-color:var(--pl-green);}
body.pl-app .as-seg{border:1px solid var(--pl-rule);border-radius:999px;}
body.pl-app .as-seg button{color:var(--pl-muted);font-weight:600;}
body.pl-app .as-seg button.is-on{background:var(--pl-navy);color:#fff;}
body.pl-app .as-strip{background:var(--pl-bg);border-bottom:1px solid var(--pl-rule);}
body.pl-app .as-strip__label{color:var(--pl-muted);letter-spacing:.16em;}
body.pl-app .as-stud{background:#fff;border:1px solid var(--pl-rule);color:var(--pl-navy);}
body.pl-app a.as-stud:hover{border-color:var(--pl-navy);}
body.pl-app .as-stud.is-done{background:var(--pl-green-tint);color:var(--pl-green);}
body.pl-app .as-stud.is-wait{background:var(--pl-slate-tint);color:var(--pl-slate);}
body.pl-app .as-linkbtn{color:var(--pl-claret);}
body.pl-app .as-linkbtn:hover{color:var(--pl-navy);}
body.pl-app .as-divider{background:var(--pl-rule);}
body.pl-app .as-pane__head{background:var(--pl-paper);border-bottom:1px solid var(--pl-rule);}
body.pl-app .as-pane__title{font-family:var(--pl-sans);color:var(--pl-navy);letter-spacing:.16em;}
body.pl-app .as-pane__title::before{border-radius:2px;background:var(--pl-green);}
body.pl-app .as-pane--ms .as-pane__title::before{background:var(--pl-claret);}
body.pl-app .as-pbtn{background:#fff;border:1px solid var(--pl-rule);color:var(--pl-navy);border-radius:6px;font-family:var(--pl-sans);text-transform:none;letter-spacing:0;font-weight:600;font-size:12px;}
body.pl-app .as-pbtn:hover{background:var(--pl-navy);border-color:var(--pl-navy);color:#fff;}
body.pl-app .as-pane__body,body.pl-app .as-pages{background:#d8d2c4;}
body.pl-app .as-pages canvas{box-shadow:0 1px 6px rgba(18,41,75,.22);}
body.pl-app .as-cover{background:var(--pl-bg);color:var(--pl-muted);font-family:var(--pl-serif);}
body.pl-app .as-cover svg{color:var(--pl-rule);}
body.pl-app .as-cover strong{font-family:var(--pl-display);font-weight:600;color:var(--pl-navy);font-size:17px;}
body.pl-app .as-card{border:1px solid var(--pl-rule);border-radius:var(--pl-radius);}
body.pl-app .as-card p{color:var(--pl-muted);font-family:var(--pl-serif);font-size:15px;}
body.pl-app .as-note{background:var(--pl-bg);color:var(--pl-ink);font-family:var(--pl-sans);}
body.pl-app .as-answer{border:1px solid var(--pl-rule);font-family:var(--pl-sans);}
body.pl-app .as-answer:focus{border-color:var(--pl-navy);}
body.pl-app .as-welcome{color:var(--pl-muted);font-family:var(--pl-serif);font-style:italic;}
body.pl-app .as-welcome h2{font-family:var(--pl-display);font-style:normal;font-weight:600;color:var(--pl-navy);font-size:24px;}
body.pl-app .as-modal{background:rgba(18,26,40,.6);}
body.pl-app .as-modal__card{border-radius:var(--pl-radius);}
body.pl-app .as-modal__head{border-bottom:3px solid var(--pl-claret);}
body.pl-app .as-modal__head h3{font-family:var(--pl-display);font-weight:600;font-size:19px;color:var(--pl-navy);}
body.pl-app .as-modal__head p{color:var(--pl-muted);}
body.pl-app .as-modal__foot{border-top:1px solid var(--pl-rule);}
body.pl-app .as-fieldlab{color:var(--pl-muted);letter-spacing:.14em;}
body.pl-app .as-pick{border:1px solid var(--pl-rule);}
body.pl-app .as-pick label:hover{background:var(--pl-bg);}
body.pl-app .as-pick__sub,body.pl-app .as-pick__empty{color:var(--pl-muted);}
body.pl-app .as-backdrop.open,body.pl-app .fp-paper-backdrop{background-color:rgba(18,26,40,.5);}

/* ---------- 9c. /assigned/test/ (student's assigned-test + AI-marked report) ---------- */
body.pl-test{
  --navy:#12294b; --navy2:#12294b; --gold:#9a7223; --goldl:#b88a35; --ink:#1f2633; --muted:#5f6675; --line:#d9d2c3;
  --cream:#f8f1e2; --bg:#f6f3ec; --green:#1d7a5a; --greenbg:#eef6f1; --amber:#9a7223; --amberbg:#f8f1e2; --red:#7a2232; --redbg:#f7eeef;
  --card:#fff; --shadow:none;
  font-family:var(--pl-sans);
}
body.pl-test button,body.pl-test input,body.pl-test select,body.pl-test textarea{font-family:var(--pl-sans);}
body.pl-test .bar{background:var(--pl-paper);color:var(--pl-navy);border-bottom:1px solid var(--pl-rule);}
body.pl-test .bar::after{content:"";display:block;height:3px;width:84px;background:var(--pl-claret);margin-top:-3px;position:relative;}
body.pl-test .bar__logo{color:var(--pl-navy);font-family:var(--pl-display);font-weight:600;letter-spacing:.26em;text-transform:uppercase;font-size:14px;}
body.pl-test .bar__logo img{background:#fff;border:1px solid var(--pl-rule);}
body.pl-test .bar__tag{border:1.5px solid var(--pl-claret);color:var(--pl-claret);border-radius:4px;font-size:10px;letter-spacing:.14em;}
body.pl-test .bar__user{color:var(--pl-muted);}
body.pl-test .hero .back{color:var(--pl-claret);font-size:11px;letter-spacing:.14em;text-transform:uppercase;}
body.pl-test .hero h1{font-family:var(--pl-display);font-weight:600;font-size:clamp(28px,4vw,40px);letter-spacing:-.01em;line-height:1.1;color:var(--pl-navy);}
body.pl-test .hero p{font-family:var(--pl-serif);font-style:italic;color:var(--pl-muted);font-size:15.5px;}
body.pl-test .panel{border:1px solid var(--pl-rule);border-radius:var(--pl-radius);box-shadow:none;}
body.pl-test .panel h2{font-family:var(--pl-display);font-weight:600;font-size:20px;color:var(--pl-navy);letter-spacing:0;}
body.pl-test .pill,body.pl-test .band,body.pl-test .chip{background:var(--pl-gold-tint);color:var(--pl-gold);border-radius:999px;}
body.pl-test .chip{background:var(--pl-slate-tint);color:var(--pl-slate);}
body.pl-test .chip b{background:var(--pl-navy);}
body.pl-test .notebox{background:var(--pl-bg);border:1px solid var(--pl-rule-soft);color:var(--pl-ink);}
body.pl-test .seg{background:var(--pl-bg);border:1px solid var(--pl-rule);border-radius:999px;}
body.pl-test .seg button{border-radius:999px;}
body.pl-test .seg button.on{background:var(--pl-navy);color:#fff;box-shadow:none;}
body.pl-test .drop{border:2px dashed var(--pl-rule);background:#fff;border-radius:var(--pl-radius);}
body.pl-test .drop:hover,body.pl-test .drop.drag{border-color:var(--pl-navy);background:var(--pl-bg);}
body.pl-test .drop svg{color:var(--pl-claret);}
body.pl-test .thumb{border:1px solid var(--pl-rule);}
body.pl-test .thumb .ops button{background:var(--pl-bg);}
body.pl-test .filepill{background:var(--pl-bg);}
body.pl-test .btn{background:var(--pl-navy);color:#fff;border-radius:7px;font-weight:600;font-size:14px;padding:12px 22px;}
body.pl-test .btn:hover{filter:none;background:var(--pl-claret);transform:none;}
body.pl-test .btn--ghost{background:#fff;color:var(--pl-navy);border:1px solid var(--pl-navy);}
body.pl-test .btn--ghost:hover{background:#fff;color:var(--pl-claret);border-color:var(--pl-claret);}
body.pl-test .spin{border-color:rgba(18,41,75,.14);border-top-color:var(--pl-claret);}
body.pl-test .steps i{background:var(--pl-bg);}
body.pl-test .steps i.on{background:var(--pl-claret-tint);color:var(--pl-claret);}
body.pl-test .ring{background:conic-gradient(var(--pl-green) calc(var(--p)*1%),var(--pl-rule-soft) 0);}
body.pl-test .rep-title{font-family:var(--pl-display);font-weight:600;font-size:24px;}
body.pl-test .box{background:#fff;border:1px solid var(--pl-rule);border-radius:var(--pl-radius);}
body.pl-test .box h3{color:var(--pl-claret);letter-spacing:.14em;font-size:11px;}
body.pl-test .box.prio{background:var(--pl-gold-tint);border-color:#e6d6b3;}
body.pl-test .box.win{background:var(--pl-green-tint);border-color:#cfe6da;}
body.pl-test .q{border:1px solid var(--pl-rule);border-radius:var(--pl-radius);}
body.pl-test .q__bar{background:var(--pl-rule-soft);}
body.pl-test .mk{background:var(--pl-claret-tint);}
body.pl-test .mk .fix{color:var(--pl-green);}
body.pl-test .overall{background:var(--pl-gold-tint);font-family:var(--pl-serif);border-left:3px solid var(--pl-gold);border-radius:0 8px 8px 0;}
body.pl-test .banner{border-radius:var(--pl-radius);}
body.pl-test .banner.err{color:var(--pl-claret);border-color:#e3c4c9;}
body.pl-test .banner.lock{background:var(--pl-gold-tint);border-color:#e6d6b3;}
body.pl-test .gate h2{font-family:var(--pl-display);font-weight:600;}
body.pl-test .gate p{font-family:var(--pl-serif);}
body.pl-test .overlay{background:rgba(246,243,236,.94);}
body.pl-test .fb-fab{background:var(--pl-navy);color:#fff;border:1px solid var(--pl-navy);border-radius:999px;font-family:var(--pl-sans);font-weight:600;}
body.pl-test .fb-fab:hover{background:var(--pl-claret);border-color:var(--pl-claret);color:#fff;}
body.pl-test .fb-head{background:var(--pl-paper);color:var(--pl-navy);border-bottom:3px solid var(--pl-claret);}
body.pl-test .fb-head b{font-family:var(--pl-display);font-weight:600;color:var(--pl-navy);}
body.pl-test .fb-head a.fbopen{color:var(--pl-navy);border:1px solid var(--pl-rule);background:#fff;}
body.pl-test .fb-head .x{background:#fff;border:1px solid var(--pl-rule);color:var(--pl-navy);}
@media print{body.pl-test .print-head{border-bottom:2px solid var(--pl-claret);}}

/* ---------- 10. booklet button + viewer (js/photon-booklet.js) ---------- */
.pl-bk-btn{font-family:var(--pl-sans);display:inline-flex;align-items:center;gap:7px;background:var(--pl-gold-tint);border:1px solid #e0cf9f;color:var(--pl-gold);padding:7px 13px;border-radius:6px;font-size:12.5px;font-weight:700;cursor:pointer;line-height:1.2;white-space:nowrap;text-decoration:none;transition:background .12s,border-color .12s,color .12s;}
.pl-bk-btn:hover{background:var(--pl-gold);border-color:var(--pl-gold);color:#fff;}
.pl-bk-btn svg{width:15px;height:15px;flex-shrink:0;}
.pl-bk-btn[hidden]{display:none !important;}
.pl-bk-overlay{position:fixed;inset:0;background:rgba(18,26,40,0.78);z-index:10001;display:none;align-items:center;justify-content:center;padding:18px;}
.pl-bk-overlay.open{display:flex;}
.pl-bk-modal{background:#fff;width:min(960px,96vw);height:90vh;border-radius:10px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 30px 80px rgba(0,0,0,.45);}
.pl-bk-frame{flex:1;border:0;width:100%;background:#525866;}

/* ---------- 11. admin pages: /admin/ (adm-*), /admin/assign/ (na-*), /admin/worksheets/ (aw-*) ----------
   Scoped to body.pl-admin. Masthead = .pl-mast; the old dark hero + marketing nav are gone. */
body.pl-admin{font-family:var(--pl-sans);background:var(--pl-bg);color:var(--pl-ink);}
body.pl-admin .pl-mast{padding-bottom:22px;}
body.pl-admin .pl-mast .pl-lede{margin-bottom:0;}
body.pl-admin .adm-shell,body.pl-admin .na-shell,body.pl-admin .aw-shell{background:transparent;padding:26px 0 90px;font-family:var(--pl-sans);}
body.pl-admin .adm-inner,body.pl-admin .na-inner,body.pl-admin .aw-inner{padding:0 24px;}
@media(max-width:600px){body.pl-admin .adm-inner,body.pl-admin .na-inner,body.pl-admin .aw-inner{padding:0 16px;}}
body.pl-admin .na-back,body.pl-admin .aw-hero__back{display:inline-flex;align-items:center;gap:6px;color:var(--pl-claret);font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;margin:12px 0 0;}
body.pl-admin .na-back:hover,body.pl-admin .aw-hero__back:hover{color:var(--pl-navy);}
body.pl-admin .na-back svg,body.pl-admin .aw-hero__back svg{width:13px;height:13px;}
/* hero action row (admin panel) */
body.pl-admin .adm-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0;align-items:center;}
body.pl-admin .adm-actions .btn,body.pl-admin .btn.btn-primary{font-family:var(--pl-sans);font-size:12.5px;font-weight:600;letter-spacing:0;text-transform:none;padding:8px 14px;border-radius:7px;background:#fff;color:var(--pl-navy);border:1px solid var(--pl-rule);box-shadow:none;margin:0 !important;}
body.pl-admin .adm-actions .btn:hover,body.pl-admin .btn.btn-primary:hover{border-color:var(--pl-navy);background:#fff;color:var(--pl-navy);transform:none;}
body.pl-admin .adm-studio-cta,body.pl-admin .aw-studio-link{background:var(--pl-navy);color:#fff;border:1px solid var(--pl-navy);box-shadow:none;border-radius:var(--pl-radius);font-family:var(--pl-sans);}
body.pl-admin .adm-studio-cta{padding:13px 18px;margin:16px 0 0;flex-basis:auto;min-width:min(420px,100%);}
body.pl-admin .adm-studio-cta:hover,body.pl-admin .aw-studio-link:hover{background:var(--pl-claret);border-color:var(--pl-claret);transform:none;box-shadow:none;}
body.pl-admin .adm-studio-cta strong{font-family:var(--pl-display);font-weight:600;font-size:16px;letter-spacing:0;color:#fff;}
body.pl-admin .adm-studio-cta em{color:rgba(255,255,255,.75);opacity:1;}
body.pl-admin .adm-studio-cta__icon,body.pl-admin .adm-studio-cta__arrow{color:#fff;opacity:.8;}
body.pl-admin .aw-studio-link{font-size:13px;font-weight:600;padding:9px 16px;border-radius:999px;margin-top:14px;}
/* stats tiles */
body.pl-admin .stat{background:var(--pl-paper);border:1px solid var(--pl-rule);border-radius:var(--pl-radius);}
body.pl-admin .stat strong{font-family:var(--pl-display);font-weight:600;font-size:28px;color:var(--pl-navy);}
body.pl-admin .stat span{font-size:10px;font-weight:700;letter-spacing:.16em;color:var(--pl-muted);}
body.pl-admin .stat--admin{border-top:3px solid var(--pl-claret);} body.pl-admin .stat--admin strong{color:var(--pl-claret);}
body.pl-admin .stat--student{border-top:3px solid var(--pl-green);} body.pl-admin .stat--student strong{color:var(--pl-green);}
body.pl-admin .stat--paid{border-top:3px solid var(--pl-gold);} body.pl-admin .stat--paid strong{color:var(--pl-gold);}
body.pl-admin .stat--guest{border-top:3px solid var(--pl-slate);} body.pl-admin .stat--guest strong{color:var(--pl-slate);}
body.pl-admin .adm-summary,body.pl-admin .adm-preview,body.pl-admin .aw-stats,body.pl-admin .na-selcount,body.pl-admin .na-picktools,body.pl-admin .na-hint,body.pl-admin .user-school,body.pl-admin .user-email{color:var(--pl-muted);}
body.pl-admin .adm-summary span strong,body.pl-admin .aw-stats strong,body.pl-admin .na-selcount strong{color:var(--pl-navy);}
body.pl-admin .adm-preview button{background:#fff;border:1px solid var(--pl-rule);color:var(--pl-navy);border-radius:999px;font-family:var(--pl-sans);font-weight:600;}
body.pl-admin .adm-preview button:hover{border-color:var(--pl-navy);color:var(--pl-navy);}
/* toolbar, inputs, pills */
body.pl-admin .search,body.pl-admin .aw-search,body.pl-admin .na-search{background:#fff;border:1px solid var(--pl-rule);border-radius:999px;font-family:var(--pl-sans);color:var(--pl-ink);padding:9px 16px;}
body.pl-admin .search:focus,body.pl-admin .aw-search:focus,body.pl-admin .na-search:focus{border-color:var(--pl-navy);outline:none;}
body.pl-admin .filter-chip,body.pl-admin .na-tab{background:#fff;border:1px solid var(--pl-rule);color:var(--pl-ink);border-radius:999px;font-family:var(--pl-sans);font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;}
body.pl-admin .filter-chip:hover,body.pl-admin .na-tab:hover{border-color:var(--pl-navy);}
body.pl-admin .filter-chip.active,body.pl-admin .na-tab--active{background:var(--pl-navy);border-color:var(--pl-navy);color:#fff;}
body.pl-admin .btn-export{background:#fff;border:1px solid var(--pl-rule);color:var(--pl-navy);border-radius:7px;font-family:var(--pl-sans);font-weight:600;letter-spacing:0;text-transform:none;font-size:12.5px;}
body.pl-admin .btn-export:hover{border-color:var(--pl-navy);color:var(--pl-navy);}
/* users table */
body.pl-admin .users-table{background:var(--pl-paper);border:1px solid var(--pl-rule);border-radius:var(--pl-radius);box-shadow:none;}
body.pl-admin thead{background:var(--pl-bg);}
body.pl-admin th{font-family:var(--pl-sans);color:var(--pl-muted);font-size:10px;letter-spacing:.16em;}
body.pl-admin td{border-top:1px solid var(--pl-rule-soft);color:var(--pl-ink);}
body.pl-admin tr:hover td{background:var(--pl-bg);}
body.pl-admin .user-avatar,body.pl-admin .user-block__avatar{background:var(--pl-navy);color:#fff;}
body.pl-admin .user-name{color:var(--pl-navy);}
body.pl-admin .role-badge,body.pl-admin .user-block__role{border-radius:999px;font-family:var(--pl-sans);letter-spacing:.08em;}
body.pl-admin .role-guest{background:var(--pl-slate-tint);color:var(--pl-slate);}
body.pl-admin .role-student{background:var(--pl-green-tint);color:var(--pl-green);}
body.pl-admin .role-paid{background:var(--pl-gold-tint);color:var(--pl-gold);}
body.pl-admin .role-admin{background:var(--pl-claret-tint);color:var(--pl-claret);}
body.pl-admin .role-select,body.pl-admin .subj-picker__trigger{border:1px solid var(--pl-rule);border-radius:7px;font-family:var(--pl-sans);color:var(--pl-ink);}
body.pl-admin .role-select:focus,body.pl-admin .subj-picker__trigger:hover,body.pl-admin .subj-picker__trigger[aria-expanded="true"]{border-color:var(--pl-navy);box-shadow:none;outline:none;}
body.pl-admin .subj-picker__chip{background:var(--pl-green-tint);color:var(--pl-green);}
body.pl-admin .subj-picker__menu{border:1px solid var(--pl-rule);border-radius:var(--pl-radius);font-family:var(--pl-sans);}
body.pl-admin .subj-picker__option:hover{background:var(--pl-bg);}
body.pl-admin .subj-picker__option input{accent-color:var(--pl-navy);}
/* assign */
body.pl-admin .na-card{background:var(--pl-paper);border:1px solid var(--pl-rule);border-radius:var(--pl-radius);box-shadow:none;}
body.pl-admin .na-card h2{font-family:var(--pl-sans);font-size:10.5px;font-weight:700;letter-spacing:.16em;color:var(--pl-claret);}
body.pl-admin .na-type{background:var(--pl-bg);border:1px solid var(--pl-rule);border-radius:var(--pl-radius);}
body.pl-admin .na-type:hover{border-color:var(--pl-navy);}
body.pl-admin .na-type--active{background:#fff;border:1.5px solid var(--pl-navy);box-shadow:none;}
body.pl-admin .na-type svg{color:var(--pl-claret);}
body.pl-admin .na-type strong{font-family:var(--pl-display);font-weight:600;font-size:15px;color:var(--pl-navy);}
body.pl-admin .na-type small{color:var(--pl-muted);}
body.pl-admin .na-field label{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--pl-muted);}
body.pl-admin .na-field input,body.pl-admin .na-field select,body.pl-admin .na-field textarea{border:1px solid var(--pl-rule);border-radius:7px;font-family:var(--pl-sans);}
body.pl-admin .na-field input:focus,body.pl-admin .na-field select:focus,body.pl-admin .na-field textarea:focus{border-color:var(--pl-navy);outline:none;}
body.pl-admin .na-linkbtn{color:var(--pl-claret);}
body.pl-admin .na-list{border:1px solid var(--pl-rule);border-radius:var(--pl-radius);}
body.pl-admin .na-prow:hover{background:var(--pl-bg);}
body.pl-admin .na-prow--sel{background:var(--pl-slate-tint);}
body.pl-admin .na-prow input,body.pl-admin .na-emailtog input{accent-color:var(--pl-navy);}
body.pl-admin .na-pname,body.pl-admin .na-emailtog,body.pl-admin .na-sentcard__title{color:var(--pl-navy);}
body.pl-admin .na-pemail,body.pl-admin .na-sentcard__meta,body.pl-admin .na-empty{color:var(--pl-muted);}
body.pl-admin .na-badge--subj{background:var(--pl-gold-tint);color:var(--pl-gold);}
body.pl-admin .na-badge--ms{background:var(--pl-green-tint);color:var(--pl-green);}
body.pl-admin .na-badge--noms{background:var(--pl-claret-tint);color:var(--pl-claret);}
body.pl-admin .na-subtabs{background:var(--pl-bg);border:1px solid var(--pl-rule);border-radius:999px;}
body.pl-admin .na-subtab{border-radius:999px;color:var(--pl-muted);font-family:var(--pl-sans);}
body.pl-admin .na-subtab--active{background:var(--pl-navy);color:#fff;box-shadow:none;}
body.pl-admin .na-sentcard{background:var(--pl-paper);border:1px solid var(--pl-rule);border-radius:var(--pl-radius);}
body.pl-admin .na-kind{background:var(--pl-bg);color:var(--pl-navy);}
body.pl-admin .na-kind--question{background:var(--pl-claret-tint);color:var(--pl-claret);}
body.pl-admin .na-kind--task{background:var(--pl-green-tint);color:var(--pl-green);}
body.pl-admin .na-kind--link{background:var(--pl-slate-tint);color:var(--pl-slate);}
body.pl-admin .na-kind--tool,body.pl-admin .na-kind--worksheet{background:var(--pl-gold-tint);color:var(--pl-gold);}
body.pl-admin .na-status--done{color:var(--pl-green);} body.pl-admin .na-status--assigned{color:var(--pl-gold);}
body.pl-admin .na-answer{background:var(--pl-claret-tint);border:1px solid #e3c4c9;color:var(--pl-ink);}
body.pl-admin .na-answer b{color:var(--pl-claret);}
/* saved worksheets */
body.pl-admin .user-block{background:var(--pl-paper);border:1px solid var(--pl-rule);border-radius:var(--pl-radius);box-shadow:none;}
body.pl-admin .user-block__head{background:var(--pl-bg);border-bottom:1px solid var(--pl-rule-soft);}
body.pl-admin .user-block__name{font-family:var(--pl-display);font-weight:600;font-size:16px;color:var(--pl-navy);}
body.pl-admin .user-block__email,body.pl-admin .ws-row__meta{color:var(--pl-muted);}
body.pl-admin .user-block__count{background:#fff;border:1px solid var(--pl-rule);color:var(--pl-navy);}
body.pl-admin .ws-row{border:1px solid var(--pl-rule-soft);border-radius:8px;}
body.pl-admin .ws-row:hover{border-color:var(--pl-navy);background:var(--pl-bg);}
body.pl-admin .ws-row__title,body.pl-admin .ws-row__meta strong{color:var(--pl-navy);}
body.pl-admin .ws-btn{border-radius:6px;font-family:var(--pl-sans);letter-spacing:0;text-transform:none;font-weight:600;font-size:12px;}
body.pl-admin .ws-btn--open{background:var(--pl-navy);border-color:var(--pl-navy);color:#fff;}
body.pl-admin .ws-btn--open:hover{background:var(--pl-claret);border-color:var(--pl-claret);}
body.pl-admin .ws-btn--del{color:var(--pl-claret);border-color:#e3c4c9;}
body.pl-admin .ws-btn--del:hover{background:var(--pl-claret-tint);border-color:var(--pl-claret);}
body.pl-admin .aw-empty{background:var(--pl-paper);border:1px dashed var(--pl-rule);border-radius:var(--pl-radius);color:var(--pl-muted);font-family:var(--pl-serif);font-style:italic;}
/* gates, spinners, toast */
body.pl-admin .denied-card,body.pl-admin .denied{background:var(--pl-paper);border:1px solid var(--pl-rule);border-radius:var(--pl-radius);box-shadow:none;}
body.pl-admin .denied-card h2,body.pl-admin .denied h2{font-family:var(--pl-display);font-weight:600;color:var(--pl-navy);}
body.pl-admin .denied-card p,body.pl-admin .denied p{font-family:var(--pl-serif);color:var(--pl-muted);}
body.pl-admin #loading,body.pl-admin .na-loading,body.pl-admin .aw-loading,body.pl-admin .empty{color:var(--pl-muted);}
body.pl-admin .spin,body.pl-admin .na-spin,body.pl-admin .aw-spin{border-color:rgba(18,41,75,.14);border-top-color:var(--pl-claret);}
body.pl-admin .toast{background:var(--pl-navy);font-family:var(--pl-sans);}
body.pl-admin .toast--err,body.pl-admin .toast.toast--err{background:var(--pl-claret);}
body.pl-admin .toast--ok{background:var(--pl-green);}
body.pl-admin .adm-inner,body.pl-admin .na-inner,body.pl-admin .aw-inner{max-width:1200px;}
body.pl-admin .na-inner > #naContent,body.pl-admin .na-inner > #naDenied,body.pl-admin .na-inner > #naLoading{max-width:960px;}
body.pl-admin .aw-studio-link{display:flex;width:fit-content;margin-top:16px;}
@media(max-width:760px){body.pl-admin .users-table{overflow-x:auto;-webkit-overflow-scrolling:touch;}body.pl-admin .users-table table{min-width:760px;}}

/* ---- "All booklets" control (photon-booklet.js) ---- */
.pl-bk-all{background:#fff;border-color:var(--pl-line,#d9d4c4);color:var(--pl-ink,#1f2a3a);cursor:pointer;}
.pl-bk-all:hover{background:var(--pl-gold);border-color:var(--pl-gold);color:#fff;}
.pl-bk-menu{position:absolute;z-index:10002;min-width:230px;background:#fff;border:1px solid #e0cf9f;border-radius:8px;box-shadow:0 14px 36px rgba(18,26,40,.22);padding:6px;font-family:var(--pl-sans);}
.pl-bk-menu__h{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#8a7a45;padding:6px 10px 4px;}
.pl-bk-menu button{display:flex;width:100%;justify-content:space-between;align-items:center;gap:14px;background:none;border:0;border-radius:6px;padding:8px 10px;font:inherit;font-size:13px;color:#1f2a3a;cursor:pointer;text-align:left;}
.pl-bk-menu button:hover{background:var(--pl-gold-tint);}
.pl-bk-menu button em{font-style:normal;font-size:11px;color:#8a7a45;}
