:root{--bg: #f6f7f4;--surface: #ffffff;--text: #1c2420;--muted: #65706a;--accent: #1f6f4a;--accent-text: #ffffff;--border: #dde2dc;--danger: #b3261e;--ok: #1baf7a;--saved-bg: #dff1e7;--saved-text: #1f6f4a;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--bg: #111613;--surface: #1a211d;--text: #e8ece9;--muted: #9aa59f;--accent: #3fae7d;--accent-text: #0d1310;--border: #2c3530;--danger: #f2827a;--saved-bg: #173226;--saved-text: #7fd6aa}}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:17px/1.4 -apple-system,system-ui,sans-serif}main{padding:16px 16px calc(32px + env(safe-area-inset-bottom));max-width:640px;margin:0 auto}.welcome{padding-top:max(18vh,env(safe-area-inset-top))}h1{font-size:1.6rem;margin:.2rem 0}h2{font-size:1.15rem;margin:1.6rem 0 .6rem}a{color:var(--accent);text-decoration:none}.muted{color:var(--muted)}.small{font-size:.85rem}.error{color:var(--danger)}.splash{display:grid;place-items:center;height:100vh;margin:0;font-size:2rem;color:var(--accent)}.crumbs{margin:0 0 .4rem}.top{display:flex;justify-content:space-between;align-items:baseline}.row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}button,.button{font:inherit;border:0;border-radius:12px;padding:12px 16px;background:var(--accent);color:var(--accent-text);cursor:pointer;display:inline-block;text-align:center;touch-action:manipulation}button:disabled{opacity:.5}button.secondary{background:transparent;color:var(--accent);border:1px solid var(--border)}button.danger{color:var(--danger);margin-top:24px}button.small{padding:6px 10px;font-size:.9rem}button.link{background:none;padding:0;color:var(--accent);font-size:inherit}.big{display:block;width:100%;padding:16px;font-size:1.1rem;font-weight:600;margin:12px 0}input{font:inherit;width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text)}label{display:block;margin:10px 0}label.check{display:flex;gap:10px;align-items:center}label.check input{width:auto}.welcome{text-align:center;padding-top:18vh}.welcome h1{font-size:2.6rem;color:var(--accent)}.sync{position:sticky;top:0;z-index:2;width:100%;border-radius:0;padding:calc(6px + env(safe-area-inset-top)) 8px 6px;font-size:.85rem}.sync.ok{background:var(--saved-bg);color:var(--saved-text)}.sync.waiting,.sync.offline{background:#e8a33d;color:#1c1300}.sync.busy{background:var(--border);color:var(--text)}.saved{color:var(--saved-text);margin:4px 0}.unsaved{color:#b86e00;margin:4px 0}.problems{background:var(--surface);border:1px solid var(--danger);border-radius:12px;margin:8px 16px;padding:10px;font-size:.85rem}.sheet{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:12px 16px;margin:12px 0}.choices,.trips,.items,.receipts{list-style:none;padding:0;margin:0}.choices button,.trips a{display:flex;flex-direction:column;align-items:flex-start;width:100%;text-align:left;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:12px;margin:6px 0}.trips a{color:var(--text)}.scanner{margin:12px 0}.camera{position:relative;border-radius:16px;overflow:hidden;background:#000;aspect-ratio:4 / 3;outline:4px solid transparent;transition:outline-color .1s}.camera.flash{outline-color:var(--ok)}.camera video{width:100%;height:100%;object-fit:cover;display:block}.camera .aim{position:absolute;left:5%;right:5%;top:25%;bottom:25%;border:2px solid rgba(255,255,255,.8);border-radius:10px}.camera .last{position:absolute;bottom:8px;left:8px;background:#0009;color:#fff;padding:2px 8px;border-radius:8px;font-size:.85rem}.item{display:flex;gap:10px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:8px;margin:6px 0}.item img,.item .noimage{width:48px;height:48px;object-fit:contain;border-radius:8px;background:#fff;flex:none}.item .noimage{background:var(--border)}.item .what{flex:1;min-width:0;display:flex;flex-direction:column}.item .what strong{overflow:hidden;text-overflow:ellipsis}.item .what form{display:grid;gap:6px}.quantity{display:flex;align-items:center;gap:6px}.quantity button{width:40px;height:40px;padding:0;font-size:1.3rem}.quantity span{min-width:1.5em;text-align:center;font-weight:600}.receipts li{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px;margin:6px 0}.receipts pre{white-space:pre-wrap;font-size:.8rem}.link-text{word-break:break-all}.hint{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:12px;padding:8px 12px;margin:8px 0;font-size:.9rem}.hint p{margin:0 0 8px}
