@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;900&family=UnifrakturMaguntia&family=IBM+Plex+Mono:wght@400;600&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --black: #0d0d0b;
  --white: #f5f2eb;
  --red: #b81c1c;
  --gray-light: #e8e4da;
  --gray-mid: #c2bdb0;
  --gray-dark: #6b6760;
  --ink: #1a1916;
  --newsprint: #f5f2eb;
}

html { font-size: 16px; }
body { background: var(--newsprint); color: var(--ink); font-family: 'Libre Baskerville', Georgia, serif; min-height: 100vh; }

/* -- MASTHEAD -- */
.masthead { border-bottom: 4px double var(--black); padding: 0.5rem 0 0; text-align: center; background: var(--newsprint); }
.masthead-top {
  display: flex; align-items: center; justify-content: center;
  gap: 0; padding: 0.5rem 2rem; overflow: visible;
}
.masthead-logo {
  width: 105px; height: auto; flex-shrink: 0;
  position: relative; z-index: 2; margin-right: -25px;
  filter: drop-shadow(1px 0px 3px rgba(0,0,0,0.18));
}
.masthead-titles { text-align: left; position: relative; z-index: 1; padding-left: 12px; }
.masthead-name { font-family: 'Playfair Display', Georgia, serif; font-size: clamp(2.4rem, 6vw, 4.2rem); font-weight: 900; line-height: 0.95; letter-spacing: -0.02em; color: var(--black); }
.masthead-name span { color: var(--red); }
.masthead-tagline { font-family: 'IBM Plex Mono', monospace; font-size: 0.72rem; letter-spacing: 0.12em; color: var(--gray-dark); text-transform: uppercase; margin-top: 0.35rem; }
.masthead-meta {
  display: flex; justify-content: space-between; align-items: center;
  padding: 0.3rem 2rem; border-top: 1px solid var(--black);
  font-family: 'IBM Plex Mono', monospace; font-size: 0.68rem;
  color: var(--gray-dark); letter-spacing: 0.06em;
}
.masthead-vol { font-family: 'IBM Plex Mono', monospace; font-size: 0.68rem; color: var(--gray-dark); letter-spacing: 0.08em; }
.masthead-nav { display: flex; gap: 1.5rem; }
.masthead-nav a { color: var(--gray-dark); text-decoration: none; text-transform: uppercase; font-size: 0.68rem; letter-spacing: 0.1em; }
.masthead-nav a:hover { color: var(--red); }

/* -- TICKER -- */
.ticker { background: var(--red); color: var(--white); padding: 0.35rem 0; overflow: hidden; font-family: 'IBM Plex Mono', monospace; font-size: 0.72rem; letter-spacing: 0.08em; white-space: nowrap; }
.ticker-inner { display: inline-block; animation: ticker 90s linear infinite; }
@keyframes ticker { from { transform: translateX(100vw); } to { transform: translateX(-100%); } }

/* -- LAYOUT -- */
.site-wrap { max-width: 1000px; margin: 0 auto; padding: 2rem 1.5rem; display: grid; grid-template-columns: 1fr 270px; gap: 3.5rem; align-items: start; }
.main-col { min-width: 0; }

/* -- POSTS -- */
.post { border-bottom: 1px solid var(--gray-mid); padding: 1.8rem 0; position: relative; }
.post:first-child { padding-top: 0; }
.post:last-child { border-bottom: none; }
.post-kicker { font-family: 'IBM Plex Mono', monospace; font-size: 0.68rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--red); margin-bottom: 0.4rem; }
.post-headline { font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 700; line-height: 1.15; color: var(--black); margin-bottom: 0.6rem; }
.post-body { font-size: 0.97rem; line-height: 1.75; color: var(--ink); }
.post-body p + p { margin-top: 0.8rem; }
.post-body a { color: var(--red); }
.post::after { content: ''; display: table; clear: both; }

.post-figure { margin: 0; display: block; }
.post-figure--right {
  float: right;
  width: 44%;
  max-width: 300px;
  margin: 0.2rem 0 1.2rem 1.6rem;
}
.post-figure--left {
  float: left;
  width: 44%;
  max-width: 300px;
  margin: 0.2rem 1.6rem 1.2rem 0;
}
.post-figure--full {
  float: none;
  width: 100%;
  max-width: 100%;
  margin: 1rem 0;
}
.post-image {
  width: 100%;
  display: block;
  border: 1px solid var(--gray-mid);
  object-fit: cover;
}
.post-figure--right .post-image,
.post-figure--left  .post-image { max-height: 260px; }
.post-figure--full  .post-image { max-height: 420px; }

.post-image-caption {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.64rem;
  color: var(--gray-dark);
  margin-top: 0.35rem;
  line-height: 1.45;
}
.float-toggle {
  display: flex;
  gap: 0.25rem;
  margin-top: 0.4rem;
}
.float-toggle button {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.58rem;
  background: none;
  border: 1px solid var(--gray-mid);
  color: var(--gray-dark);
  padding: 0.12rem 0.4rem;
  cursor: pointer;
  letter-spacing: 0.04em;
  border-radius: 2px;
}
.float-toggle button:hover { border-color: var(--black); color: var(--black); }
.float-toggle button.active { background: var(--black); color: var(--white); border-color: var(--black); }

@media (max-width: 600px) {
  .post-figure--right,
  .post-figure--left {
    float: none; width: 100%; max-width: 100%; margin: 1rem 0;
  }
}
.post-meta { font-family: 'IBM Plex Mono', monospace; font-size: 0.66rem; color: var(--gray-dark); margin-top: 0.8rem; letter-spacing: 0.06em; display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.post-readtime { color: var(--gray-mid); }
.post-readtime::before { content: '·'; margin-right: 0.5rem; }
.print-btn { background: none; border: none; font-family: 'IBM Plex Mono', monospace; font-size: 0.66rem; color: var(--gray-mid); cursor: pointer; padding: 0; letter-spacing: 0.06em; }
.print-btn::before { content: '·'; margin-right: 0.5rem; }
.print-btn:hover { color: var(--red); }

/* -- SIDEBAR -- */
.sidebar { border-left: 1px solid var(--gray-mid); padding-left: 2rem; }
.sidebar-widget { margin-bottom: 2rem; padding-bottom: 2rem; border-bottom: 1px solid var(--gray-light); }
.sidebar-widget:last-child { border-bottom: none; margin-bottom: 0; }
.widget-head { font-family: 'IBM Plex Mono', monospace; font-size: 0.62rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--black); border-bottom: 2px solid var(--black); padding-bottom: 0.3rem; margin-bottom: 0.85rem; display: flex; justify-content: space-between; align-items: baseline; }
.widget-edit-btn { background: none; border: none; font-family: 'IBM Plex Mono', monospace; font-size: 0.58rem; color: var(--red); cursor: pointer; padding: 0; letter-spacing: 0.1em; text-transform: uppercase; }
.widget-more { font-size: 0.58rem; color: var(--red); text-decoration: none; letter-spacing: 0.1em; }
.widget-more:hover { text-decoration: underline; }

/* Weather */
.wx-temp { font-family: 'Playfair Display', serif; font-size: 2.4rem; font-weight: 700; line-height: 1; color: var(--black); }
.wx-condition { font-family: 'IBM Plex Mono', monospace; font-size: 0.68rem; color: var(--gray-dark); margin-top: 0.35rem; line-height: 1.5; }
.wx-detail { font-family: 'IBM Plex Mono', monospace; font-size: 0.62rem; color: var(--gray-mid); margin-top: 0.25rem; }
.wx-loading { font-family: 'IBM Plex Mono', monospace; font-size: 0.68rem; color: var(--gray-mid); font-style: italic; }

/* Previously */
.prev-item { margin-bottom: 0.75rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--gray-light); }
.prev-item:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.prev-kicker { font-family: 'IBM Plex Mono', monospace; font-size: 0.6rem; letter-spacing: 0.12em; color: var(--red); text-transform: uppercase; }
.prev-headline { font-family: 'Libre Baskerville', serif; font-size: 0.82rem; color: var(--black); text-decoration: none; line-height: 1.35; display: block; margin-top: 0.15rem; }
.prev-headline:hover { color: var(--red); }

/* Letters */
.letter-item { margin-bottom: 0.8rem; padding-bottom: 0.8rem; border-bottom: 1px solid var(--gray-light); }
.letter-item:last-child { border-bottom: none; margin-bottom: 0; }
.letter-text { font-family: 'Libre Baskerville', serif; font-size: 0.78rem; line-height: 1.6; color: var(--ink); font-style: italic; }
.letter-sig { font-family: 'IBM Plex Mono', monospace; font-size: 0.62rem; color: var(--gray-dark); margin-top: 0.25rem; }
.letter-empty { font-family: 'IBM Plex Mono', monospace; font-size: 0.68rem; color: var(--gray-mid); font-style: italic; }

/* Corrections */
.correction-item { font-family: 'Libre Baskerville', serif; font-size: 0.78rem; line-height: 1.6; color: var(--ink); font-style: italic; margin-bottom: 0.6rem; }
.correction-item:last-child { margin-bottom: 0; }

/* Classifieds (sidebar) */
.classified-sidebar-item { font-family: 'IBM Plex Mono', monospace; font-size: 0.66rem; line-height: 1.55; color: var(--ink); margin-bottom: 0.65rem; padding-bottom: 0.65rem; border-bottom: 1px solid var(--gray-light); }
.classified-sidebar-item:last-child { border-bottom: none; margin-bottom: 0; }

/* -- FOOTER -- */
footer { border-top: 4px double var(--black); padding: 1.5rem 2rem; text-align: center; font-family: 'IBM Plex Mono', monospace; font-size: 0.66rem; color: var(--gray-dark); letter-spacing: 0.06em; }
footer a { color: var(--gray-dark); }

/* -- GALLERY -- */
.gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; padding: 2rem 1.5rem; max-width: 1100px; margin: 0 auto; }
.gallery-item { position: relative; overflow: hidden; border: 1px solid var(--gray-mid); }
.gallery-item img { width: 100%; display: block; aspect-ratio: 4/3; object-fit: cover; }
.gallery-caption { padding: 0.5rem 0.6rem; font-family: 'IBM Plex Mono', monospace; font-size: 0.66rem; color: var(--gray-dark); background: var(--newsprint); }

/* -- EDITOR UI -- */
.edit-bar { background: var(--black); color: var(--white); padding: 0.5rem 1.5rem; display: flex; gap: 1rem; align-items: center; font-family: 'IBM Plex Mono', monospace; font-size: 0.72rem; }
.edit-bar a, .edit-bar button { color: var(--white); background: none; border: 1px solid #555; padding: 0.25rem 0.7rem; cursor: pointer; font-family: inherit; font-size: inherit; text-decoration: none; border-radius: 2px; }
.edit-bar button:hover, .edit-bar a:hover { border-color: var(--white); }
.edit-bar .logout { margin-left: auto; color: #999; border-color: #444; }
[contenteditable="true"] { outline: 2px dashed var(--red); outline-offset: 3px; cursor: text; border-radius: 2px; }
[contenteditable="true"]:focus { outline: 2px solid var(--red); background: rgba(184,28,28,0.04); }
.save-btn { display: none; position: fixed; bottom: 1.5rem; right: 1.5rem; background: var(--red); color: white; border: none; padding: 0.75rem 1.5rem; font-family: 'IBM Plex Mono', monospace; font-size: 0.8rem; cursor: pointer; letter-spacing: 0.08em; z-index: 999; border-radius: 2px; }
.save-btn.visible { display: block; }
.new-post-form { background: var(--gray-light); border: 1px solid var(--gray-mid); padding: 1.5rem; margin-bottom: 2rem; display: none; }
.new-post-form.open { display: block; }
.new-post-form input, .new-post-form textarea { width: 100%; font-family: 'Libre Baskerville', serif; font-size: 0.95rem; padding: 0.5rem; border: 1px solid var(--gray-mid); background: var(--white); margin-bottom: 0.75rem; color: var(--ink); }
.new-post-form textarea { min-height: 140px; resize: vertical; }
.new-post-form button { background: var(--black); color: var(--white); border: none; padding: 0.5rem 1.2rem; font-family: 'IBM Plex Mono', monospace; font-size: 0.78rem; cursor: pointer; letter-spacing: 0.06em; }

/* Corrections editor (logged in) */
.corrections-editor { margin-top: 0.5rem; }
.correction-edit-row { display: flex; gap: 0.4rem; margin-bottom: 0.4rem; align-items: flex-start; }
.correction-edit-row textarea { flex: 1; font-family: 'Libre Baskerville', serif; font-size: 0.75rem; padding: 0.3rem; border: 1px solid var(--gray-mid); background: var(--white); color: var(--ink); resize: vertical; min-height: 48px; font-style: italic; }
.correction-edit-row button { background: none; border: none; color: var(--red); cursor: pointer; font-size: 0.8rem; padding: 0 0.25rem; flex-shrink: 0; margin-top: 0.25rem; }
.widget-add-btn { font-family: 'IBM Plex Mono', monospace; font-size: 0.6rem; color: var(--gray-dark); background: none; border: 1px solid var(--gray-mid); padding: 0.2rem 0.5rem; cursor: pointer; letter-spacing: 0.06em; margin-top: 0.35rem; }
.widget-add-btn:hover { border-color: var(--black); }
.widget-save-btn { font-family: 'IBM Plex Mono', monospace; font-size: 0.6rem; color: var(--white); background: var(--red); border: none; padding: 0.2rem 0.6rem; cursor: pointer; letter-spacing: 0.06em; margin-top: 0.35rem; margin-left: 0.4rem; }

/* Letters editor (logged in) */
.letter-editor-item { background: var(--gray-light); padding: 0.5rem; margin-bottom: 0.5rem; font-family: 'IBM Plex Mono', monospace; font-size: 0.65rem; border-left: 2px solid var(--gray-mid); }
.letter-editor-item p { margin-bottom: 0.3rem; line-height: 1.4; }
.letter-editor-item .letter-actions { display: flex; gap: 0.5rem; margin-top: 0.4rem; }
.letter-editor-item button { background: none; border: 1px solid var(--gray-mid); padding: 0.15rem 0.45rem; cursor: pointer; font-family: inherit; font-size: inherit; }
.letter-editor-item .pub-btn { color: var(--black); border-color: var(--black); }
.letter-editor-item .del-btn { color: var(--red); border-color: var(--red); }

/* -- LOGIN PAGE -- */
.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; }
.login-box { text-align: center; padding: 3rem; border: 1px solid var(--gray-mid); background: var(--white); max-width: 360px; width: 100%; }
.login-box img { width: 140px; margin-bottom: 1rem; }
.login-box h2 { font-family: 'Playfair Display', serif; font-size: 1.4rem; margin-bottom: 1.5rem; color: var(--black); }
.login-box input { width: 100%; padding: 0.6rem; border: 1px solid var(--gray-mid); font-family: 'IBM Plex Mono', monospace; font-size: 0.9rem; margin-bottom: 1rem; background: var(--newsprint); color: var(--ink); }
.login-box button { width: 100%; background: var(--red); color: white; border: none; padding: 0.65rem; font-family: 'IBM Plex Mono', monospace; font-size: 0.85rem; cursor: pointer; letter-spacing: 0.08em; }
.login-error { color: var(--red); font-size: 0.8rem; margin-top: 0.5rem; font-family: 'IBM Plex Mono', monospace; }

/* -- ABOUT PAGE -- */
.about-wrap { max-width: 700px; margin: 0 auto; padding: 3rem 1.5rem; }
.about-wrap h2 { font-family: 'Playfair Display', serif; font-size: 1.8rem; font-weight: 700; margin-bottom: 1.5rem; border-bottom: 1px solid var(--gray-mid); padding-bottom: 0.75rem; }
.about-wrap p { font-size: 0.97rem; line-height: 1.8; margin-bottom: 1.2rem; color: var(--ink); }
.about-wrap .about-kicker { font-family: 'IBM Plex Mono', monospace; font-size: 0.68rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--red); margin-bottom: 0.5rem; }
.about-portrait { float: right; margin: 0 0 1.5rem 2rem; width: 180px; }
.about-portrait img { width: 100%; border: 1px solid var(--gray-mid); }
.about-portrait figcaption { font-family: 'IBM Plex Mono', monospace; font-size: 0.62rem; color: var(--gray-dark); margin-top: 0.3rem; text-align: center; }

/* -- TIPS PAGE -- */
.tips-wrap { max-width: 800px; margin: 0 auto; padding: 3rem 1.5rem; }
.tips-section { margin-bottom: 3rem; padding-bottom: 3rem; border-bottom: 1px solid var(--gray-mid); }
.tips-section:last-child { border-bottom: none; }
.tips-section h2 { font-family: 'Playfair Display', serif; font-size: 1.5rem; font-weight: 700; margin-bottom: 0.5rem; }
.tips-section .section-kicker { font-family: 'IBM Plex Mono', monospace; font-size: 0.65rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--red); margin-bottom: 1rem; }
.tips-section p { font-size: 0.9rem; line-height: 1.7; color: var(--gray-dark); margin-bottom: 1.25rem; }
.tips-form textarea, .tips-form input[type="text"] { width: 100%; font-family: 'Libre Baskerville', serif; font-size: 0.95rem; padding: 0.6rem; border: 1px solid var(--gray-mid); background: var(--white); color: var(--ink); margin-bottom: 0.75rem; }
.tips-form textarea { min-height: 120px; resize: vertical; }
.tips-form button { background: var(--black); color: var(--white); border: none; padding: 0.6rem 1.5rem; font-family: 'IBM Plex Mono', monospace; font-size: 0.78rem; cursor: pointer; letter-spacing: 0.08em; }
.tips-form .form-note { font-family: 'IBM Plex Mono', monospace; font-size: 0.63rem; color: var(--gray-mid); margin-top: -0.5rem; margin-bottom: 0.75rem; }
.form-success { font-family: 'IBM Plex Mono', monospace; font-size: 0.78rem; color: var(--black); background: var(--gray-light); padding: 0.75rem; border-left: 3px solid var(--black); display: none; }

/* Tips inbox (logged in) */
.tips-inbox { background: var(--gray-light); padding: 1.5rem; border-left: 3px solid var(--red); margin-top: 2rem; }
.tips-inbox h3 { font-family: 'IBM Plex Mono', monospace; font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 1rem; color: var(--red); }
.tip-item { background: var(--white); padding: 0.75rem; margin-bottom: 0.75rem; border: 1px solid var(--gray-mid); }
.tip-item p { font-family: 'Libre Baskerville', serif; font-size: 0.85rem; line-height: 1.6; margin-bottom: 0.4rem; }
.tip-item .tip-meta { font-family: 'IBM Plex Mono', monospace; font-size: 0.62rem; color: var(--gray-dark); }
.tip-item button { background: none; border: none; font-family: 'IBM Plex Mono', monospace; font-size: 0.62rem; color: var(--red); cursor: pointer; margin-top: 0.4rem; padding: 0; }

/* -- CLASSIFIEDS PAGE -- */
.classifieds-wrap { max-width: 900px; margin: 0 auto; padding: 2rem 1.5rem; }
.classifieds-head { border-bottom: 2px solid var(--black); padding-bottom: 0.75rem; margin-bottom: 2rem; }
.classifieds-head h2 { font-family: 'Playfair Display', serif; font-size: 1.8rem; font-weight: 700; }
.classifieds-head p { font-family: 'IBM Plex Mono', monospace; font-size: 0.68rem; color: var(--gray-dark); margin-top: 0.35rem; letter-spacing: 0.06em; }
.classifieds-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; }
.classified-card { border: 1px solid var(--gray-mid); padding: 0.85rem; font-family: 'IBM Plex Mono', monospace; font-size: 0.72rem; line-height: 1.6; color: var(--ink); }
.classified-card[contenteditable="true"] { outline: 2px dashed var(--red); outline-offset: 2px; }
.classified-card-del { width: 100%; background: none; border: none; border-top: 1px solid var(--gray-light); padding: 0.3rem; font-family: 'IBM Plex Mono', monospace; font-size: 0.6rem; color: var(--red); cursor: pointer; margin-top: 0.5rem; letter-spacing: 0.06em; }
.add-classified-btn { background: var(--black); color: var(--white); border: none; padding: 0.5rem 1.2rem; font-family: 'IBM Plex Mono', monospace; font-size: 0.75rem; cursor: pointer; letter-spacing: 0.08em; margin-top: 1.5rem; }

/* Formatting toolbar */
#format-toolbar {
  position: absolute;
  background: #1a1916;
  border: 1px solid #3d3930;
  display: none;
  gap: 1px;
  padding: 3px;
  z-index: 1001;
  border-radius: 3px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
}
#format-toolbar button {
  background: none;
  border: none;
  color: #e0dbd0;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.8rem;
  cursor: pointer;
  padding: 0.15rem 0.5rem;
  border-radius: 2px;
  line-height: 1.4;
}
#format-toolbar button:hover { background: #333; }

/* -- PRINT -- */
@media print {
  .edit-bar, .ticker, .sidebar, .save-btn, .new-post-form,
  .masthead-nav, .print-btn, .post-readtime { display: none !important; }
  .site-wrap { display: block !important; padding: 0 !important; }
  .masthead-logo { width: 80px !important; }
  body { background: white !important; color: black !important; font-size: 12pt; }
  .masthead { border-bottom: 2pt solid black !important; }
  .post { break-inside: avoid; page-break-inside: avoid; }
  a { color: black !important; text-decoration: none !important; }
  .post-headline { font-size: 18pt !important; }
}

/* -- RESPONSIVE -- */
@media (max-width: 768px) {
  .site-wrap { grid-template-columns: 1fr; gap: 0; }
  .sidebar { border-left: none; border-top: 4px double var(--black); padding-left: 0; padding-top: 2rem; margin-top: 2rem; }
}
@media (max-width: 600px) {
  .masthead-top { flex-direction: column; align-items: center; text-align: center; gap: 0; padding-top: 0.5rem; }
  .masthead-logo { width: 80px; margin-right: 0; }
  .masthead-titles { text-align: center; padding-left: 0; }
  .masthead-meta { flex-direction: column; gap: 0.4rem; text-align: center; }
  .masthead-nav { flex-wrap: wrap; justify-content: center; gap: 1rem; }
}

/* -- NATIVE DARK MODE -------------------------------------------------
   Declaring color-scheme in the meta tag tells Dark Reader this site
   handles its own dark mode — it will stand down and let this run.
   -------------------------------------------------------------------- */
@media (prefers-color-scheme: dark) {
  :root {
    --black:      #e0dbd0;
    --red:        #d04848;
    --gray-light: #242118;
    --gray-mid:   #3d3930;
    --gray-dark:  #8a857d;
    --ink:        #ccc8bc;
    --newsprint:  #18160f;
  }

  body { background: var(--newsprint); color: var(--ink); }

  /* Masthead */
  .masthead { background: var(--newsprint); }

  /* Edit bar — keep very dark regardless */
  .edit-bar { background: #0a0a08 !important; }
  .edit-bar a, .edit-bar button { color: var(--ink); }

  /* Save button stays red */
  .save-btn { background: var(--red); }

  /* Buttons that used --black as bg — flip to dark surface */
  .new-post-form button,
  .add-classified-btn { background: #2e2b22; color: var(--ink); border: 1px solid var(--gray-mid); }
  .add-classified-btn[style*="background:var(--red)"] { background: var(--red) !important; }
  .widget-save-btn { background: var(--red); }

  /* Form fields */
  input, textarea,
  .new-post-form input,
  .new-post-form textarea,
  .tips-form input[type="text"],
  .tips-form textarea,
  .correction-edit-row textarea,
  .login-box input {
    background: #0f0e0a;
    color: var(--ink);
    border-color: var(--gray-mid);
  }
  input::placeholder, textarea::placeholder { color: var(--gray-dark); }

  /* Login box */
  .login-box { background: #242118; border-color: var(--gray-mid); }
  .login-box button { background: var(--red); }

  /* Posts & sidebar */
  .post-image { border-color: var(--gray-mid); }
  .post-figure { border-color: var(--gray-mid); }
  .classified-card { background: var(--newsprint); border-color: var(--gray-mid); }

  /* New post form */
  .new-post-form { background: var(--gray-light); border-color: var(--gray-mid); }

  /* Gallery */
  .gallery-item { border-color: var(--gray-mid); }
  .gallery-caption { background: var(--newsprint); }

  /* Letter editor items */
  .letter-editor-item { background: var(--gray-light); }
  .letter-editor-item .pub-btn { color: var(--ink); border-color: var(--gray-mid); }

  /* Tips inbox */
  .tips-inbox { background: var(--gray-light); }
  .tip-item { background: var(--newsprint); border-color: var(--gray-mid); }
  .form-success { background: var(--gray-light); color: var(--ink); }

  /* Ticker — deeper red so white text pops */
  .ticker { background: #6e0e0e; }

  /* Sidebar text that goes too dark */
  .prev-headline { color: #e0dbd0; }
  .letter-empty,
  .letter-text  { color: #b8b3a8; }
  .correction-item { color: #b8b3a8; }
  .classified-sidebar-item { color: #b8b3a8; }
  .letter-sig,
  .wx-detail { color: var(--gray-dark); }
  .prev-kicker { color: var(--red); }
}