:root {
  --bg: #0f1419; --card: #1a1f29; --line: #2a3140;
  --fg: #e6e9ef; --mut: #8b94a5; --accent: #4f9eff;
  --open: #3fb950; --upcoming: #d29922; --closed: #8b949e;
  --listed: #6e7681; --blocked: #d29922; --debited: #3fb950;
}
* { box-sizing: border-box; }
body {
  margin: 0; background: var(--bg); color: var(--fg);
  font: 15px/1.5 -apple-system, Segoe UI, Roboto, sans-serif;
}
header, main, footer { max-width: 960px; margin: 0 auto; padding: 0 18px; }
header { padding-top: 20px; }
h1 { margin: 0 0 6px; font-size: 22px; }
nav { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
nav a { color: var(--accent); text-decoration: none; }
nav a:hover { text-decoration: underline; }
.inline { display: inline; margin: 0; }
.meta, .explain, .empty { color: var(--mut); font-size: 13px; }
.explain { background: var(--card); padding: 10px 14px; border-radius: 8px;
  border: 1px solid var(--line); }
button {
  background: var(--accent); color: #fff; border: 0; border-radius: 6px;
  padding: 6px 12px; cursor: pointer; font-size: 13px;
}
button.ghost { background: transparent; color: var(--accent);
  border: 1px solid var(--line); }
.ipo {
  background: var(--card); border: 1px solid var(--line);
  border-radius: 10px; padding: 14px 16px; margin: 14px 0;
  border-left: 4px solid var(--line);
}
.ipo.status-open { border-left-color: var(--open); }
.ipo.status-upcoming { border-left-color: var(--upcoming); }
.ipo.status-closed { border-left-color: var(--closed); }
.ipo.status-listed { border-left-color: var(--listed); }
.ipo-head { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.ipo-head h2 { margin: 0; font-size: 17px; }
.badge {
  font-size: 11px; padding: 2px 8px; border-radius: 10px;
  text-transform: uppercase; letter-spacing: .04em;
  background: var(--line); color: var(--fg);
}
.st-open { background: var(--open); color: #04210c; }
.st-upcoming { background: var(--upcoming); color: #2a1c00; }
.st-closed { background: var(--closed); color: #14181f; }
.st-listed { background: var(--listed); color: #14181f; }
table.kv { width: 100%; border-collapse: collapse; margin: 10px 0; }
table.kv th { text-align: left; color: var(--mut); font-weight: 500;
  width: 16%; padding: 3px 6px; font-size: 13px; }
table.kv td { padding: 3px 6px; font-size: 13px; }
.funds-line { font-size: 13px; background: #11161f; padding: 8px 12px;
  border-radius: 6px; }
.note-form { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.note-form label { font-size: 12px; color: var(--mut); }
textarea {
  width: 100%; background: #11161f; color: var(--fg);
  border: 1px solid var(--line); border-radius: 6px; padding: 8px;
  font: inherit; resize: vertical;
}
.note-form button { align-self: flex-start; }
table.timeline { width: 100%; border-collapse: collapse; margin-top: 12px; }
table.timeline th, table.timeline td {
  text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--line);
  font-size: 13px;
}
table.timeline th { color: var(--mut); }
.ev-blocked { background: var(--blocked); color: #2a1c00; }
.ev-debited { background: var(--debited); color: #04210c; }
footer { color: var(--mut); font-size: 12px; padding: 24px 18px; }
