
:root { --ink:#1d1d1f; --muted:#5f6368; --line:#e3e3e3; --accent:#0b6e4f; --warn:#8a5a00; }
* { box-sizing: border-box; }
body { margin:0; font:16px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color:var(--ink); background:#fff; }
main { max-width: 760px; margin: 0 auto; padding: 1rem 1.25rem 3rem; }
h1 { font-size: 1.9rem; margin: .5rem 0 .25rem; }
h2 { font-size: 1.25rem; margin-top: 2rem; border-bottom: 1px solid var(--line); padding-bottom: .25rem; }
h3 { font-size: 1.05rem; margin: 1.25rem 0 .25rem; color: var(--accent); }
.beta { background:#fff4d6; color:var(--warn); text-align:center; padding:.4rem; font-size:.9rem; }
.tagline { color: var(--muted); margin-top: 0; }
.fictional { display:inline-block; background:#eef; padding:.1rem .5rem; border-radius:4px; font-size:.85rem; }
.ai { background:#f2f8f5; border:1px solid #cfe6db; border-radius:8px; padding:.25rem 1rem 1rem; margin-top:1rem; }
.ai h2 { border:0; margin-top:.75rem; }
code { font-size:.85rem; background:#f4f4f4; padding:.1rem .3rem; border-radius:3px; word-break: break-all; }
ul.products, ul.shops, ul.hours { list-style:none; padding:0; }
.product { border-bottom:1px solid var(--line); padding:.6rem 0; }
.product .line { display:flex; justify-content:space-between; gap:1rem; font-weight:600; }
.product .price { white-space:nowrap; }
.product p { margin:.15rem 0; font-size:.92rem; color:var(--muted); }
.product .allergens { color: var(--ink); }
.product .age { color: var(--warn); }
.legal { font-size:.85rem; color:var(--muted); }
.milestones li { margin:.4rem 0; }
.milestones .status { font-size:.8rem; padding:.05rem .4rem; border-radius:3px; background:#eee; margin-left:.3rem; }
.milestones .done .status { background:#d8f0e3; color:var(--accent); }
.milestones .in_progress .status { background:#fff4d6; color:var(--warn); }
.entry { border-top:1px solid var(--line); margin-top:1rem; }
.entry .date { color:var(--muted); font-size:.85rem; margin-top:0; }
.crumb { margin:.5rem 0 0; font-size:.9rem; }
.error { background:#fde8e8; color:#8a1c1c; padding:.5rem .75rem; border-radius:6px; }
.ok { background:#d8f0e3; color:var(--accent); padding:.5rem .75rem; border-radius:6px; }
.slot { font-size:1.15rem; font-weight:600; }
table.lines { width:100%; border-collapse:collapse; }
table.lines td { border-bottom:1px solid var(--line); padding:.35rem 0; vertical-align:top; }
table.lines td.num { text-align:right; white-space:nowrap; padding-left:1rem; }
table.lines tr.total td { font-weight:700; border-bottom:0; }
table.lines tr.vat td { color:var(--muted); font-size:.85rem; border-bottom:0; }
form { margin:1.5rem 0; display:grid; gap:.75rem; }
form label { display:flex; gap:.5rem; align-items:flex-start; }
button { font:inherit; font-weight:700; padding:.8rem 1rem; border:0; border-radius:8px; background:var(--accent); color:#fff; cursor:pointer; }
.ticket { margin:1.25rem 0; }
.ticket .meta { color:var(--muted); font-size:.8rem; margin:0 0 .25rem; }
.paper { background:#fffef8; width:max-content; max-width:100%; padding:.75rem; box-shadow:0 1px 4px rgba(0,0,0,.15); font:13px/1.35 ui-monospace, Consolas, monospace; white-space:pre; overflow-x:auto; }
.paper .row { width:48ch; }
.paper .double { font-size:2em; width:24ch; line-height:1.15; }
.paper .bold { font-weight:700; }
.paper .center { text-align:center; }
.paper .right { text-align:right; }
.paper .qr { width:48ch; text-align:center; border:1px dashed #999; margin:.4rem 0; padding:.6rem 0; }
footer { text-align:center; font-size:.8rem; color:var(--muted); padding:2rem 1rem; border-top:1px solid var(--line); }
