/* ==========================================================================
   JCI NomCom Scoring — admin styling
   v1.11.3. Drop-in replacement for assets/admin.css.

   Every class name from the previous stylesheet is preserved, so no view file
   changes. Scoped to .jci-nomcom, which every view already carries on .wrap,
   so no PHP changes either and no other wp-admin screen is affected.

   Typefaces are self-hosted from assets/fonts/. No third-party font request
   is made, so nothing leaks a candidate code via a Referer header.
   ========================================================================== */
/* ---------------------------------------------------------------------------
   Self-hosted typefaces. Nothing is requested from a third party, so no
   Referer carrying a candidate code ever leaves this server.

   Archivo and Source Serif 4 are variable fonts: one file covers the whole
   weight axis. Latin subset only, which covers every character the views
   render, including N-tilde and the accented Latin-1 letters in Filipino
   names. The greater-or-equal sign and the filled and empty squares in the
   Form 7 result list are not in any of these families and fall back to a
   system font, exactly as they did when the fonts came from Google.

   All three are SIL Open Font License. The licences travel with the files in
   assets/fonts/, as the OFL requires when redistributing.

   This block is duplicated verbatim at the top of front.css so neither file
   needs an @import. Edit both, or neither.
   --------------------------------------------------------------------------- */
@font-face{
  font-family:'Archivo';
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url('fonts/archivo-variable-latin.woff2') format('woff2');
}
@font-face{
  font-family:'Source Serif 4';
  font-style:normal;
  font-weight:200 900;
  font-display:swap;
  src:url('fonts/source-serif-4-variable-latin.woff2') format('woff2');
}
@font-face{
  font-family:'Source Serif 4';
  font-style:italic;
  font-weight:200 900;
  font-display:swap;
  src:url('fonts/source-serif-4-variable-latin-italic.woff2') format('woff2');
}
@font-face{
  font-family:'IBM Plex Mono';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url('fonts/ibm-plex-mono-latin-400.woff2') format('woff2');
}
@font-face{
  font-family:'IBM Plex Mono';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url('fonts/ibm-plex-mono-latin-500.woff2') format('woff2');
}
@font-face{
  font-family:'IBM Plex Mono';
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url('fonts/ibm-plex-mono-latin-600.woff2') format('woff2');
}


.jci-nomcom{
  /* legacy token names kept so any inline use keeps resolving */
  --jci-navy:#16325C; --jci-blue:#0B5FA5; --jci-line:#D3D9E3; --jci-light:#EFF3F9;

  --nc-ink:#10192B; --nc-navy:#16325C; --nc-blue:#0B5FA5;
  --nc-paper:#F5F7FA; --nc-rule:#D3D9E3; --nc-seal:#8A2027; --nc-amber:#8A6410;
  --nc-mute:#5A6A82;
  --nc-grotesk:'Archivo',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --nc-serif:'Source Serif 4',Georgia,'Times New Roman',serif;
  --nc-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  font-family:var(--nc-grotesk);
  color:var(--nc-ink);
  max-width:1240px;
}

/* Page canvas. Progressive enhancement: where :has() is unsupported the
   default admin grey remains, which is harmless. */
/* Literal hex, not var(): #wpcontent is an ancestor of .jci-nomcom, and custom
   properties inherit downward only, so a token defined there cannot reach here. */
body:has(.jci-nomcom) #wpcontent,
body:has(.jci-nomcom) #wpbody-content{background:#F5F7FA}
body:has(.jci-nomcom) #wpbody-content{padding-bottom:70px}

.jci-nomcom *:focus-visible{outline:2px solid var(--nc-blue);outline-offset:2px;box-shadow:none}

/* ---------------------------- headings ---------------------------------- */
.jci-nomcom h1{
  font-family:var(--nc-grotesk);font-size:26px;font-weight:700;letter-spacing:-.025em;
  line-height:1.15;color:var(--nc-ink);padding:12px 0 6px;margin:0}
.jci-nomcom h2{
  font-family:var(--nc-grotesk);font-size:16px;font-weight:600;letter-spacing:-.012em;
  color:var(--nc-ink);margin:28px 0 10px}
.jci-nomcom h3{
  font-family:var(--nc-grotesk);font-size:13px;font-weight:600;letter-spacing:.02em;
  color:var(--nc-navy);margin:24px 0 8px}
.jci-nomcom p{font-size:13.5px;line-height:1.6}
.jci-nomcom .jci-muted{
  color:var(--nc-mute);font-family:var(--nc-mono);font-size:11px;line-height:1.55}
.jci-nomcom p.jci-muted{font-size:12px;max-width:70ch}

/* ------------------------------ tables ---------------------------------- */
.jci-nomcom .jci-table{
  margin:14px 0 26px;background:#fff;border:1px solid var(--nc-rule);border-radius:4px;
  border-collapse:separate;border-spacing:0;overflow:hidden;box-shadow:none}
.jci-nomcom .jci-table th{
  font-family:var(--nc-mono);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--nc-mute);font-weight:500;background:#fff;text-shadow:none;
  border-bottom:1px solid var(--nc-rule);padding:10px 11px;vertical-align:bottom}
.jci-nomcom .jci-table td{
  font-size:13px;padding:10px 11px;border-bottom:1px solid #EAEEF4;
  vertical-align:top;line-height:1.5;color:var(--nc-ink)}
.jci-nomcom .jci-table tbody tr:last-child td{border-bottom:0}
.jci-nomcom .jci-table tbody tr:hover{background:#F7F9FC}
.jci-nomcom .jci-table td strong{font-weight:600}
.jci-nomcom .jci-table td,
.jci-nomcom .jci-table th{overflow-wrap:break-word}

/* scores and codes are evidence: mono, right-aligned, tabular figures */
.jci-nomcom .jci-num{
  text-align:right;white-space:nowrap;
  font-family:var(--nc-mono);font-variant-numeric:tabular-nums}
.jci-nomcom th.jci-num{text-align:right}
.jci-nomcom .jci-num .jci-muted{
  display:inline-block;margin-left:6px;font-size:10px;letter-spacing:.02em}

.jci-nomcom .jci-total td{
  background:#fff;border-top:1.5px solid var(--nc-ink);border-bottom:0;
  padding-top:12px;font-weight:700}
.jci-nomcom .jci-total td.jci-num strong{font-size:15.5px}

/* A data table that cannot fit scrolls sideways inside the page rather than
   overflowing and having its last columns clipped where nothing can reach them.
   The wrapper exists because a table set to display:block loses width:100%: its
   rows generate an anonymous table box that shrinks to its content. min-width
   keeps a narrow table stretched and lets a wide one exceed and scroll. */
.jci-nomcom .jci-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:1px}
.jci-nomcom .jci-scroll > table{min-width:100%}
@media print{.jci-nomcom .jci-scroll{overflow:visible}}

.jci-nomcom .jci-actions{white-space:nowrap}
@media(max-width:1300px){
  .jci-nomcom .jci-actions{white-space:normal}
  .jci-nomcom .jci-actions .button{margin-bottom:3px}
}
.jci-nomcom .jci-inline-form{display:inline-block;margin:0 0 0 4px}

/* the audit log is a log: tighter, mono throughout, append-only in feel */
.jci-nomcom .jci-audit td{
  font-family:var(--nc-mono);font-size:11.5px;line-height:1.6;padding:8px 11px}
.jci-nomcom .jci-audit td:first-child{color:var(--nc-mute);white-space:nowrap}
.jci-nomcom .jci-audit tbody tr:hover{background:#F7F9FC}

/* ---------------------- form-table blocks (.jci-form) -------------------- */
/* 18 uses across exam-sessions, candidates, settings and eligibility. The old
   stylesheet left these to wp-admin's defaults, which now read as unstyled
   next to everything else. */
.jci-nomcom .jci-form{
  background:#fff;border:1px solid var(--nc-rule);border-radius:4px;margin:14px 0 24px}
.jci-nomcom .jci-form th{
  font-family:var(--nc-grotesk);font-size:13px;font-weight:500;color:var(--nc-ink);
  padding:13px 16px;width:auto;max-width:480px;line-height:1.45;
  border-bottom:1px solid #EAEEF4;vertical-align:middle}
.jci-nomcom .jci-form td{
  padding:13px 16px;border-bottom:1px solid #EAEEF4;vertical-align:middle;font-size:13px}
.jci-nomcom .jci-form tr:last-child th,
.jci-nomcom .jci-form tr:last-child td{border-bottom:0}
.jci-nomcom .jci-form .description{
  font-family:var(--nc-mono);font-size:10.5px;line-height:1.55;color:var(--nc-mute);
  font-style:normal;margin-top:5px}

/* ------------------------------ picker ---------------------------------- */
.jci-nomcom .jci-picker{
  margin:16px 0 22px;padding:13px 15px;background:#fff;
  border:1px solid var(--nc-rule);border-radius:4px;
  display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.jci-nomcom .jci-picker label{
  margin:0 4px 0 0;font-family:var(--nc-mono);font-size:9.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--nc-mute);font-weight:500;
  display:flex;align-items:center;gap:8px}

/* ----------------------------- callout ---------------------------------- */
/* The one filled element on the page. Everything else stays quiet. */
.jci-nomcom .jci-callout{
  margin:16px 0 22px;padding:15px 18px;background:var(--nc-ink);color:#fff;
  border-radius:4px;font-size:13px;line-height:1.65}
.jci-nomcom .jci-callout strong{color:#9FB8DC;font-weight:600}
.jci-nomcom .jci-callout a{color:#B9D0EE}

/* ------------------------------ fields ---------------------------------- */
.jci-nomcom input[type=text],
.jci-nomcom input[type=number],
.jci-nomcom input[type=email],
.jci-nomcom input[type=search],
.jci-nomcom input[type=date],
.jci-nomcom select,
.jci-nomcom textarea{
  font-family:var(--nc-grotesk);font-size:13px;color:var(--nc-ink);
  border:1px solid var(--nc-rule);border-radius:3px;background:#fff;
  padding:7px 9px;box-shadow:none;min-height:0;line-height:1.4}
.jci-nomcom input:focus,
.jci-nomcom select:focus,
.jci-nomcom textarea:focus{border-color:var(--nc-blue);box-shadow:0 0 0 1px var(--nc-blue)}
.jci-nomcom textarea{font-family:var(--nc-serif);font-size:14px;line-height:1.6}
.jci-nomcom input[type=checkbox],
.jci-nomcom input[type=radio]{border-color:#AEBACB;accent-color:var(--nc-blue)}

.jci-nomcom .jci-rubric input[type=number],
.jci-nomcom .jci-weights input[type=number]{
  width:90px;text-align:right;font-family:var(--nc-mono);font-size:15px;
  font-variant-numeric:tabular-nums;padding:8px 10px}
/* an out-of-range criterion is refused server side; say so at the field too */
.jci-nomcom .jci-rubric input[type=number]:out-of-range,
.jci-nomcom .jci-weights input[type=number]:out-of-range{
  border-color:var(--nc-seal);background:#FBF0F1;color:var(--nc-seal)}

.jci-nomcom .jci-findings label{
  margin-left:0;margin-right:14px;font-weight:400;font-size:13px;
  display:inline-flex;align-items:center;gap:5px}

/* --------------------------- buttons ----------------------------------- */
.jci-nomcom .button,
.jci-nomcom .button-secondary{
  font-family:var(--nc-grotesk);font-size:12.5px;font-weight:500;
  color:var(--nc-navy);background:#fff;border:1px solid var(--nc-rule);
  border-radius:3px;padding:6px 13px;height:auto;line-height:1.55;
  box-shadow:none;text-shadow:none}
.jci-nomcom .button:hover{background:#EFF3F9;border-color:#B6C4DA;color:var(--nc-blue)}
.jci-nomcom .button-primary{
  background:var(--nc-navy);border-color:var(--nc-navy);color:#fff;font-weight:600;
  padding:8px 17px;font-size:13px;box-shadow:none;text-shadow:none}
.jci-nomcom .button-primary:hover,
.jci-nomcom .button-primary:focus{
  background:var(--nc-blue);border-color:var(--nc-blue);color:#fff;box-shadow:none}
.jci-nomcom .button-small{padding:4px 10px;font-size:11.5px}
.jci-nomcom .button:disabled,
.jci-nomcom .button-primary:disabled{
  background:#AEBACB!important;border-color:#AEBACB!important;color:#fff!important;opacity:1}
.jci-nomcom .button-link-delete{
  background:#fff;border:1px solid #DEB0B3;color:var(--nc-seal);
  border-radius:3px;padding:6px 13px;font-weight:500;text-decoration:none}
.jci-nomcom .button-link-delete:hover{background:#FBF0F1;border-color:#C88E92;color:var(--nc-seal)}

/* --------------------- verdicts, checks, flags -------------------------- */
.jci-nomcom .jci-check{
  font-family:var(--nc-mono);font-size:10px;letter-spacing:.06em;font-weight:500}
.jci-nomcom .jci-pass,
.jci-nomcom .jci-fail,
.jci-nomcom .jci-na,
.jci-nomcom .jci-result{
  font-family:var(--nc-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;
  font-weight:500;line-height:1.5}
.jci-nomcom td.jci-pass,
.jci-nomcom td.jci-fail,
.jci-nomcom td.jci-na{padding:10px 11px}
.jci-nomcom .jci-pass{color:#0C5A34}
.jci-nomcom .jci-fail{color:var(--nc-seal)}
.jci-nomcom .jci-na{color:var(--nc-mute)}

/* The outcome cell reads as a chip, not as coloured text.
   It must be allowed to wrap. On nowrap the longest outcome, INCOMPLETE with its
   reason, sets the minimum width of any table it sits in, and on the wide score
   tables that carried every column to its right off the page. */
.jci-nomcom td.jci-result{
  white-space:normal;background:none;position:relative;max-width:12em}
.jci-nomcom .jci-result-note{
  display:block;margin-top:2px;font-size:9px;letter-spacing:.03em;
  text-transform:none;opacity:.75}
.jci-nomcom .jci-res-ok,
.jci-nomcom .jci-res-bad,
.jci-nomcom .jci-res-hold{background:none;padding:10px 11px}
.jci-nomcom td.jci-res-ok{color:#0C5A34}
.jci-nomcom td.jci-res-bad{color:var(--nc-seal)}
.jci-nomcom td.jci-res-hold{color:var(--nc-amber)}
/* rule the outcome cell so a scan down the column reads instantly */
.jci-nomcom td.jci-res-ok,
.jci-nomcom td.jci-res-bad,
.jci-nomcom td.jci-res-hold{box-shadow:inset 2px 0 0 currentColor}

.jci-nomcom .jci-flags{
  font-family:var(--nc-mono);font-size:10.5px;line-height:1.55;
  color:var(--nc-amber);max-width:240px}

/* ================================ Form 7 ================================
   Set as a document, not as an admin screen. Serif body, generous margins.
   ======================================================================== */
.jci-form7{
  background:#fff;padding:38px 42px;border:1px solid var(--nc-rule);border-radius:4px;
  max-width:860px;margin-top:18px;font-family:var(--nc-serif);
  box-shadow:0 1px 3px rgba(16,25,43,.07)}
.jci-f7-kicker{
  margin:0 0 7px;font-family:var(--nc-mono);font-size:10px;font-weight:400;
  letter-spacing:.18em;color:var(--nc-blue);text-transform:uppercase}
.jci-f7-title{
  margin:0 0 4px;font-family:var(--nc-grotesk);font-size:21px;font-weight:700;
  letter-spacing:-.02em;color:var(--nc-ink);padding:0}
.jci-form7 > .jci-muted:first-of-type{
  margin:0 0 24px;padding-bottom:16px;border-bottom:2px solid var(--nc-ink)}
.jci-form7 h3{
  font-family:var(--nc-mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--nc-mute);font-weight:500;margin:20px 0 8px;
  break-after:avoid;page-break-after:avoid}
.jci-form7 table{width:100%;border-collapse:collapse;margin:0 0 12px}
.jci-form7 th,
.jci-form7 td{
  border:0;border-bottom:1px solid #EAEEF4;padding:10px 12px;
  font-size:13.5px;text-align:left;vertical-align:top;font-family:var(--nc-grotesk)}

/* key/value blocks: labels in mono, values in weight */
.jci-f7-head th{
  width:38%;background:none;
  font-family:var(--nc-mono);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--nc-mute);font-weight:500;padding-top:13px}
.jci-f7-head td{font-family:var(--nc-serif);font-size:15px;font-weight:600;color:var(--nc-ink)}
.jci-f7-head tr:last-child th,
.jci-f7-head tr:last-child td{border-bottom:0}

/* The same class carries two different jobs. In the candidate block the th is
   a label. In the minimum-standards block, which always follows an h3, the th
   is prose: the standard being tested. Uppercase mono on a full sentence is
   unreadable, so that case gets sentence text at a normal size. */
.jci-form7 h3 + .jci-f7-head th{
  width:auto;font-family:var(--nc-serif);font-size:14.5px;letter-spacing:0;
  text-transform:none;color:var(--nc-ink);font-weight:400;
  line-height:1.5;padding-top:10px}
.jci-form7 h3 + .jci-f7-head td{
  width:16%;white-space:nowrap;text-align:right;
  font-family:var(--nc-mono);font-size:11px;letter-spacing:.06em}

/* the score table is the form's spine, so it keeps a filled header */
.jci-f7-scores thead th{
  background:var(--nc-ink);color:#fff;
  font-family:var(--nc-mono);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;
  font-weight:500;border-bottom:0;padding:11px 12px}
.jci-f7-scores tbody td{font-size:13.5px}
.jci-f7-scores .jci-num{font-family:var(--nc-mono);font-variant-numeric:tabular-nums}
.jci-f7-scores .jci-total td{
  border-top:1.5px solid var(--nc-ink);border-bottom:0;background:#fff;padding-top:13px}
.jci-f7-scores .jci-total td.jci-num strong{font-size:17px}

/* the finding. All four options stay visible, as an official form requires;
   the marked one is unmistakable. */
.jci-f7-result{list-style:none;margin:8px 0 14px;padding:0;break-inside:avoid;page-break-inside:avoid}
.jci-f7-result li{
  padding:7px 12px;font-family:var(--nc-mono);font-size:11.5px;letter-spacing:.06em;
  color:var(--nc-mute);border-left:2px solid transparent}
.jci-f7-result li.jci-marked{
  font-weight:600;color:var(--nc-seal);background:#FBF0F1;
  border-left-color:var(--nc-seal);letter-spacing:.08em;font-size:12.5px}
.jci-f7-flags{
  font-family:var(--nc-mono);font-size:11px;line-height:1.6;color:var(--nc-amber);
  border-left:2px solid var(--nc-amber);background:#FCF9F2;padding:11px 14px;margin:0 0 16px}
.jci-f7-flags strong{color:var(--nc-amber)}

.jci-f7-sign{margin-top:26px;break-inside:avoid;page-break-inside:avoid}
.jci-f7-sign td{border:none;padding:18px 12px 4px;width:50%}
.jci-f7-sign .jci-sig{border-bottom:1px solid var(--nc-ink);height:28px}
.jci-f7-sign span{
  font-family:var(--nc-mono);font-size:9px;font-weight:500;letter-spacing:.13em;
  color:var(--nc-mute);text-transform:uppercase}

.jci-form7 > .jci-muted:last-child{
  margin-top:26px;padding-top:14px;border-top:1px solid var(--nc-rule);
  font-family:var(--nc-serif);font-size:12.5px;letter-spacing:0;
  line-height:1.6;color:var(--nc-mute);max-width:none}

@media print{
  #adminmenumain,#wpadminbar,#wpfooter,.jci-noprint,.notice,#screen-meta,
  #screen-meta-links{display:none!important}
  #wpcontent,#wpbody-content{
    margin:0!important;padding:0!important;float:none!important;background:#fff!important}
  .jci-nomcom{max-width:none}
  .jci-form7{border:none;padding:0;max-width:none;box-shadow:none}
  .jci-f7-scores thead th{
    background:#10192B!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .jci-f7-result li.jci-marked,
  .jci-f7-flags{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .jci-form7 > .jci-muted:last-child{color:#4A5568}
}

/* ============================= Examination ==============================
   The paper is set in serif because it is a paper. The instrument around it
   stays grotesque. The timer is mono because it is a fact.
   ======================================================================== */
.jci-nomcom .jci-withdrawn td{opacity:.55}
.jci-nomcom .jci-opts{font-family:var(--nc-mono);font-size:10.5px;margin-top:4px;color:var(--nc-mute)}
.jci-nomcom .jci-brief{margin:10px 0 0 18px;font-size:13px;line-height:1.6}
.jci-nomcom .jci-brief li{margin:5px 0}

.jci-exam .jci-timer{
  position:sticky;top:32px;z-index:20;display:inline-block;
  padding:10px 18px;margin:12px 0 4px;background:var(--nc-ink);color:#fff;
  border-radius:4px;font-family:var(--nc-mono);font-weight:600;font-size:24px;
  letter-spacing:-.02em;font-variant-numeric:tabular-nums;
  box-shadow:0 2px 8px rgba(16,25,43,.18)}
.jci-exam .jci-timer.jci-warn{background:var(--nc-amber)}
.jci-exam .jci-timer.jci-crit{background:var(--nc-seal)}
.jci-exam .jci-saveline{
  margin:6px 0 20px;font-family:var(--nc-mono);font-size:10.5px;
  letter-spacing:.05em;color:#0C5A34}

.jci-exam .jci-topic{
  margin:30px 0 4px;padding-bottom:9px;border-bottom:1px solid var(--nc-rule);
  font-family:var(--nc-mono);font-size:10px;font-weight:400;letter-spacing:.14em;
  text-transform:uppercase;color:var(--nc-blue)}
.jci-exam .jci-q{
  background:#fff;border:1px solid var(--nc-rule);border-radius:4px;
  padding:18px 20px;margin:0 0 10px;max-width:900px}
.jci-exam .jci-q-stem{
  margin:0 0 12px;font-family:var(--nc-serif);font-weight:400;font-size:16px;
  line-height:1.55;color:var(--nc-ink)}
.jci-exam .jci-q-n{
  font-family:var(--nc-mono);font-size:12px;color:#7A8AA3;margin-right:9px;font-weight:400}
.jci-exam .jci-opt{
  display:block;padding:8px 11px;font-family:var(--nc-serif);font-size:15px;
  line-height:1.5;cursor:pointer;border-radius:3px;margin-left:2px}
.jci-exam .jci-opt:hover{background:#EFF3F9}
.jci-exam .jci-opt:has(input:checked){background:#EFF3F9;box-shadow:inset 0 0 0 1px #B6C4DA}
.jci-exam .jci-opt-l{
  display:inline-block;width:24px;font-family:var(--nc-mono);font-size:12px;
  color:var(--nc-navy);font-weight:500}
/* the option text is paper text, so it matches the stem */
.jci-exam .jci-opt-t{font-family:var(--nc-serif);font-size:15px;line-height:1.5}
.jci-exam .jci-submit-row{margin:30px 0 44px}
@media print{.jci-exam .jci-timer{position:static;box-shadow:none}}

/* ------------------------ frontend access links ------------------------- */
.jci-nomcom .jci-linkbox{
  margin:6px 0;padding:9px 11px;background:#FCF6E9;border:1px solid #DFC894;
  border-radius:3px;font-family:var(--nc-mono);font-size:10.5px;line-height:1.55;
  color:#5A5238}
.jci-nomcom .jci-linkbox input{
  font-family:var(--nc-mono);font-size:10.5px;margin-top:5px;width:100%}
.jci-nomcom .jci-linkactions{margin-top:7px}
.jci-nomcom .jci-linkactions input[type=text]{width:70px;font-family:var(--nc-mono)}

/* ---------------------------- notice preview ---------------------------- */
.jci-nomcom .jci-preview{
  background:#fff;border:1px solid var(--nc-rule);border-radius:4px;
  padding:30px 34px;max-width:700px;margin:12px 0 28px;
  font-family:var(--nc-serif);font-size:15px;line-height:1.7}
.jci-nomcom .jci-preview p{font-family:var(--nc-serif);font-size:15px;line-height:1.7}

/* -------------------------- printable answer sheet ---------------------- */
.jci-nomcom .jci-sheet th,
.jci-nomcom .jci-sheet td{font-size:11px;padding:5px 7px;vertical-align:top}
.jci-nomcom .jci-sheet td{font-family:var(--nc-serif);line-height:1.45}
.jci-nomcom .jci-sheet-opts{
  margin-top:4px;font-family:var(--nc-serif);font-size:10.5px;color:var(--nc-mute)}
.jci-nomcom .jci-sheet-opts span{display:block}
.jci-nomcom .jci-sheet-ref{font-family:var(--nc-mono);font-size:8.5px;color:#8A97AC}
.jci-nomcom .jci-sheet-tick{width:52px;border-left:1px solid var(--nc-rule)}
@media print{
  .jci-nomcom .jci-sheet{page-break-inside:auto}
  .jci-nomcom .jci-sheet tr{page-break-inside:avoid;page-break-after:auto}
  .jci-nomcom .jci-sheet thead{display:table-header-group}
  .jci-nomcom .jci-f7-sign{page-break-inside:avoid}
}

/* ------------------- criterion descriptions in rubrics ------------------ */
.jci-nomcom .jci-crit-desc{
  margin-top:4px;font-family:var(--nc-serif);font-size:12.5px;font-style:italic;
  line-height:1.5;color:var(--nc-mute);max-width:52em;font-weight:400}
@media print{.jci-nomcom .jci-crit-desc{color:#000}}

@media(max-width:782px){
  .jci-nomcom h1{font-size:22px}
  .jci-form7{padding:22px 18px}
  .jci-nomcom .jci-picker{gap:10px}
  .jci-f7-head th{width:auto}
}
@media(prefers-reduced-motion:reduce){.jci-nomcom *{transition:none!important;animation:none!important}}

/* ======================= My Scoring: one page per candidate ==============
   Every component the evaluator may score is a section on the same page, so
   the sections need to read as separate documents rather than as one long
   form. A rule and a plate do that without a card idiom.
   ======================================================================== */
.jci-nomcom .jci-cand-bar{
  display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;
  margin:16px 0 6px;padding:12px 16px;background:var(--nc-ink);border-radius:3px}
.jci-nomcom .jci-cand-code{
  font-family:var(--nc-mono);font-size:15px;font-weight:600;letter-spacing:.06em;color:#fff}
.jci-nomcom .jci-cand-office{
  font-family:var(--nc-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:#9FB8DC}
.jci-nomcom .jci-cand-count{
  margin-left:auto;font-family:var(--nc-mono);font-size:10.5px;letter-spacing:.06em;color:#8A97AC}

.jci-nomcom .jci-jump{
  margin:10px 0 4px;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.jci-nomcom .jci-jump-label{
  font-family:var(--nc-mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--nc-mute)}
.jci-nomcom .jci-jump a{
  font-size:12.5px;text-decoration:none;border-bottom:1px solid transparent}
.jci-nomcom .jci-jump a:hover{border-bottom-color:currentColor}
.jci-nomcom .jci-jump a.jci-done::before{content:"\2713\00a0";color:#0C5A34}

.jci-nomcom .jci-comp{
  margin:30px 0 0;padding-top:22px;border-top:1px solid var(--nc-rule);scroll-margin-top:52px}
.jci-nomcom .jci-comp:first-of-type{border-top:0}
.jci-nomcom .jci-comp h2{
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 2px;padding:0}
.jci-nomcom .jci-comp-help{margin:0 0 12px;max-width:70ch}
.jci-nomcom .jci-chip{
  font-family:var(--nc-mono);font-size:9px;font-weight:500;letter-spacing:.13em;
  text-transform:uppercase;color:var(--nc-mute);border:1px solid var(--nc-rule);
  border-radius:2px;padding:3px 7px}
.jci-nomcom .jci-chip-done{color:#0C5A34;border-color:#BFDACB;background:#F1F8F3}
.jci-nomcom .jci-live-total{font-family:var(--nc-mono);font-variant-numeric:tabular-nums}
.jci-nomcom .jci-comp-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.jci-nomcom .jci-comp-actions .jci-muted{font-size:11.5px}
/* the component just filed, after the redirect back */
.jci-nomcom .jci-just-saved{
  box-shadow:-14px 0 0 -12px var(--nc-blue);padding-left:2px}

/* =================== Evaluator sheets, Forms 3 to 6 ===================== */
.jci-form7.jci-pagebreak{margin-top:30px}
.jci-f7-matrix th,
.jci-f7-matrix td{padding:9px 8px;font-size:12.5px}
.jci-f7-matrix tbody td:first-child{max-width:320px;line-height:1.45}
.jci-f7-matrix .jci-num{white-space:nowrap;text-align:right}
/* heads carry short seat labels, but "Off roster" is wider than a number and a
   nine-column matrix has no spare width, so let the head wrap rather than push */
.jci-f7-matrix thead th.jci-num{white-space:normal;overflow-wrap:break-word}
/* the spine treatment on .jci-total is sized for four columns; the matrix can
   carry eleven, so it takes the table's own size there */
.jci-f7-matrix .jci-total td.jci-num strong{font-size:13px}
.jci-form7 .jci-remark{margin:0 0 14px;padding-left:13px;border-left:2px solid var(--nc-rule)}
.jci-form7 .jci-remark-who{
  display:block;font-family:var(--nc-mono);font-size:9px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--nc-mute);margin-bottom:3px}
.jci-form7 .jci-remark p{
  margin:0;font-family:var(--nc-serif);font-size:13.5px;line-height:1.6;color:var(--nc-ink)}
.jci-nomcom td.jci-sheet-link{white-space:nowrap}

/* ============================ Results screen ============================ */
.jci-nomcom td.jci-withheld{
  font-family:var(--nc-mono);font-size:11px;letter-spacing:.04em;color:var(--nc-mute);
  background:#F7F9FC}

@media print{
  .jci-form7.jci-pagebreak{page-break-before:always;break-before:page;margin-top:0}
  .jci-nomcom .jci-f7-matrix{page-break-inside:auto}
  .jci-nomcom .jci-f7-matrix tr{page-break-inside:avoid}
  .jci-nomcom .jci-remark{page-break-inside:avoid}
}

/* ===================== deliberation copy, the room's document ============
   The whole slate for an office on one table: a rank column, the components,
   the final score and the standards. Tighter than Form 7 because it carries
   every candidate rather than one, and it is printed in landscape.
   ======================================================================== */
/* Form 7 is a portrait document and 860px is the right measure for it: one
   candidate, a key/value block, a short score table. The deliberation copy is a
   landscape document carrying a column per component plus the three standards
   for every candidate at an office. Capped at a portrait width its table has
   nowhere to go, so it spilled out of the sheet and its first columns collapsed
   into towers of single words. It takes the width it is given instead, and on
   screen it may scroll if a slate is wider still. Print restores both. */
.jci-nomcom .jci-form7.jci-delib{max-width:none;padding:32px 30px}
.jci-nomcom .jci-delib-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.jci-nomcom .jci-delib-scroll > table{min-width:100%}
@media(max-width:820px){
  .jci-nomcom .jci-form7.jci-delib{padding:20px 14px}
}

.jci-nomcom .jci-delib-office{
  display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;
  margin:26px 0 10px;padding-bottom:7px;border-bottom:2px solid var(--nc-ink);
  font-family:var(--nc-grotesk);font-size:15px;font-weight:800;letter-spacing:.02em;
  text-transform:uppercase}
.jci-nomcom .jci-delib-office span{
  font-family:var(--nc-mono);font-size:10px;font-weight:500;letter-spacing:.13em;
  text-transform:uppercase;color:var(--nc-mute)}
.jci-nomcom .jci-delib-table th,
.jci-nomcom .jci-delib-table td{padding:8px 7px;font-size:12px}
.jci-nomcom .jci-delib-table td.jci-result{
  font-size:10px;letter-spacing:.05em;line-height:1.4;max-width:11em}
/* A candidate code can be long. Let it break rather than squeeze its neighbours. */
.jci-nomcom .jci-delib-table td:nth-child(2){min-width:6.5em;overflow-wrap:break-word}
.jci-nomcom .jci-delib-table td:nth-child(3){min-width:8em}
.jci-nomcom .jci-delib-table .jci-fail{font-size:9.5px;margin-left:3px}
.jci-nomcom .jci-delib-note{margin:7px 0 0;font-size:10.5px}
.jci-nomcom .jci-rolechange{display:flex;gap:5px;align-items:center;margin-top:5px}
.jci-nomcom .jci-rolechange select{font-size:11px;max-width:140px}

@media print{
  /* A named page so only this document turns, and the rest of the plugin keeps
     printing portrait. Ignored by anything that does not support it, which is
     why the table is sized to survive portrait as well. */
  @page delib{size:A4 landscape;margin:12mm}
  .jci-nomcom .jci-form7.jci-delib{padding:0}
  .jci-nomcom .jci-delib-scroll{overflow:visible}
  .jci-nomcom .jci-delib{page:delib}
  /* Form 7 is a portrait document and 860px is the right measure for it: one
   candidate, a key/value block, a short score table. The deliberation copy is a
   landscape document carrying a column per component plus the three standards
   for every candidate at an office. Capped at a portrait width its table has
   nowhere to go, so it spilled out of the sheet and its first columns collapsed
   into towers of single words. It takes the width it is given instead, and on
   screen it may scroll if a slate is wider still. Print restores both. */
.jci-nomcom .jci-form7.jci-delib{max-width:none;padding:32px 30px}
.jci-nomcom .jci-delib-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.jci-nomcom .jci-delib-scroll > table{min-width:100%}
@media(max-width:820px){
  .jci-nomcom .jci-form7.jci-delib{padding:20px 14px}
}

.jci-nomcom .jci-delib-office{margin-top:0}
  .jci-nomcom .jci-delib-table th,
  .jci-nomcom .jci-delib-table td{padding:5px 5px;font-size:9.5px}
  .jci-nomcom .jci-delib-table td.jci-result{font-size:8px;max-width:none}
  .jci-nomcom .jci-delib-table .jci-result-note{font-size:7.5px}
}

/* The warning that shows until exam.js announces itself by adding is-live. A
   clock that never starts is then visible rather than silently frozen. */
.jci-nomcom .jci-timer-dead,
.jci-front .jci-timer-dead{
  display:block;margin-top:5px;font-family:var(--nc-mono,ui-monospace,monospace);
  font-size:10px;letter-spacing:.08em;text-transform:uppercase;opacity:.9}
.jci-nomcom .jci-timer.is-live .jci-timer-dead,
.jci-front .jci-timer.is-live .jci-timer-dead{display:none}

/* the wall clock finish time beside the countdown, so a stopped clock shows */
.jci-nomcom .jci-timer-until,
.jci-front .jci-timer-until{
  margin-left:10px;font-family:var(--nc-mono,ui-monospace,monospace);font-size:10px;font-weight:500;
  letter-spacing:.13em;text-transform:uppercase;opacity:.75}
