:root{
  --blue-deep: #0f5a8c;
  --blue: #1c76b3;
  --blue-light: #eaf4fb;
  --blue-mid: #cfe6f4;
  --ink: #1f2d36;
  --ink-soft: #55636b;
  --paper: #f6f8fa;
  --card: #ffffff;
  --line: #e1e8ed;
}

/* ---------- Base (menu page only) ---------- */
body:has(#speaker_menu){
  background: var(--paper) !important;
  color: var(--ink);
  font-family: 'Source Sans Pro','Segoe UI',Helvetica,Arial,sans-serif;
}
header img{ max-width:100%; height:auto; display:block; } /* harmless everywhere; header image itself is untouched */

/* ---------- Grid shell ---------- */
#wrapper:has(#speaker_menu){
  display: grid !important;
  grid-template-columns: 1.7fr 1fr;
  grid-template-areas:
    "main cta"
    "main contact"
    "main logout"
    "main support";
  gap: 28px;
  max-width: 1120px;
  margin: 0 auto !important;
  padding: 36px 20px 80px;
  align-items: start;
}
#wrapper:has(#speaker_menu) > #speaker_menu{ grid-area: main; }
#wrapper:has(#speaker_menu) > #new_proposal{ grid-area: cta; }
#wrapper:has(#speaker_menu) > #contact_information{ grid-area: contact; }
#wrapper:has(#speaker_menu) > #logout{ grid-area: logout; }
#wrapper:has(#speaker_menu) > #technical_support{ grid-area: support; }

/* stray <hr>/<br> and the empty footer div in the source are pure spacers —
   layout is handled by grid gap instead. Scoped to the menu page only. */
#wrapper:has(#speaker_menu) > hr,
#wrapper:has(#speaker_menu) > br,
#wrapper:has(#speaker_menu) > #footer_text{ display:none !important; }

@media (max-width: 820px){
  #wrapper:has(#speaker_menu){
    grid-template-columns: 1fr;
    grid-template-areas: "main" "cta" "contact" "logout" "support";
  }
}

/* ============================================================
   MAIN COLUMN — #speaker_menu
   ============================================================ */

/* "Welcome, Hannah!" */
#speaker_menu > p:first-child{
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 26px;
  color: var(--blue-deep);
  margin: 0 0 6px;
}

/* --- Intro paragraph (eligibility + inline "FILE GUIDELINES (view here)") --- */
#welcome_text > p:nth-of-type(1){
  font-size: 15.5px;
  line-height: 1.6;
  color: var(--ink-soft);
  max-width: 68ch;
  margin: 0 0 4px;
}
#welcome_text > p:nth-of-type(1) strong{ color: var(--ink); } /* the "**" bold run */
#welcome_text > p:nth-of-type(1) strong:first-of-type{ display:none; } /* empty spacer <strong> */
#welcome_text > p:nth-of-type(1) br{ display:none; } /* collapse the double <br><br> */
#welcome_text > p:nth-of-type(1) strong:last-of-type{
  display: block;
  margin: 22px 0 12px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--blue-deep);
}
#welcome_text a{ color: var(--blue); font-weight:600; text-decoration:none; border-bottom:1px solid var(--blue-mid); }
#welcome_text a:hover{ border-bottom-color: var(--blue); }

/* --- File guidelines list → card --- */
#welcome_text > ul{
  list-style: none;
  margin: 0 0 28px;
  padding: 18px 24px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(15,90,140,.04);
}
#welcome_text > ul > li{
  position: relative;
  padding: 10px 0 10px 26px;
  font-size: 15px;
  line-height: 1.5;
  border-bottom: 1px dashed var(--line);
}
#welcome_text > ul > li:last-child{ border-bottom: none; }
#welcome_text > ul > li::before{
  content:"";
  position:absolute; left:0; top:16px;
  width:9px; height:9px; border-radius:50%;
  background: var(--blue);
}
#welcome_text > ul > li strong{ color: var(--blue-deep); }

/* --- "PROCESS:" label paragraph --- */
#welcome_text > p:nth-of-type(2){ margin:0; }
#welcome_text > p:nth-of-type(2) br{ display:none; }
#welcome_text > p:nth-of-type(2) strong{
  display:block;
  margin: 4px 0 14px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--blue-deep);
}

/* --- Steps <ol> → numbered stepper card --- */
#welcome_text > ol{
  list-style: none;
  counter-reset: step;
  margin: 0 0 28px;
  padding: 26px 26px 4px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(15,90,140,.04);
}
#welcome_text > ol > li{
  counter-increment: step;
  position: relative;
  padding: 0 0 30px 56px;
  font-size: 14.8px;
  line-height: 1.6;
  color: var(--ink-soft);
}
#welcome_text > ol > li:last-child{ padding-bottom: 6px; }

/* number badge */
#welcome_text > ol > li::before{
  content: counter(step);
  position: absolute;
  left: 0; top: 0;
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--blue-light);
  border: 2px solid var(--blue);
  color: var(--blue-deep);
  font-weight: 700;
  font-family: Georgia, serif;
  font-size: 15px;
  line-height: 32px;
  text-align: center;
}
/* connecting line between badges */
#welcome_text > ol > li:not(:last-child)::after{
  content:"";
  position:absolute;
  left: 17px; top: 38px; bottom: -30px;
  width: 2px;
  background: var(--blue-mid);
}

/* step label, e.g. "SUBMISSION:", "ENROLLMENT VERIFICATION:", "(optional) FACULTY SPONSOR:" */
#welcome_text > ol > li > strong:first-child{
  display: block;
  margin-bottom: 6px;
  font-size: 16.5px;
  font-weight: 700;
  color: var(--ink);
  font-family: 'Source Sans Pro', sans-serif;
  text-transform: none;
  letter-spacing: 0;
}
/* inline emphasis inside a step, e.g. CLASS STANDING / FULL TIME */
#welcome_text > ol > li strong:not(:first-child){
  background: var(--blue-light);
  color: var(--blue-deep);
  padding: 1px 5px;
  border-radius: 4px;
}
/* collapse the empty <p>&nbsp;</p> spacers used for manual gaps */
#welcome_text > ol > li > p{ display:none; }

/* --- Footnote (last paragraph) --- */
#welcome_text > p:last-of-type{
  font-size: 13px;
  line-height: 1.6;
  color: var(--ink-soft);
  margin: 0;
}

/* ============================================================
   SIDEBAR
   ============================================================ */

/* --- New Proposal CTA --- */
#new_proposal{
  background: linear-gradient(160deg, var(--blue-deep), var(--blue));
  border-radius: 10px;
  padding: 24px 26px;
  color: #fff;
}
#new_proposal > p:first-child{
  margin: 0 0 14px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #dcf0fa;
}
#new_proposal a{ display:block; text-decoration:none; }
#new_proposal input[type="button"]{
  display: block;
  width: 100%;
  background: #fff;
  color: var(--blue-deep);
  border: none;
  border-radius: 7px;
  padding: 14px 16px;
  font-size: 13.5px;
  font-weight: 700;
  line-height: 1.35;
  white-space: normal;   /* let the long button label wrap onto 2 lines */
  cursor: pointer;
  /* transition: transform .12s ease, box-shadow .12s ease; */
}
#new_proposal input[type="button"]:hover{
  color: var(--blue-deep);
  box-shadow: 0 6px 14px rgba(0,0,0,.18);
}

/* --- Contact Information card --- */
#contact_information{
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 22px 24px;
}
#contact_information > p:first-child{
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--blue-deep);
}
#contact_information > p:nth-of-type(2){
  margin: 0 0 14px;
  font-size: 14px;
  color: var(--ink-soft);
  line-height: 1.55;
}
#contact_information ul{ list-style:none; margin:0; padding:0; }
#contact_information a{ color: var(--blue); font-weight:600; text-decoration:none; font-size:14px; }
#contact_information a:hover{ text-decoration: underline; }

/* --- Log out row --- */
#logout{
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 14px 20px;
}
#logout p{ margin:0; }
#logout a{ color: var(--ink-soft); font-weight:600; text-decoration:none; font-size:14px; }
#logout a:hover{ color: var(--ink); }

/* --- Technical support card --- */
#wrapper:is(:has(#speaker_menu), :has(.summary-container), :has(.proposal_summary_instructions)) #technical_support{
  background: var(--blue-light);
  border: 1px dashed var(--blue-mid);
  border-radius: 10px;
  padding: 18px 20px;
  margin-top: 20px;
}
#wrapper:is(:has(#speaker_menu), :has(.summary-container), :has(.proposal_summary_instructions)) #technical_support p{ margin:0; font-size:14px; color: var(--ink); }
#wrapper:is(:has(#speaker_menu), :has(.summary-container), :has(.proposal_summary_instructions)) #technical_support strong{ color: var(--blue-deep); }
#wrapper:is(:has(#speaker_menu), :has(.summary-container), :has(.proposal_summary_instructions)) #technical_support a{ color: var(--blue-deep); font-weight:700; text-decoration:none; }
#wrapper:is(:has(#speaker_menu), :has(.summary-container), :has(.proposal_summary_instructions)) #technical_support a:hover{ text-decoration: underline; }


/* ============================================================
   SUMMARY / REVIEW PAGE 
   ============================================================ */

#wrapper:has(.summary-container){
  max-width: 900px;
  margin: 0 auto !important;
  padding: 36px 20px 80px;
}
body:has(.summary-container){
  background: var(--paper) !important;
  color: var(--ink);
  font-family: 'Source Sans Pro','Segoe UI',Helvetica,Arial,sans-serif;
}

/* Page title */
#wrapper:has(.summary-container) > h1{
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 28px;
  color: var(--blue-deep);
  margin: 0 0 6px;
}

/* Step tracker table (shared across the summary page and each form step,
   e.g. "1 · 2 · 3 · 4 Summary") */
#wrapper:is(:has(.summary-container), :has(.proposal_summary_instructions)) table#appstatus{
  display: block;
  width: 100%;
  margin: 4px 0 26px;
}
#wrapper:is(:has(.summary-container), :has(.proposal_summary_instructions)) table#appstatus tbody,
#wrapper:is(:has(.summary-container), :has(.proposal_summary_instructions)) table#appstatus tr{
  display: flex;
  gap: 10px;
  width: 100%;
}
#wrapper:is(:has(.summary-container), :has(.proposal_summary_instructions)) table#appstatus td{
  flex: 1;
  position: relative;
  text-align: center;
  padding: 10px 8px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .03em;
  color: var(--ink-soft);
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 8px;
}
#wrapper:is(:has(.summary-container), :has(.proposal_summary_instructions)) table#appstatus td.curr{
  background: var(--blue-light);
  border-color: var(--blue);
  color: var(--blue-deep);
}

/* "Summary" / "Essay" step-title label + Required* legend (shared) */
#wrapper:is(:has(.summary-container), :has(.proposal_summary_instructions)) > h2{
  font-family: 'Source Sans Pro', sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--blue-deep);
  margin: 0 0 10px;
}
#wrapper:is(:has(.summary-container), :has(.proposal_summary_instructions)) .asterisk{ color:#c0392b; font-weight:700; }
#wrapper:is(:has(.summary-container), :has(.proposal_summary_instructions)) > p > span.asterisk{
  display: inline-block;
  background: #fdecea;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
}

/* Intro instructions → callout */
.section_summary_complete_unfinished_submitted{
  background: var(--blue-light);
  border-left: 3px solid var(--blue);
  border-radius: 0 8px 8px 0;
  padding: 16px 20px;
  margin: 20px 0 28px;
}
.section_summary_complete_unfinished_submitted p{
  margin: 0 0 10px;
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--ink);
}
.section_summary_complete_unfinished_submitted p:last-child{ margin-bottom: 0; }
.section_summary_complete_unfinished_submitted strong{ color: var(--blue-deep); }

/* Essay / Student Information cards */
.summary-container{
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 24px 26px;
  margin-bottom: 24px;
  box-shadow: 0 1px 2px rgba(15,90,140,.04);
}
.summary-header{
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.summary-header > h2{ order: 1; margin:0; font-size: 19px; font-family: Georgia, serif; color: var(--blue-deep); }
.summary-header > div{ order: 2; }
.summary-header a{ font-size: 13px; font-weight: 600; color: var(--blue); text-decoration: none; white-space: nowrap; }
.summary-header a:hover{ text-decoration: underline; }

.summary-section-container{ margin:0; padding:0; }
.summary-section{
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 6px 20px;
  padding: 12px 0;
  border-bottom: 1px dashed var(--line);
  align-items: start;
}
.summary-section:last-child{ border-bottom: none; padding-bottom: 2px; }
.summary-label{
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.summary-label .asterisk{ font-size: 11px; margin-left: 2px; }
.summary-value{ font-size: 15px; color: var(--ink); line-height: 1.5; }
.summary-value a{ color: var(--blue); font-weight: 600; text-decoration: none; }
.summary-value a:hover{ text-decoration: underline; }
.summary-value em{ display:block; margin-top: 2px; font-size: 13px; font-style: italic; color: var(--ink-soft); }

@media (max-width: 640px){
  .summary-section{ grid-template-columns: 1fr; }
}

.query_wrapper:not(:has(h3)):not(:has(.note_body)):has(> .query_input:empty){ display:none; }

/* Submit / Remove buttons */
.session-submit-btns{
  display: flex;
  gap: 14px;
  margin-top: 24px !important;
  font-size: 0; /* collapses the literal &nbsp;&nbsp;... spacer text between the two inputs */
}
.session-submit-btns input[type="button"]{
  border: none;
  border-radius: 8px;
  padding: 14px 28px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .02em;
  cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease;
}
.session-submit-btns input[type="button"]:not(.reverse){
  background: linear-gradient(160deg, var(--blue-deep), var(--blue));
  color: #fff;
}
.session-submit-btns input[type="button"]:not(.reverse):hover{
  color: #fff;
  box-shadow: 0 6px 14px rgba(15,90,140,.25);
}
.session-submit-btns input[type="button"].reverse{
  background: #fff;
  color: #b3261e;
  border: 1.5px solid #f0c4c0;
}
.session-submit-btns input[type="button"].reverse:hover{ background: #fdecea; color: #b3261e; }

/* "Return to menu" link under the buttons */
.session-submit-btns + p{ margin: 20px 0 0; }
.session-submit-btns + p a{ font-size: 14px; font-weight: 600; color: var(--ink-soft); text-decoration: none; }
.session-submit-btns + p a:hover{ color: var(--blue); }


/* ============================================================
   FORM STEP PAGE 
   ============================================================ */

body:has(.proposal_summary_instructions){
  background: var(--paper) !important;
  color: var(--ink);
  font-family: 'Source Sans Pro','Segoe UI',Helvetica,Arial,sans-serif;
}
#wrapper:has(.proposal_summary_instructions){
  max-width: 900px;
  margin: 0 auto !important;
  padding: 36px 20px 80px;
}
#wrapper:has(.proposal_summary_instructions) > h1{
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 28px;
  color: var(--blue-deep);
  margin: 0 0 6px;
}

/* "Unsaved changes will be lost" reminder banner */
.proposal_summary_instructions{
  background: var(--blue-light);
  border-left: 3px solid var(--blue);
  border-radius: 0 8px 8px 0;
  padding: 16px 20px;
  margin: 20px 0 28px;
}
.proposal_summary_instructions p{ margin:0; font-size: 14.5px; line-height: 1.6; color: var(--ink); }
.proposal_summary_instructions strong{ color: var(--blue-deep); }

/* Each field → its own card */
.query_wrapper{
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 22px 24px;
  margin-bottom: 20px;
  box-shadow: 0 1px 2px rgba(15,90,140,.04);
}
.query_wrapper h3{
  margin: 0 0 12px;
  font-size: 16.5px;
  font-weight: 700;
  color: var(--ink);
  font-family: 'Source Sans Pro', sans-serif;
}
.query_wrapper h3 .asterisk{ font-size: 13px; margin-left: 2px; }
.query_wrapper .query_input br{ display: none; } /* collapse manual <br><br> spacers */

/* Guideline / helper text blocks (FILE GUIDELINES, Confirmation copy, word-count note) */
.query_wrapper .note_body{ font-size: 14.5px; line-height: 1.6; color: var(--ink-soft); }
.query_wrapper .note_body strong{ color: var(--ink); }
.query_wrapper .note_body a{ color: var(--blue); font-weight: 600; text-decoration: none; }
.query_wrapper .note_body a:hover{ text-decoration: underline; }
.query_wrapper .note_body ul{ list-style: none; margin: 10px 0; padding: 0; }
.query_wrapper .note_body ul li{ position: relative; padding: 6px 0 6px 22px; font-size: 14px; line-height: 1.5; }
.query_wrapper .note_body ul li::before{
  content:""; position:absolute; left:0; top:13px;
  width:7px; height:7px; border-radius:50%; background: var(--blue);
}

/* Text inputs */
.query_wrapper .query_input input[type="text"]{
  width: 100%;
  max-width: 520px;
  padding: 11px 14px;
  font-size: 15px;
  color: var(--ink);
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 7px;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.query_wrapper .query_input input[type="text"]:focus{
  outline: none;
  border-color: var(--blue);
  box-shadow: 0 0 0 3px var(--blue-light);
}
.query_wrapper .query_input input[readonly]{
  background: var(--paper);
  color: var(--ink-soft);
  cursor: not-allowed;
}
.query_wrapper input[name="word_count"]{ max-width: 140px; } /* short numeric field doesn't need full width */

/* Checkbox row (Confirmation) */
.query_wrapper .query_input:has(input[type="checkbox"]){
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
}
.query_wrapper .query_input input[type="checkbox"]{
  width: 18px; height: 18px;
  accent-color: var(--blue);
}
.query_wrapper .query_input label{ font-size: 15px; color: var(--ink); }

/* File-requirement notes ("Max file size: 10MB" / "Valid file types: .pdf") → small badges */
.query_wrapper .query_input > p:has(> strong){
  display: inline-block;
  margin: 0 8px 12px 0;
  padding: 4px 10px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--blue-deep);
  background: var(--blue-light);
  border-radius: 20px;
}

/* Upload trigger button */
.query_wrapper .query_input input[type="button"]{
  background: linear-gradient(160deg, var(--blue-deep), var(--blue));
  color: #fff;
  border: none;
  border-radius: 7px;
  padding: 12px 22px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .02em;
  cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease;
}
.query_wrapper .query_input input[type="button"]:hover{
  color: #fff;
  box-shadow: 0 6px 14px rgba(15,90,140,.22);
}

/* Previous / Save / Save and continue row. */
#wrapper:has(.proposal_summary_instructions) form > p:has(.primary_form_button){
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin: 28px 0 0 !important;
  font-size: 0; /* collapses the literal &nbsp;&nbsp;&nbsp;&nbsp; spacer text between buttons */
}
.primary_form_button{
  border: none;
  border-radius: 8px;
  padding: 14px 26px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .02em;
  cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease;
  background: linear-gradient(160deg, var(--blue-deep), var(--blue));
  color: #fff;
}
.primary_form_button:hover{ color: #fff; box-shadow: 0 6px 14px rgba(15,90,140,.25); }
.primary_form_button[value="Previous"]{
  background: #fff;
  color: var(--ink-soft);
  border: 1.5px solid var(--line);
}
.primary_form_button[value="Previous"]:hover{ background: var(--paper); color: var(--ink-soft); box-shadow:none; transform:none; }
.primary_form_button[value="Save"]{
  background: #fff;
  color: var(--blue-deep);
  border: 1.5px solid var(--blue-mid);
}
.primary_form_button[value="Save"]:hover{ background: var(--blue-light); color: var(--blue-deep); box-shadow:none; transform:none; }

/* "Return to menu" + "Unsaved changes will be lost" under the button row */
#wrapper:has(.proposal_summary_instructions) form > p:has(.primary_form_button) + p{
  margin: 20px 0 0;
}
#wrapper:has(.proposal_summary_instructions) form > p:has(.primary_form_button) + p > a{
  font-size: 14px; font-weight: 600; color: var(--ink-soft); text-decoration: none;
}
#wrapper:has(.proposal_summary_instructions) form > p:has(.primary_form_button) + p > a:hover{ color: var(--blue); }
#wrapper:has(.proposal_summary_instructions) form > p:has(.primary_form_button) + p > span{
  font-size: 13px; font-weight: 600; display: inline-block; margin-top: 4px;
}


/* ============================================================
   CONFIRMATION PAGE 
   ============================================================ */

body:has(img[src*="twitter-badges"]){
  background: var(--paper) !important;
  color: var(--ink);
  font-family: 'Source Sans Pro','Segoe UI',Helvetica,Arial,sans-serif;
}
#wrapper:has(img[src*="twitter-badges"]){
  max-width: 760px;
  margin: 0 auto !important;
  padding: 36px 20px 80px;
}

#wrapper:has(img[src*="twitter-badges"]) > p{
  margin: 0 0 6px;
  font-size: 15px;
  line-height: 1.6;
  color: var(--ink-soft);
}

/* Page title, with a small "done" badge */
#wrapper:has(img[src*="twitter-badges"]) > h1{
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 28px;
  color: var(--blue-deep);
  margin: 0 0 18px;
}
#wrapper:has(img[src*="twitter-badges"]) > h1::before{
  content: "✓";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px; height: 38px;
  border-radius: 50%;
  background: var(--blue-light);
  border: 2px solid var(--blue);
  color: var(--blue-deep);
  font-size: 18px;
  font-weight: 700;
  flex-shrink: 0;
}

/* "Thank you for your submission…" lead paragraph */
#wrapper:has(img[src*="twitter-badges"]) > h1 + p{
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink-soft);
  max-width: 62ch;
  margin: 0 0 28px;
}
#wrapper:has(img[src*="twitter-badges"]) > h1 + p br{ display: none; }

/* "Share with your friends!" label — selected via the sibling table that follows it */
#wrapper:has(img[src*="twitter-badges"]) > p:has(+ table){
  font-family: 'Source Sans Pro', sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--blue-deep);
  margin: 0 0 14px;
}

/* Social links table */
#wrapper:has(img[src*="twitter-badges"]) table{
  border-collapse: collapse;
  margin: 0 0 32px;
}
#wrapper:has(img[src*="twitter-badges"]) table tbody,
#wrapper:has(img[src*="twitter-badges"]) table tr{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  column-gap: 10px;
  row-gap: 10px;
}
#wrapper:has(img[src*="twitter-badges"]) table td{
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14.5px;
  color: var(--ink);
  padding: 0;
}
#wrapper:has(img[src*="twitter-badges"]) table img{ display: block; border-radius: 4px; }

/* The long informational paragraph (faculty-sponsor deadline + contact
   details) — identified by the coordinator's mailto link it contains */
#wrapper:has(img[src*="twitter-badges"]) > p:has(a[href^="mailto:olivia"]){
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 26px 28px;
  font-size: 14.5px;
  line-height: 1.75;
  color: var(--ink);
  margin: 0 0 24px;
}
#wrapper:has(img[src*="twitter-badges"]) > p:has(a[href^="mailto:olivia"]) strong{
  color: var(--blue-deep);
  background: var(--blue-light);
  padding: 1px 6px;
  border-radius: 4px;
}
#wrapper:has(img[src*="twitter-badges"]) > p:has(a[href^="mailto:olivia"]) a{
  color: var(--blue);
  font-weight: 600;
  text-decoration: none;
}
#wrapper:has(img[src*="twitter-badges"]) > p:has(a[href^="mailto:olivia"]) a:hover{ text-decoration: underline; }

/* "Return to menu" → primary action button, since it's the one thing
   left to do on a completed page */
#wrapper:has(img[src*="twitter-badges"]) > p:has(a[href^="mailto:olivia"]) + p{ margin: 0; }
#wrapper:has(img[src*="twitter-badges"]) > p:has(a[href^="mailto:olivia"]) + p a{
  display: inline-block;
  background: linear-gradient(160deg, var(--blue-deep), var(--blue));
  color: #fff;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: .02em;
  padding: 13px 28px;
  border-radius: 8px;
  text-decoration: none;
  transition: transform .12s ease, box-shadow .12s ease;
}
#wrapper:has(img[src*="twitter-badges"]) > p:has(a[href^="mailto:olivia"]) + p a:hover{
  color: #fff;
  box-shadow: 0 6px 14px rgba(15,90,140,.25);
}


/* ============================================================
   REVIEWER DASHBOARD 
   ============================================================ */

body:has(#review_menu){
  background: var(--paper) !important;
  color: var(--ink);
  font-family: 'Source Sans Pro','Segoe UI',Helvetica,Arial,sans-serif;
}
#wrapper:has(#review_menu){
  max-width: 900px;
  margin: 0 auto !important;
  padding: 36px 20px 80px;
}
#review_menu > p:first-child{
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 26px;
  color: var(--blue-deep);
  margin: 0 0 20px;
}

/* Documents Library box */
#review_welcome_text div[style*="Montserrat"]{
  font-family: 'Source Sans Pro', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
}
#review_welcome_text table{
  float: none !important;
  width: auto !important;
  height: auto !important;
  max-width: 280px;
  border: 1px solid var(--line) !important;
  border-collapse: collapse;
  border-radius: 10px;
  overflow: hidden;
  margin: 0 0 24px;
}
#review_welcome_text table th{
  text-align: left;
  padding: 18px 20px;
  background: var(--card);
  font-weight: 400;
}
#review_welcome_text table th strong{
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--blue-deep);
  margin-bottom: 10px;
}
#review_welcome_text table th br{ display: none; } /* redundant once links are display:block below */
#review_welcome_text table th a{
  display: block;
  margin: 6px 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--blue);
  text-decoration: none;
}
#review_welcome_text table th a:hover{ text-decoration: underline; }
/* the five <p>&nbsp;</p> spacers existed only to reserve height under
   the floated table — no longer needed now that float is gone */
#review_welcome_text div[style*="margin-left:10px"] > p{ display: none; }

/* Individual Reviews section */
#review_individual_reviews{ margin: 0 0 32px; }
#review_individual_reviews h2{
  font-family: Georgia, serif;
  font-size: 20px;
  color: var(--blue-deep);
  margin: 0 0 16px;
}
.ewf-reviews-table{
  width: 100%;
  border-collapse: collapse;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
}
.ewf-reviews-table th{
  text-align: left;
  padding: 12px 16px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--blue-deep);
  background: var(--blue-light);
}
.ewf-reviews-table th.col-center{ text-align: center; }
.ewf-reviews-table td{
  padding: 14px 16px;
  font-size: 14.5px;
  color: var(--ink);
  border-top: 1px solid var(--line);
  background-color: #fff !important;
}
#review_individual_reviews table tbody td{ background-color: #fff !important; }
.ewf-reviews-table td.col-center{ text-align: center; }
/* Cancels a row-hover background coming from the site's global stylesheet
   (not something this stylesheet added) — removed per request. */
.ewf-reviews-table tbody tr:hover,
.ewf-reviews-table tbody tr:hover td{
  background-color: #fff !important;
}
.ewf-reviews-table .btn-review{
  background: linear-gradient(160deg, var(--blue-deep), var(--blue));
  color: #fff;
  border: none;
  border-radius: 7px;
  padding: 10px 20px;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: .02em;
  cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease;
}
.ewf-reviews-table .btn-review:hover{
  color: #fff;
  box-shadow: 0 6px 14px rgba(15,90,140,.22);
}
.reviews-closed-badge{
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--ink-soft);
  background: var(--paper);
  border: 1px solid var(--line);
  padding: 5px 12px;
  border-radius: 20px;
}

/* Technical support + log out */
#review_menu > p:has(> a[href^="mailto:ewfprizehelp"]){
  background: var(--blue-light);
  border: 1px dashed var(--blue-mid);
  border-radius: 10px;
  padding: 16px 20px;
  margin: 0 0 16px;
  font-size: 14px;
  color: var(--ink);
}
#review_menu > p:has(> a[href^="mailto:ewfprizehelp"]) strong{ color: var(--blue-deep); }
#review_menu > p:has(> a[href^="mailto:ewfprizehelp"]) a{ color: var(--blue-deep); font-weight: 700; text-decoration: none; }
#review_menu > p:has(> a[href^="mailto:ewfprizehelp"]) a:hover{ text-decoration: underline; }
#review_logout{ margin: 0; }
#review_logout a{ font-size: 14px; font-weight: 600; color: var(--ink-soft); text-decoration: none; }
#review_logout a:hover{ color: var(--blue); }

/* ---------- Mobile: turn the reviews table into stacked cards ---------- */
@media (max-width: 640px){
  #wrapper:has(#review_menu){ padding: 24px 16px 60px; }
  #review_welcome_text table{ max-width: 100%; }

  #review_individual_reviews table,
  #review_individual_reviews table thead,
  #review_individual_reviews table tbody,
  #review_individual_reviews table th,
  #review_individual_reviews table td,
  #review_individual_reviews table tr{
    display: block;
    width: 100% !important;
  }
  #review_individual_reviews table thead{ display: none; } /* replaced by inline data-label */
  #review_individual_reviews table tr{
    border: 1px solid var(--line);
    border-radius: 10px;
    margin-bottom: 14px;
    padding: 14px 16px;
  }
  #review_individual_reviews table td{
    border-top: none;
    padding: 6px 0;
    text-align: left !important;
  }
  #review_individual_reviews table td[data-label]::before{
    content: attr(data-label) ": ";
    font-weight: 700;
    color: var(--blue-deep);
  }
  #review_individual_reviews table td.col-action{ margin-top: 8px; }
  .ewf-reviews-table .btn-review{ width: 100%; }
}

body:has(#review_list){
  background: var(--paper) !important;
  color: var(--ink);
  font-family: 'Source Sans Pro','Segoe UI',Helvetica,Arial,sans-serif;
}
#wrapper:has(#review_list){
  max-width: 1100px;
  margin: 0 auto !important;
  padding: 36px 20px 80px;
}
#review_list > h1{
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 28px;
  color: var(--blue-deep);
  margin: 0 0 6px;
}
#review_list > h2:empty{ display: none; }

#review_sidebar{
  float: right;
  width: 260px;
  margin: 0 0 24px 24px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 18px 20px;
  font-size: 13.5px;
  color: var(--ink);
}

/* "Return to Menu" / "Refresh" — kept visually secondary so they don't
   compete with the per-row "Review" buttons, which are the real action */
#review_list > p:has(input[value="Refresh"]){
  display: flex;
  gap: 12px;
  margin: 20px 0 32px;
  font-size: 0; /* collapses the literal &nbsp;&nbsp;&nbsp;&nbsp; spacer text */
}
#review_list > p:has(input[value="Refresh"]) input[type="button"]{
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .02em;
  padding: 12px 22px;
  border-radius: 8px;
  cursor: pointer;
  border: 1.5px solid var(--blue-mid);
  background: #fff;
  color: var(--blue-deep);
  transition: background .12s ease;
}
#review_list > p:has(input[value="Refresh"]) input[type="button"]:hover{ background: var(--blue-light); color: var(--blue-deep); }

/* Instructions block */
#review_list_instructions div[style*="Montserrat"]{
  font-family: 'Source Sans Pro', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
}
#review_list_instructions h2{
  font-family: Georgia, serif;
  font-size: 20px;
  color: var(--blue-deep);
  margin: 28px 0 14px;
}
#review_list_instructions h2:first-child{ margin-top: 0; }

/* "General Instructions" / "Technical Instructions" toggles */
#review_list_instructions h4{ margin: 18px 0 0; }
#review_list_instructions h4 a{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 700;
  color: var(--blue-deep);
  text-decoration: none;
  padding: 10px 16px;
  background: var(--blue-light);
  border-radius: 8px;
}
#review_list_instructions h4 a::before{ content: "▸"; font-size: 12px; color: var(--blue); }
#review_list_instructions h4 a:hover{ background: var(--blue-mid); }
#review_list_instructions div[id^="content"]{
  padding: 16px 18px 4px;
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--ink-soft);
}
#review_list_instructions div[id^="content"] strong{ color: var(--blue-deep); }
#review_list_instructions div[id^="content"] p{ margin: 0 0 12px; }

/* "For technical assistance…" line */
#review_list_instructions div[style*="Montserrat"] > p:last-child{
  font-size: 14px;
  color: var(--ink-soft);
  margin: 18px 0 0;
}
#review_list_instructions div[style*="Montserrat"] > p:last-child a{
  color: var(--blue); font-weight: 600; text-decoration: none;
}
#review_list_instructions div[style*="Montserrat"] > p:last-child a:hover{ text-decoration: underline; }

/* "Note: you can click column headers to sort…" callout */
#review_list_instructions > p:has(strong){
  background: var(--blue-light);
  border-left: 3px solid var(--blue);
  border-radius: 0 8px 8px 0;
  padding: 12px 16px;
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--ink);
  margin: 0 0 20px;
}
#review_list_instructions > p:has(strong) strong{ color: var(--blue-deep); }

/* The sortable assignments table itself */
#assignments.tablesorter{
  clear: both; /* always start below the floated sidebar, regardless of its height */
  width: 100% !important;
  font-size: 14px !important; /* overrides the page's own inline 12px rule */
  border-collapse: collapse;
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
  margin: 0 0 20px;
}
#assignments.tablesorter thead th{
  background-color: var(--blue-light); /* background-color only — preserves Tablesorter's sort-icon background-image */
  color: var(--blue-deep) !important;
  font-weight: 700;
  padding: 12px 14px !important;
  border-bottom: 2px solid var(--blue-mid) !important;
}
#assignments.tablesorter tbody td{
  padding: 14px !important;
  border-top: 1px solid var(--line);
  color: var(--ink);
  vertical-align: middle !important;
}

.tablesorter tbody tr.odd td{ background-color: #fff; }
.tablesorter tbody tr.even td{ background-color: #fff; }
#assignments.tablesorter tbody tr:not(.red):not(.green):not(.yellow):not(.gray):not(.blue) td{
  background-color: #fff !important;
}
/* Row hover removed per request — Tablesorter's default zebra hover
   behavior (if any) still applies from its own theme CSS, untouched. */
#assignments.tablesorter tbody td:first-child{
  color: var(--ink-soft);
  font-weight: 600;
  width: 36px;
}
#assignments.tablesorter .row-action input[type="button"]{
  background: linear-gradient(160deg, var(--blue-deep), var(--blue));
  color: #fff;
  border: none;
  border-radius: 7px;
  padding: 9px 20px;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: .02em;
  cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease;
}
#assignments.tablesorter .row-action input[type="button"]:hover{
  color: #fff;
  box-shadow: 0 6px 14px rgba(15,90,140,.22);
}

/* Mobile: horizontal scroll rather than stacking, since stacking would
   require hiding <thead> — and this table's headers are click-to-sort,
   not just labels. This keeps sorting fully usable on a phone. */
@media (max-width: 900px){
  #review_sidebar{
    float: none;
    width: 100%;
    margin: 0 0 24px;
  }
  #assignments.tablesorter{
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
  }
  #assignments.tablesorter thead,
  #assignments.tablesorter tbody{
    display: table;
    width: 100%;
  }
}

#review_individual_reviews table tbody tr:hover,
#review_individual_reviews table tbody tr:hover td,
#review_individual_reviews table tbody td:hover,
.ewf-reviews-table tbody tr:hover,
.ewf-reviews-table tbody tr:hover td,
.ewf-reviews-table tbody td:hover,
#assignments.tablesorter tbody tr:hover,
#assignments.tablesorter tbody tr:hover td,
#assignments.tablesorter tbody td:hover{
  background-color: #fff !important;
  background-image: none !important;
}

#assignments.tablesorter tbody tr:first-child:hover,
#assignments.tablesorter tbody tr:first-child:hover td,
#review_individual_reviews table tbody tr:first-child:hover,
#review_individual_reviews table tbody tr:first-child:hover td,
.ewf-reviews-table tbody tr:first-child:hover,
.ewf-reviews-table tbody tr:first-child:hover td{
  background-color: #fff !important;
  background-image: none !important;
}