:root {
  --exam-navy: #17365d;
  --exam-navy-dark: #102944;
  --exam-blue: #1f5f99;
  --exam-blue-soft: #eaf2f8;
  --exam-canvas: #e9edf1;
  --exam-panel: #f5f6f7;
  --exam-line: #9ba6af;
  --exam-line-light: #d7dce0;
  --exam-text: #15181c;
  --exam-muted: #59636d;
  --exam-mark: #f5cf4a;
  --exam-focus: #f4b942;
  color-scheme: light;
}

html,
body {
  width: 100%;
  min-height: 100%;
}

body {
  background: var(--exam-canvas);
  color: var(--exam-text);
  font-family: Arial, Helvetica, sans-serif;
}

#app {
  min-height: 100vh;
  min-height: 100dvh;
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.test-header {
  min-height: 62px;
  border: 0;
  border-bottom: 3px solid #8095a8;
  background: var(--exam-navy);
  box-shadow: 0 1px 3px rgba(10, 30, 50, .2);
}

.header-title {
  min-width: 0;
  gap: 18px;
  padding: 10px 24px;
}

.section-name {
  font-size: 1.02rem;
  line-height: 1.2;
}

.header-title > span:last-child {
  overflow: hidden;
  padding-left: 18px;
  border-left-color: rgba(255, 255, 255, .3);
  color: #e2e9ef;
  font-size: .84rem;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.header-tools {
  flex: 0 0 auto;
  border-left-color: rgba(255, 255, 255, .25);
}

.header-button {
  min-width: 112px;
  padding: 8px 16px;
  border-left-color: rgba(255, 255, 255, .25);
  background: #24496e;
  font-size: .88rem;
}

.header-button:hover,
.header-button:focus-visible {
  background: #315b82;
}

.header-button small {
  margin-top: 2px;
  color: #dbe4ec;
  font-size: .68rem;
}

.answer-toggle {
  min-width: 142px;
  background: #1f4f79;
  white-space: nowrap;
}

.answer-toggle.active {
  background: #fff;
  color: var(--exam-navy-dark);
  box-shadow: inset 0 -3px 0 var(--exam-blue);
}

#timer {
  font-size: 1rem;
  letter-spacing: .02em;
}

main {
  min-height: 0;
  background: #fff;
}

.screen {
  min-height: calc(100vh - 129px);
  min-height: calc(100dvh - 129px);
  padding: 28px clamp(18px, 4vw, 56px) 92px;
}

.start-screen,
.result-screen,
.review-screen {
  background: var(--exam-canvas);
}

.instruction-card,
.score-card,
.review-card {
  width: min(880px, 100%);
  padding: clamp(26px, 4vw, 42px);
  border: 1px solid #8f99a3;
  border-radius: 0;
  background: #fff;
  box-shadow: 0 2px 8px rgba(20, 38, 55, .12);
}

.kicker {
  margin-bottom: 7px;
  color: var(--exam-muted);
  font-size: .78rem;
  letter-spacing: .04em;
}

h1 {
  color: var(--exam-navy-dark);
  font-size: clamp(1.65rem, 3vw, 2.25rem);
  line-height: 1.18;
}

.rule {
  height: 3px;
  margin: 18px 0 24px;
  background: var(--exam-navy);
}

.instruction-card p,
.instruction-card li {
  line-height: 1.55;
}

.instruction-card ul {
  margin: 20px 0 26px;
}

.start-actions {
  padding-top: 18px;
  border-top: 1px solid var(--exam-line-light);
}

.primary-button,
.secondary-button,
.footer-button {
  min-height: 40px;
  padding: 8px 20px;
  border: 1px solid #66727c;
  border-radius: 2px;
  box-shadow: 0 1px 1px rgba(0, 0, 0, .08);
  font-size: .9rem;
}

.primary-button {
  border-color: var(--exam-navy-dark);
  background: var(--exam-blue);
}

.primary-button:hover,
.primary-button:focus-visible {
  background: #184f7e;
}

.secondary-button,
.footer-button {
  background: linear-gradient(#fff, #e2e6e9);
}

button:focus-visible,
input:focus-visible {
  outline: 3px solid var(--exam-focus);
  outline-offset: 2px;
}

.exam-screen {
  background: #fff;
}

.question-shell {
  width: min(1160px, 100%);
}

.question-status {
  min-height: 46px;
  padding: 8px 14px;
  border: 1px solid var(--exam-line);
  background: #f1f3f5;
  color: var(--exam-navy-dark);
}

.question-status > div {
  min-width: 0;
}

.section-badge {
  border: 0;
  border-left: 1px solid #bbc2c8;
  border-radius: 0;
  padding: 1px 0 1px 12px;
  color: var(--exam-muted);
  font-size: .76rem;
}

.mark-control {
  flex: 0 0 auto;
  gap: 7px;
  font-size: .88rem;
}

.mark-control input {
  width: 18px;
  height: 18px;
  accent-color: #9a7100;
}

.question-content {
  padding: 28px 16px 94px;
  color: #111;
  font-size: 1.12rem;
  line-height: 1.62;
}

.directions {
  margin-bottom: 24px;
  padding: 10px 13px;
  border-color: #89939c;
  background: #f2f3f4;
  color: #2d3338;
  font-size: .86rem;
}

.passage-card,
.data-block,
.blank-group {
  border-color: #aab2b9;
  border-radius: 0;
  background: #fbfbfb;
  box-shadow: none;
}

.passage-card {
  padding: 22px clamp(18px, 3vw, 32px);
}

.passage-label,
.blank-group h3,
.data-title {
  color: var(--exam-navy-dark);
}

.question-stem {
  margin-bottom: 22px;
}

.choices {
  gap: 7px;
  margin-top: 20px;
}

.choice,
.blank-group .choice {
  position: relative;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 10px;
  min-height: 42px;
  padding: 7px 10px;
  border: 1px solid transparent;
  border-radius: 2px;
  background: #fff;
}

.choice:hover {
  border-color: #b5bec6;
  background: #f3f6f8;
}

.choice:has(input:checked) {
  border-color: #7896b0;
  background: var(--exam-blue-soft);
}

.choice input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  opacity: 0;
  pointer-events: none;
}

.choice-key {
  grid-column: 1;
  width: 25px;
  height: 25px;
  border: 1.5px solid #38434c;
  background: #fff;
  color: #222;
  font-size: .78rem;
  transition: background-color .1s ease, color .1s ease, box-shadow .1s ease;
}

.choice input:checked + .choice-key {
  border-color: var(--exam-navy-dark);
  background: var(--exam-navy);
  color: #fff;
  box-shadow: inset 0 0 0 2px #fff;
}

.multi .choice input:checked + .choice-key,
.blank-group .choice input:checked + .choice-key {
  box-shadow: inset 0 0 0 2px #fff;
}

.choice input:focus-visible + .choice-key {
  outline: 3px solid var(--exam-focus);
  outline-offset: 2px;
}

.choice-text {
  grid-column: 2;
  min-width: 0;
  padding-top: 0;
  align-self: center;
}

.answer-mode .choice {
  grid-template-columns: 30px minmax(0, 1fr) auto minmax(150px, .48fr);
  cursor: default;
}

.choice.answer-revealed:hover {
  border-color: transparent;
  background: #fff;
}

.choice.answer-revealed.correct-choice,
.choice.answer-revealed.correct-choice:hover {
  border-color: #3675aa;
  background: #edf6fd;
}

.choice.answer-revealed.wrong-choice,
.choice.answer-revealed.wrong-choice:hover {
  border-color: #b76464;
  background: #fff3f3;
}

.choice.answer-revealed.correct-choice .choice-key {
  border-color: var(--exam-blue);
  background: var(--exam-blue);
  color: #fff;
  box-shadow: inset 0 0 0 2px #fff;
}

.choice.answer-revealed.wrong-choice .choice-key {
  border-color: #9b3f3f;
  background: #9b3f3f;
  color: #fff;
  box-shadow: inset 0 0 0 2px #fff;
}

.answer-badge {
  grid-column: 3;
  align-self: center;
  padding: 2px 7px;
  border: 1px solid #6f9dc2;
  color: #174f7d;
  background: #fff;
  font-family: Arial, Helvetica, sans-serif;
  font-size: .7rem;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
}

.choice-gloss {
  grid-column: 4;
  display: flex;
  flex-direction: column;
  align-self: center;
  gap: 3px;
  color: #075fa8;
  font-family: Arial, Helvetica, sans-serif;
  font-size: .78rem;
  line-height: 1.38;
  text-align: right;
}

.choice-gloss b {
  margin-right: 4px;
  font-weight: 700;
}

.blank-group .choice.answer-revealed {
  grid-template-columns: 30px minmax(0, 1fr) auto;
}

.blank-group .choice-gloss {
  grid-column: 2 / -1;
  align-items: flex-start;
  margin-top: 2px;
  text-align: left;
}

.body-glossary {
  max-width: 980px;
  margin: -8px 0 24px;
  padding: 13px 15px;
  border-left: 4px solid var(--exam-blue);
  background: #f2f7fb;
  color: #075fa8;
  font-family: Arial, Helvetica, sans-serif;
  font-size: .82rem;
  line-height: 1.45;
}

.body-glossary > strong {
  display: block;
  margin-bottom: 7px;
  color: var(--exam-navy-dark);
}

.body-glossary > div {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 18px;
}

.body-glossary span {
  display: inline-flex;
  gap: 5px;
}

.explanation-panel {
  max-width: 980px;
  margin: 32px 0 0;
  border: 1px solid #8baac3;
  background: #fff;
  font-family: Arial, Helvetica, sans-serif;
  font-size: .92rem;
  line-height: 1.55;
}

.explanation-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 11px 15px;
  color: #fff;
  background: var(--exam-navy);
}

.explanation-heading span {
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.explanation-heading strong {
  white-space: nowrap;
}

.answer-summary {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 15px;
  border-bottom: 1px solid var(--exam-line-light);
  list-style: none;
}

.answer-summary li {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 3px 8px;
}

.answer-summary li > b {
  grid-row: 1 / span 2;
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--exam-blue);
}

.answer-summary li > span:last-child:not(:nth-child(2)) {
  color: #075fa8;
  font-size: .8rem;
}

.completed-sentence,
.explanation-copy,
.explanation-panel blockquote {
  margin: 0;
  padding: 15px;
  border-bottom: 1px solid var(--exam-line-light);
}

.completed-sentence > strong,
.explanation-copy > strong,
.explanation-panel blockquote > strong {
  display: block;
  margin-bottom: 6px;
  color: var(--exam-navy-dark);
}

.completed-sentence p,
.explanation-copy p,
.explanation-panel blockquote p {
  margin: 0;
}

.completed-sentence mark {
  padding: 1px 4px;
  color: #075fa8;
  background: #dceefa;
  font-weight: 700;
}

.explanation-panel blockquote {
  border-bottom: 0;
  background: #f5f8fa;
  color: #36434e;
  font-family: Georgia, "Times New Roman", serif;
}

.blank-groups {
  gap: 16px;
}

.blank-group {
  padding: 14px;
}

.numeric-entry input {
  border-color: #44515c;
  border-radius: 0;
  background: #fff;
}

.test-footer {
  position: sticky;
  z-index: 20;
  bottom: 0;
  min-height: 64px;
  padding: 10px 24px;
  border-top: 1px solid #7f8992;
  background: #d9dee2;
  box-shadow: 0 -2px 5px rgba(20, 30, 40, .08);
}

.footer-button.next {
  min-width: 96px;
  border-color: var(--exam-navy-dark);
  background: var(--exam-navy);
}

.footer-button.next:hover,
.footer-button.next:focus-visible {
  background: #244d73;
}

.review-card {
  margin: 0 auto;
}

.review-summary {
  margin: 18px 0;
}

.review-legend {
  padding: 12px 0;
  border-top: 1px solid var(--exam-line-light);
  border-bottom: 1px solid var(--exam-line-light);
}

.review-question {
  min-height: 50px;
  border-color: #7d8891;
  border-radius: 1px;
}

.review-question.answered {
  background: #dcebf6;
}

.review-question.marked {
  box-shadow: inset 0 0 0 4px var(--exam-mark);
}

.modal,
.calculator {
  border-radius: 1px;
}

.modal::backdrop,
.calculator::backdrop {
  background: rgba(14, 25, 36, .48);
}

.calculator-top {
  background: var(--exam-navy);
}

.calculator-grid .equals {
  background: var(--exam-blue);
}

.score-display {
  border-color: var(--exam-navy);
}

@media (max-width: 720px) {
  .test-header {
    min-height: 56px;
  }

  .header-title {
    padding: 8px 12px;
  }

  .section-name {
    font-size: .9rem;
  }

  .header-button {
    min-width: 78px;
    padding: 7px 9px;
    font-size: .76rem;
  }

  .answer-toggle {
    min-width: 110px;
    font-size: .72rem;
  }

  .screen {
    min-height: calc(100dvh - 117px);
    padding: 16px 12px 78px;
  }

  .instruction-card,
  .score-card,
  .review-card {
    padding: 22px 18px;
  }

  .question-status {
    align-items: flex-start;
    gap: 10px;
    padding: 8px 10px;
  }

  .question-status > div {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
  }

  .section-badge {
    padding-left: 0;
    border-left: 0;
  }

  .question-content {
    padding: 22px 4px 80px;
    font-size: 1.02rem;
  }

  .choice,
  .blank-group .choice {
    grid-template-columns: 28px minmax(0, 1fr);
    padding: 8px 6px;
  }

  .answer-mode .choice,
  .blank-group .choice.answer-revealed {
    grid-template-columns: 28px minmax(0, 1fr) auto;
  }

  .choice-gloss {
    grid-column: 2 / -1;
    align-items: flex-start;
    text-align: left;
  }

  .body-glossary > div {
    display: grid;
    gap: 4px;
  }

  .explanation-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }

  .test-footer {
    min-height: 61px;
    padding: 9px 10px;
  }

  .footer-button {
    padding-inline: 13px;
  }
}

@media print {
  .test-footer {
    position: static;
  }
}



/* POWERPREP PREVIEW ALIGNMENT */
:root{--exam-navy:#353231;--exam-navy-dark:#262323;--exam-blue:#1976aa;--exam-blue-soft:#e6f3fb;--exam-canvas:#b9b9b9;--exam-line:#767676;--exam-line-light:#d1d1d1;--exam-focus:#ffcc39}
body{background:#aaa}
#app{width:min(1024px,100%);margin:0 auto;background:#fff;box-shadow:0 0 24px rgba(0,0,0,.25)}
.test-header{min-height:58px;background:#353231;border-bottom:7px solid #cf1f75;box-shadow:none}
.header-title{gap:13px;padding:7px 18px}
.header-title:before{content:'gre.';display:grid;place-items:center;width:66px;height:38px;border-radius:50%;color:#fff;background:#222;font:bold italic 22px Georgia,serif}
.section-name{font-size:.92rem}.header-title>span:last-child{font-size:.76rem}
.header-tools{background:#353231}.header-button{min-width:92px;background:#353231;border-left:1px solid #74706f;font-size:.78rem}.header-button:hover{background:#4a4645}
.screen{min-height:calc(100dvh - 123px);padding:20px 22px 82px}.start-screen,.result-screen,.review-screen{background:#b9b9b9}
.instruction-card,.score-card,.review-card{width:min(940px,100%);border:1px solid #666;box-shadow:none}
.question-shell{width:100%;border:1px solid #6e6e6e}.question-status{min-height:34px;padding:5px 10px;border:0;border-bottom:1px solid #999;background:#f7e7ed;font-size:.78rem}
.question-content{padding:22px 25px 88px}.directions{margin:0 -25px 22px;padding:8px 14px;border-width:0 0 1px;background:#ececec}
.test-footer{width:min(1024px,100%);margin:auto;min-height:58px;background:#d2d2d2;border-top:1px solid #777}
.primary-button,.footer-button.next{background:#187aaa;border-color:#0b5278}.rule{background:#cf1f75;height:2px}
.choice{border-color:#aaa;border-radius:0}.choice:hover{background:#f4f4f4}.choice:has(input:checked){background:#e6f3fb;border-color:#1976aa}
.answer-badge{display:none!important}
@media(max-width:720px){#app{width:100%}.header-title:before{width:52px;height:31px;font-size:17px}.header-title>span:last-child{display:none}.screen{padding-inline:8px}.question-content{padding-inline:14px}.directions{margin-inline:-14px}}


/* POWERPREP TOOLBAR AND NON-MODAL CALCULATOR */
.test-header{display:grid;grid-template-columns:minmax(250px,1fr) auto;align-items:stretch;min-height:68px}
.header-title{min-width:0;padding:7px 14px;gap:12px}
.header-title:before{width:auto;height:auto;border-radius:0;background:transparent;font-size:30px;letter-spacing:-2px}
.header-title:after{content:'Test Preview Tool';color:#fff;font-size:.98rem;font-weight:700;white-space:nowrap}
.header-title:before{order:0}.header-title:after{order:1}.header-title>span:last-child{order:2}
.header-title .section-name{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.header-title>span:last-child{margin-left:4px;padding-left:14px;max-width:220px}
.header-tools{align-self:stretch;border-left:1px solid #6f6b69}
.header-button.pp-tool{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:66px;min-height:61px;padding:5px 8px;border:0;border-left:1px solid #716d6b;color:#fff;background:#383534;font-family:Arial,Helvetica,sans-serif;line-height:1;cursor:pointer}
.header-button.pp-tool:hover,.header-button.pp-tool:focus-visible{background:#514d4b}
.header-button.pp-exit{min-width:78px;background:#765f78}
.header-button.pp-back,.header-button.pp-next{background:#1778ac}
.header-button.pp-back:hover,.header-button.pp-next:hover{background:#2188bd}
.header-button.pp-mark.active{color:#fff2a8;background:#5b5542}
.pp-tool-label{font-size:.72rem;font-weight:700;white-space:nowrap}
.pp-tool-icon{display:grid;place-items:center;min-height:23px;font-size:1.45rem;font-weight:400;line-height:1}
.pp-answers .pp-tool-icon{font:700 1.05rem Georgia,serif}
.header-button.pp-tool:disabled{opacity:.42;cursor:default}
.mark-control{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.test-footer{display:none!important}
.question-status{position:relative;padding-right:152px}
.pp-status-time{position:absolute;right:9px;top:50%;transform:translateY(-50%);display:flex!important;align-items:center!important}
.pp-time-button{display:flex;align-items:center;gap:8px;min-width:132px;padding:2px 5px;border:0;color:#252020;background:transparent;font-size:.75rem;cursor:pointer}
.pp-time-button #timer{font-size:.85rem;font-weight:700}
.pp-time-button small{color:#343030;font-size:.68rem;text-decoration:underline}
.pp-help-panel{position:fixed;z-index:1002;right:18px;top:82px;width:min(330px,calc(100vw - 28px));padding:18px 38px 18px 18px;border:1px solid #777;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.28);font:14px/1.45 Arial,Helvetica,sans-serif}
.pp-help-panel p{margin:8px 0 0}.pp-help-close{position:absolute;right:7px;top:5px;border:0;background:transparent;font-size:23px;cursor:pointer}
dialog.pp-calculator{position:fixed;z-index:1005;inset:auto;margin:0;width:356px;max-width:calc(100vw - 24px);padding:0;border:1px solid #3f3f3f;border-radius:0;background:#d7d7d7;box-shadow:0 7px 24px rgba(0,0,0,.38);overflow:hidden}
dialog.pp-calculator::backdrop{background:transparent;pointer-events:none}
.pp-calculator .calculator-top{display:flex;align-items:center;justify-content:space-between;height:32px;padding:0 5px 0 11px;color:#fff;background:#626262;cursor:move;touch-action:none;user-select:none}
.pp-calculator .calculator-top strong{font:700 13px Arial,Helvetica,sans-serif}
.pp-calculator .calculator-top button{width:27px;height:25px;border:1px solid #aaa;color:#222;background:#eee;font-size:19px;line-height:18px;cursor:pointer}
.pp-calculator #calculatorDisplay{display:flex;align-items:center;justify-content:flex-end;height:68px;margin:7px;padding:7px 12px;border:1px solid #888;color:#111;background:#fff;font:30px/1.1 Arial,Helvetica,sans-serif;font-variant-numeric:tabular-nums;overflow:hidden}
.pp-calculator .calculator-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:3px;padding:0 7px 7px;background:#d7d7d7}
.pp-calculator .calculator-grid button{min-height:43px;border:1px solid #777;border-radius:3px;color:#111;background:linear-gradient(#fff,#e2e2e2);font:700 18px Arial,Helvetica,sans-serif;box-shadow:inset 0 1px #fff;cursor:pointer}
.pp-calculator .calculator-grid button:hover{filter:brightness(.94)}
.pp-calculator .calculator-grid .calc-function,.pp-calculator .calculator-grid .calc-operator{color:#fff;background:linear-gradient(#315b79,#15384f);border-color:#102b3d}
.pp-calculator .calculator-grid .calc-clear{color:#fff;background:linear-gradient(#ef912f,#c66012);border-color:#9d4709}
.pp-calculator .calculator-grid .equals{color:#fff;background:linear-gradient(#315b79,#15384f);border-color:#102b3d}
.calculator-transfer{width:calc(100% - 14px);min-height:38px;margin:0 7px 7px;border:1px solid #777;border-radius:3px;background:linear-gradient(#fff,#dedede);font:700 14px Arial,Helvetica,sans-serif;cursor:pointer}
@media(max-width:820px){.test-header{grid-template-columns:1fr}.header-title{min-height:47px}.header-title>span:last-child{display:none}.header-tools{overflow-x:auto;border-top:1px solid #716d6b}.header-button.pp-tool{min-width:64px;flex:1}.pp-tool-label{font-size:.66rem}.pp-tool-icon{font-size:1.25rem}.question-status{padding-right:136px}}
