/* Base: plain text, black on white, no images, no animation unless body.fx is on. */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: #fff; color: #000; }
body { font: 14px/1.45 "Courier New", Courier, monospace; }
a { color: inherit; }
button.t, a.t {
  font: inherit; background: none; border: 0; padding: 0; margin: 0 .6em .2em 0;
  color: inherit; text-decoration: underline; cursor: pointer;
}
button.t[disabled] { text-decoration: none; opacity: .45; cursor: default; }
button.t.on { font-weight: bold; text-decoration: none; }
.wrap { max-width: 980px; margin: 0 auto; padding: 16px 18px 40px; }
h1, h2, h3 { font-size: 1em; font-weight: bold; margin: 1.2em 0 .3em; }
p { margin: .25em 0; }
.muted { opacity: .65; }
ul.plain { list-style: none; margin: 0; padding: 0; }
pre, .mono { font-family: "Courier New", Courier, monospace; white-space: pre-wrap; margin: 0; }
table.kv { border-collapse: collapse; }
table.kv td { padding: 0 1.2em 0 0; vertical-align: top; }

/* Boss key: notes view */
#boss { display: none; }
body.boss #app { display: none !important; }
body.boss #boss { display: block; }
#boss { font: 15px/1.6 Arial, Helvetica, sans-serif; max-width: 760px; margin: 0 auto; padding: 24px 22px; }
#boss h1 { font-size: 1.15em; margin: 0 0 .6em; }
#boss ul { margin: .3em 0 .8em 1.2em; padding: 0; }

/* Layout: terminal (default) */
body.layout-terminal .sec h2::before { content: "$ "; }
body.layout-terminal .sec { margin-bottom: .6em; }

/* Layout: plain document */
body.layout-document { font: 15px/1.6 Georgia, "Times New Roman", serif; }
body.layout-document .wrap { max-width: 720px; }
body.layout-document h1 { font-size: 1.4em; font-weight: normal; }
body.layout-document h2 { font-size: 1.1em; font-weight: normal; border-bottom: 1px solid #000; padding-bottom: .1em; }
body.layout-document .log pre, body.layout-document .formula { font-size: 13px; }

/* Layout: monospaced grid */
body.layout-grid .cols { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 0; }
body.layout-grid .sec { border: 1px solid #000; margin: -1px 0 0 -1px; padding: 4px 8px 8px; }
body.layout-grid .sec h2 { margin-top: 0; text-transform: uppercase; }
body.layout-grid .sec.wide { grid-column: 1 / -1; }

/* Optional mild color + text motion (off by default) */
body.fx { background: #fbfaf6; color: #1d2733; }
body.fx h1, body.fx h2 { color: #2b4f7a; }
body.fx button.t:not([disabled]) { color: #1f6b3a; }
body.fx .log li.new { animation: igfade .8s ease-out; }
body.fx .good { color: #1f6b3a; }
body.fx .bad { color: #9a3b1d; }
@keyframes igfade { from { opacity: 0; transform: translateX(-6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { body.fx .log li.new { animation: none; } }
