/* USYD Brand Colors */
:root {
  /* Primary palette */
  --usyd-ochre: #e64626;
  --usyd-charcoal: #424242;
  --usyd-sandstone: #fcede2;

  /* Neutrals */
  --usyd-white: #ffffff;
  --usyd-black: #000000;
  --usyd-lightgrey: #f1f1f1;

  /* Accent colors */
  --usyd-heritagerose: #daa8a2;
  --usyd-jacaranda: #8f9ec9;
  --usyd-navy: #1a355e;
  --usyd-eucalypt: #71a499;

  /* Semantic aliases */
  --color-primary: var(--usyd-ochre);
  --color-accent-light: var(--usyd-sandstone);
  --color-accent-dark: var(--usyd-charcoal);

  /* Spacing - following 8pt grid */
  --spacing-xs: 0.5rem;
  /* 8px */
  --spacing-sm: 1rem;
  /* 16px */
  --spacing-md: 1.6em;
  /* ~26px - task list padding */
  --spacing-lg: 2rem;
  /* 32px */
  --spacing-xl: 3rem;
  /* 48px */
}

/*
Fix Quarto/Pandoc task list checkbox wrapping.

Pandoc renders task list items as:
	<ul class="task-list"><li><input type="checkbox"> Text...</li></ul>

Default checkbox negative margins can cause wrapped lines to start
under the checkbox. This positions the checkbox absolutely and adds
left padding so all lines align with the first line's text.
*/

ul.task-list li {
  position: relative;
  padding-left: var(--spacing-md);
}

ul.task-list li input[type="checkbox"] {
  position: absolute;
  left: 0;
  top: 0.2em;
  margin: 0;
}

/* Question blocks - minimalist left border accent */
.question {
  border-left: 4px solid var(--usyd-ochre);
  padding-left: var(--spacing-sm);
  margin: var(--spacing-lg) 0;
}

/* Answer blocks - ochre accent for solutions */
.ans {
  background-color: color-mix(in srgb, var(--usyd-ochre) 6%, transparent);
  padding: var(--spacing-sm);
  margin: var(--spacing-lg) 0;
  font-size: 0.9em;
}

/* TEMPORARILY COMMENTED OUT — testing default Quarto code block styles */
/*
div.sourceCode,
.cell-output-stdout {
  position: relative;
  border: 1px solid color-mix(in srgb, var(--usyd-charcoal) 20%, transparent);
  border-radius: 0;
}

div.sourceCode::before,
.cell-output-stdout::before {
  display: block;
  font-size: 0.7em;
  font-weight: 500;
  padding: 0.4em 0.8em;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--usyd-charcoal);
}

div.sourceCode {
  background-color: var(--usyd-lightgrey) !important;
  margin-top: 1.5em;
}

div.sourceCode::before {
  content: "Code";
  background-color: var(--usyd-lightgrey);
}

div.sourceCode pre {
  padding: var(--spacing-sm);
  padding-top: 0.5em;
  padding-bottom: 1em;
  font-size: 0.9em;
}

div.sourceCode pre code {
  background-color: transparent !important;
  color: var(--usyd-black);
}

pre:not(.sourceCode) {
  background-color: var(--usyd-lightgrey);
  border: none;
  border-radius: 0;
  padding: var(--spacing-sm);
}

code:not(.sourceCode) {
  background-color: var(--usyd-lightgrey);
  border-radius: 0;
  padding: 0.1em 0.3em;
}

.cell-output-stdout {
  background-color: var(--usyd-white);
  margin-top: 0;
  margin-bottom: 1em;
}

.cell-output-stdout::before {
  content: "Output";
  background-color: var(--usyd-white);
}

.cell-output-stdout pre {
  padding: var(--spacing-sm);
  padding-top: 0.5em;
  margin: 0;
  background-color: var(--usyd-white);
  border: none;
  border-radius: 0;
  font-size: 0.85em;
}

.cell-output-stdout pre code {
  background-color: transparent;
  color: var(--usyd-black);
}
*/

/* Code output border */
.cell-output-stdout pre {
  border: 1px solid color-mix(in srgb, var(--usyd-charcoal) 10%, transparent);
  border-radius: 0;
}

/* Fix wrapped code alignment when line numbers are enabled.
   Quarto's default `left: -4em` on numbered spans causes continuation
   lines to start under line numbers instead of aligning with code text.
   Mirror the print-only fix (text-indent + padding-left) for screen. */
pre.numberSource code > span {
  display: inline-block;
  min-width: 100%;
  text-indent: -5em;
  padding-left: 5em;
}

code,
pre,
pre code,
kbd {
  font-variant-ligatures: none;
}