:root{--bg: #f6f7f9;--surface: #ffffff;--text: #16202e;--muted: #5b6676;--border: #dde2e8;--accent: #0c2b4d;--accent-text: #ffffff;--gold: #e8a317;--danger: #b42318;--badge-bg: #fff4d6;--badge-text: #7a5200;--radius: 10px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0f141b;--surface: #18202b;--text: #e8edf3;--muted: #9aa6b5;--border: #2b3645;--accent: #f2b53a;--accent-text: #16202e;--danger: #ff8a80;--badge-bg: #3a2f14;--badge-text: #f5d58a;color-scheme:dark}}:root[data-theme=dark]{--bg: #0f141b;--surface: #18202b;--text: #e8edf3;--muted: #9aa6b5;--border: #2b3645;--accent: #f2b53a;--accent-text: #16202e;--danger: #ff8a80;--badge-bg: #3a2f14;--badge-text: #f5d58a;color-scheme:dark}.theme-toggle{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:4px 12px;font-size:.85rem;cursor:pointer;white-space:nowrap}.theme-toggle:hover{border-color:var(--accent)}.title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,input,select,textarea{font:inherit;color:inherit}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.app{max-width:760px;margin:0 auto;padding:16px 16px 48px}.app-header{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:flex-end;justify-content:space-between;border-bottom:3px solid var(--gold);padding-bottom:12px;margin-bottom:16px}h1{font-size:1.4rem;margin:0}.subtitle{margin:2px 0 0;color:var(--muted)}.totals{display:flex;gap:16px;margin:0}.totals div{text-align:right}.totals dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.totals dd{margin:0;font-size:1.25rem;font-weight:700;font-variant-numeric:tabular-nums}.meal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;margin-bottom:12px}.meal-header{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}.meal-header h2{font-size:1.05rem;margin:0}.macro-line{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.macro-line strong{color:var(--text)}.entries{list-style:none;margin:8px 0;padding:0}.entry{display:grid;grid-template-columns:1fr auto auto auto;gap:4px 12px;align-items:center;padding:8px 0;border-top:1px solid var(--border)}.entry-name{font-weight:600}.entry-source{font-size:.85rem;color:var(--muted)}.badge{display:inline-block;margin-left:6px;padding:0 6px;border-radius:999px;background:var(--badge-bg);color:var(--badge-text);font-size:.75rem}@media(max-width:560px){.entry{grid-template-columns:1fr auto}.entry-main{grid-column:1 / -1}.entry .macro-line{grid-column:1;grid-row:3}.entry .icon-btn{grid-column:2;grid-row:2 / 4}}.btn{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:7px 14px;cursor:pointer}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.btn.small{padding:4px 10px;font-size:.875rem;white-space:nowrap}.add-btn{margin-top:8px;width:100%;border-style:dashed;color:var(--muted)}.icon-btn{border:none;background:none;font-size:1.4rem;line-height:1;padding:4px 8px;cursor:pointer;color:var(--muted)}.link-btn{border:none;background:none;padding:0;color:var(--muted);text-decoration:underline;cursor:pointer}.amount-input{display:inline-flex;align-items:center;gap:4px}.amount-input input{width:72px;padding:5px 6px;border:1px solid var(--border);border-radius:6px;background:var(--bg);text-align:right}.amount-input select,.picker-controls select,.picker-controls input{padding:5px 6px;border:1px solid var(--border);border-radius:6px;background:var(--bg)}.unit{color:var(--muted);font-size:.875rem}.button-row{display:flex;gap:8px;flex-wrap:wrap}.hint{color:var(--muted);margin:8px 0}.error{color:var(--danger)}.fallback-text{width:100%;margin-top:8px;font-family:ui-monospace,Menlo,monospace;font-size:.8rem}.previous{background:var(--badge-bg);border:1px solid var(--gold);border-radius:var(--radius);padding:12px 14px;margin-bottom:16px}.previous p{margin:0 0 8px}.previous .link-btn{margin-top:8px}.app-footer{margin-top:20px}.fine-print{font-size:.8rem;color:var(--muted)}.overlay{position:fixed;inset:0;background:#00000073;display:flex;justify-content:center;align-items:flex-start;padding:24px 12px;z-index:10}.picker{background:var(--surface);border-radius:var(--radius);width:100%;max-width:680px;max-height:calc(100vh - 48px);display:flex;flex-direction:column;overflow:hidden}@media(max-width:560px){.overlay{padding:0}.picker{max-height:100vh;height:100vh;border-radius:0}}.picker-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px 4px}.picker-header h2{margin:0;font-size:1.1rem}.picker-controls{display:flex;gap:8px;padding:4px 16px 8px}.picker-controls input{flex:1;min-width:0}.picker-header,.picker-controls,.tabs,.picker>.hint{flex-shrink:0}.tabs{display:flex;gap:6px;overflow-x:auto;padding:0 16px 8px;border-bottom:1px solid var(--border)}.tab{border:1px solid var(--border);background:none;border-radius:999px;padding:4px 12px;white-space:nowrap;cursor:pointer;font-size:.875rem}.tab.active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.picker>.hint{padding:0 16px}.picker-body{overflow-y:auto;padding:8px 16px 16px}.dish{padding:8px 0 4px;border-bottom:1px solid var(--border)}.dish h3{margin:0;font-size:1rem}.dish-desc{margin:2px 0 4px;font-size:.8rem;color:var(--muted)}.components{list-style:none;margin:0;padding:0}.component{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:6px 0}.component-main{flex:1;min-width:0}.component-meta{font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}.component-meta.missing{font-style:italic}.add-form{flex-basis:100%;display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;padding:8px 10px;background:var(--bg);border-radius:8px}.hall-switch{display:flex;flex-shrink:0;margin:4px 16px 8px;border:1px solid var(--border);border-radius:8px;overflow:hidden}.hall-option{flex:1;border:none;background:none;padding:7px 12px;cursor:pointer;font-weight:600;color:var(--muted)}.hall-option+.hall-option{border-left:1px solid var(--border)}.hall-option.active{background:var(--accent);color:var(--accent-text)}.picker-error{padding:0 16px}
