
main:has(.summary){max-width:960px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:16px 0}
.tile{display:block;padding:16px;border:1px solid #d8d8d8;border-radius:12px;color:inherit;text-decoration:none}
.tile .num{display:block;font-size:2.25rem;font-weight:600}
.tile .what{display:block;font-weight:600}
.tile .note,.muted{color:#666;font-size:.9rem}
.tile .note{display:block}
.empty{padding:12px 16px;border-left:4px solid #b4452a;background:#faf6f4}
.summary h2{font-size:1.15rem;margin:28px 0 4px}
.chart{display:block;width:100%;height:auto}
.chart .bar{fill:#b4452a}
.chart .run{fill:none;stroke:#1a1a1a;stroke-width:2}
.chart .axis{stroke:#bbb}
.chart .tick{fill:#666;font-size:11px}
@media (prefers-color-scheme:dark){.tile{border-color:#444}.tile .note,.muted{color:#aaa}.empty{background:#241c19}.chart .run{stroke:#eee}.chart .tick{fill:#aaa}.chart .axis{stroke:#555}}
body{margin:0;font:16px/1.5 system-ui,sans-serif;background:#fff;color:#1a1a1a}
@media (prefers-color-scheme:dark){body{background:#151515;color:#eee}input{background:#222;color:#eee}}
main{max-width:420px;margin:0 auto;padding:24px 16px}
h1{font-size:1.5rem}
main.wide{max-width:960px}
.scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%}
th,td{text-align:left;padding:8px;border-bottom:1px solid #ddd}
.search{display:flex;gap:8px;align-items:flex-end}.search label{flex:1;margin:0}
.nav{font-size:.9rem}
label{display:block;margin:12px 0}
input{display:block;width:100%;box-sizing:border-box;margin-top:4px;padding:10px;font-size:1rem}
button{padding:10px 16px;font-size:1rem}
.notice{padding:8px 12px;border-left:4px solid #b4452a}
.qr svg{width:220px;height:220px;background:#fff}
code{word-break:break-all}
