/* fn2 thin read-only UI. Plain CSS, no script. */
:root {
  --fg: #1d2330; --muted: #5b6474; --line: #dfe3ea; --bg: #ffffff; --band: #f5f7fa;
  --link: #1f5fbf; --neg: #b3261e; --warn: #8a5a00;
}
@media (prefers-color-scheme: dark) {
  :root { --fg: #e6e9ef; --muted: #9aa3b2; --line: #333a46; --bg: #15181e; --band: #1d2129;
          --link: #8db8ff; --neg: #ff8a80; --warn: #f0c060; }
}
* { box-sizing: border-box; }
body { margin: 0; font: 15px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color: var(--fg);
       background: var(--bg); }
a { color: var(--link); text-decoration: none; }
a:hover { text-decoration: underline; }
header { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; padding: .6rem 1rem;
         border-bottom: 1px solid var(--line); background: var(--band); }
header .brand { font-weight: 600; margin-right: .5rem; }
header nav { display: flex; flex-wrap: wrap; gap: .25rem 1rem; flex: 1; }
header form { margin: 0; }
main { max-width: 72rem; margin: 0 auto; padding: 1rem; }
h1 { font-size: 1.35rem; margin: .2rem 0 .8rem; }
h2 { font-size: 1.1rem; margin: 1.6rem 0 .5rem; }
h3 { font-size: 1rem; margin: 1.2rem 0 .4rem; }
p.muted, .muted { color: var(--muted); }
.empty { color: var(--muted); font-style: italic; }
.error { color: var(--neg); }
.warn { color: var(--warn); }
.scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
table { border-collapse: collapse; width: 100%; margin: .3rem 0 1rem; }
th, td { padding: .35rem .5rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { font-weight: 600; color: var(--muted); font-size: .85rem; white-space: nowrap; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
td.neg { color: var(--neg); }
tfoot td { font-weight: 600; border-top: 2px solid var(--line); }
dl.kv { display: grid; grid-template-columns: max-content 1fr; gap: .2rem 1rem; margin: 0 0 1rem; }
dl.kv dt { color: var(--muted); }
dl.kv dd { margin: 0; overflow-wrap: anywhere; }
form.period { display: flex; flex-wrap: wrap; gap: .5rem; align-items: end; margin: 0 0 1rem; }
form.period label { display: flex; flex-direction: column; font-size: .85rem; color: var(--muted); }
input, select, button { font: inherit; padding: .4rem .5rem; border: 1px solid var(--line); border-radius: 4px;
                        background: var(--bg); color: var(--fg); }
button { cursor: pointer; background: var(--band); }
button.link { border: 0; background: none; color: var(--link); padding: 0; }
.login { max-width: 22rem; margin: 3rem auto; }
.login label { display: block; margin: .7rem 0 .2rem; color: var(--muted); font-size: .9rem; }
.login input { width: 100%; }
.login button { margin-top: 1rem; width: 100%; }
code, .id { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .85em; overflow-wrap: anywhere; }
@media (max-width: 40rem) {
  main { padding: .7rem; }
  th, td { padding: .3rem .35rem; }
  .wide { display: none; }
}
