/*
 * bsnr.css — custom stylesheet for MATLAB publish output
 * Overrides the inline styles generated by publish() to match
 * the bsnr documentation site aesthetic.
 *
 * Usage:
 *   publish('script.m', 'format', 'html', ...
 *           'outputDir', '..\docs', ...
 *           'stylesheet', '..\docs\bsnr.css')
 */

@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&family=IBM+Plex+Sans:ital,wght@0,300;0,400;0,600;1,300&display=swap');

:root {
  --bg:      #f4f2ed;
  --surface: #ffffff;
  --border:  #d8d4cc;
  --text:    #1a1814;
  --muted:   #6b6560;
  --accent:  #1a5c8a;
  --accent2: #2e7d4f;
  --mono:    'IBM Plex Mono', 'Courier New', monospace;
  --sans:    'IBM Plex Sans', Arial, sans-serif;
}

html body {
  background: var(--bg) !important;
  font-family: var(--sans) !important;
  font-weight: 300 !important;
  font-size: 14px !important;
  color: var(--text) !important;
  line-height: 1.7 !important;
}

/* Constrain and centre content */
.content {
  max-width: 900px !important;
  margin: 0 auto !important;
  padding: 2.5rem 3rem !important;
  font-size: 1rem !important;
  line-height: 1.75 !important;
  background: var(--bg) !important;
}

/* Section title (%%  headings) */
h1 {
  font-family: var(--mono) !important;
  font-size: 1.5rem !important;
  font-weight: 600 !important;
  color: var(--text) !important;
  border-bottom: 2px solid var(--text) !important;
  padding-bottom: 0.6rem !important;
  margin: 2.5rem 0 1.5rem !important;
  letter-spacing: -0.02em !important;
}

/* Sub-section headings */
h2 {
  font-family: var(--mono) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.13em !important;
  text-transform: uppercase !important;
  color: var(--muted) !important;
  border-bottom: 1px solid var(--border) !important;
  padding-bottom: 0.4rem !important;
  margin: 2rem 0 1rem !important;
}

h3 {
  font-family: var(--sans) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--text) !important;
  margin: 1.5rem 0 0.5rem !important;
}

p {
  margin-bottom: 1rem !important;
  font-size: 0.95rem !important;
}

a { color: var(--accent) !important; }
a:hover { color: var(--accent) !important; text-decoration: underline !important; }
a:visited { color: var(--accent) !important; }

/* Code input blocks */
pre.codeinput {
  font-family: var(--mono) !important;
  font-size: 0.82rem !important;
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-left: 4px solid var(--accent) !important;
  padding: 1rem 1.25rem !important;
  margin: 1rem 0 1.5rem !important;
  line-height: 1.8 !important;
  border-radius: 0 !important;
}

/* Code output blocks */
pre.codeoutput {
  font-family: var(--mono) !important;
  font-size: 0.82rem !important;
  background: var(--bg) !important;
  border: 1px solid var(--border) !important;
  padding: 0.75rem 1.25rem !important;
  margin: 0 0 1.5rem !important;
  color: var(--muted) !important;
  line-height: 1.8 !important;
}

pre.error { color: #c0392b !important; }

/* Inline code */
tt, code {
  font-family: var(--mono) !important;
  font-size: 0.88em !important;
  color: var(--accent) !important;
  background: transparent !important;
}

/* Syntax highlighting */
span.keyword  { color: var(--accent) !important; font-weight: 600 !important; }
span.comment  { color: var(--muted) !important; font-style: italic !important; }
span.string   { color: var(--accent2) !important; }

/* Images */
img {
  max-width: 100% !important;
  border: 1px solid var(--border) !important;
  margin: 1rem 0 1.5rem !important;
}

/* Lists */
ul {
  margin: 0 0 1rem 1.5rem !important;
  list-style: square !important;
}

ul li { margin-bottom: 0.3rem !important; }

/* Tables */
table th {
  background: var(--surface) !important;
  font-family: var(--mono) !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.05em !important;
  border: 1px solid var(--border) !important;
  padding: 0.5rem 0.75rem !important;
}

table td {
  border: 1px solid var(--border) !important;
  padding: 0.5rem 0.75rem !important;
  font-size: 0.9rem !important;
}

/* Footer */
.footer {
  font-family: var(--mono) !important;
  font-size: 0.72rem !important;
  color: var(--muted) !important;
  border-top: 1px solid var(--border) !important;
  margin-top: 3rem !important;
  padding-top: 1rem !important;
}

.footer a { color: var(--muted) !important; }

