:root {
  color-scheme: dark;
  --bg: #050a05;
  --panel: #0b140b;
  --fg: #4dfc5e;
  --dim: #2f9e3a;
  --yellow: #f4e04d;
  --red: #ff5c5c;
  --cyan: #5ce1ff;
  --white: #e8f5e8;
  --pink: #ff8ad8;
}
* { box-sizing: border-box; }
html, body { margin: 0; background: var(--bg); color: var(--fg); }
body {
  font: 1rem/1.45 "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  padding-block: 1.5rem;
  padding-inline: 16px;
}
main { max-width: 46rem; margin: 0 auto; display: grid; gap: 1.25rem; }
.screen { background: var(--panel); border: 1px solid var(--dim); padding: 1.25rem; min-width: 0; }
h1 { color: var(--yellow); letter-spacing: .3em; margin: 0; font-size: 1.4rem; text-wrap: balance; }
h2 { color: var(--white); letter-spacing: .15em; margin: 0 0 .75rem; font-size: 1.05rem; }
pre.art { color: var(--yellow); margin: 0; overflow-x: auto; }
.tagline { color: var(--white); }
.status { display: flex; flex-wrap: wrap; gap: .5rem 2rem; }
.label { color: var(--white); }
.money { color: var(--fg); font-variant-numeric: tabular-nums; }
.weather-0 { color: var(--white); }
.weather-1 { color: var(--yellow); }
.weather-2 { color: var(--red); }
.error { color: var(--red); border-color: var(--red); }
.loss { color: var(--red); }
.profit { color: var(--fg); }
form.order { display: grid; gap: .6rem; }
form.order label { display: flex; flex-wrap: wrap; gap: .5rem; align-items: baseline; color: var(--white); }
input[type=number] {
  width: 7ch; background: var(--bg); color: var(--cyan); border: 0; border-bottom: 1px solid var(--cyan);
  font: inherit; padding: .1rem .25rem; text-align: right; font-variant-numeric: tabular-nums;
}
button {
  background: transparent; color: var(--cyan); border: 1px solid var(--cyan); font: inherit;
  padding: .35rem .9rem; cursor: pointer; letter-spacing: .05em;
}
button:hover, button:focus-visible { background: var(--cyan); color: var(--bg); outline: none; }
.actions { display: flex; flex-wrap: wrap; gap: .75rem; }
dl.results { display: grid; grid-template-columns: max-content max-content; gap: .2rem 1.5rem; margin: 0; }
dl.results dt { color: var(--white); }
dl.results dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.table-wrap { overflow-x: auto; }
table { border-collapse: collapse; font-variant-numeric: tabular-nums; min-width: 32rem; }
th, td { padding: .2rem .7rem; text-align: right; }
th { color: var(--white); font-weight: normal; border-bottom: 1px solid var(--dim); }
td:first-child, th:first-child { text-align: left; }
footer { color: var(--dim); font-size: .85rem; }
a { color: var(--cyan); }
