:root{--green:#1c3f2e;--soft-green:#8fbea3;--gold:#c09a5a;--bg:#eef0f3;--card:#fff;--text:#2a2a2a;--muted:#6b7280;--border:#e5e7eb;--radius:12px;--shadow:0 1px 3px #00000014}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}a{color:inherit;text-decoration:none}button{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;font-family:inherit}input,textarea,select{font-family:inherit}@supports (-webkit-touch-callout:none){input,textarea,select{font-size:max(16px,1em)}}.shell{background:var(--card);flex-direction:column;max-width:520px;min-height:100vh;margin:0 auto;display:flex;box-shadow:0 0 40px #0000000f}.hero{background:var(--green);flex-shrink:0;height:200px;position:relative;overflow:hidden}.hero img{object-fit:cover;opacity:.75;width:100%;height:100%}.heroPlaceholder{opacity:.2;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#1c3f2e 0%,#2d6a4f 100%);justify-content:center;align-items:center;width:100%;height:100%;font-size:3.5rem;display:flex}.restaurantHeader{padding:20px 20px 0}.restaurantName{color:var(--green);font-family:Playfair Display,Georgia,serif;font-size:1.75rem;font-weight:700;line-height:1.2}.infoList{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;margin-top:12px;padding-bottom:16px;display:flex}.infoRow{color:var(--muted);align-items:flex-start;gap:8px;font-size:.875rem;line-height:1.4;display:flex}.infoRow svg{color:var(--green);flex-shrink:0;margin-top:2px}.infoRow a{color:var(--muted)}.infoRow a:hover{color:var(--green)}.langSwitcher{justify-content:flex-end;gap:4px;padding:10px 20px 0;display:flex}.langBtn{letter-spacing:.04em;color:var(--muted);border:1px solid var(--border);border-radius:20px;min-height:36px;padding:6px 11px;font-size:.72rem;font-weight:600;transition:all .15s}.langBtn:hover{border-color:var(--green);color:var(--green)}.langBtn.active{background:var(--green);border-color:var(--green);color:#fff}.navTabs{border-bottom:2px solid var(--border);scrollbar-width:none;margin-top:12px;display:flex;overflow-x:auto}.navTabs::-webkit-scrollbar{display:none}.navTab{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;flex-shrink:0;align-items:center;min-height:48px;margin-bottom:-2px;padding:14px 20px;font-size:.8rem;font-weight:600;transition:color .2s,border-color .2s;display:flex}.navTab:hover{color:var(--green)}.navTab.active{color:var(--green);border-bottom-color:var(--gold)}.section{flex:1;display:none}.section.active{display:block}.sectionCarta{display:none}.menuDia{padding:20px}.menuHeader{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.menuTitle{color:var(--green);font-family:Playfair Display,Georgia,serif;font-size:1.25rem;font-weight:700}.menuDate{color:var(--muted);margin-top:3px;font-size:.8rem}.menuPreu{background:var(--green);color:#fff;border-radius:20px;flex-shrink:0;padding:8px 16px;font-size:1.1rem;font-weight:700}.menuPreuMig{color:var(--green);border:1.5px solid var(--green);white-space:nowrap;background:0 0;border-radius:20px;flex-shrink:0;padding:4px 12px;font-size:.82rem;font-weight:600}.menuBlock{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;overflow:hidden}.menuBlockHeader{text-transform:uppercase;letter-spacing:.08em;color:var(--green);border-bottom:1px solid var(--border);background:#f9fafb;padding:9px 16px;font-size:.7rem;font-weight:700}.menuBlockBody{flex-direction:column;gap:10px;padding:12px 16px;display:flex}.menuItem{align-items:flex-start;gap:10px;font-size:.95rem;line-height:1.45;display:flex}.menuItemDot{background:var(--gold);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:8px}.menuSingle{font-size:.95rem;line-height:1.45}.menuSuggeriments{border:1px solid #f0e0b0;border-left:3px solid var(--gold);border-radius:0 var(--radius) var(--radius) 0;background:#fffbf0;margin-bottom:14px;padding:14px 16px}.menuSuggerimentsTitle{text-transform:uppercase;letter-spacing:.08em;color:var(--gold);margin-bottom:8px;font-size:.7rem;font-weight:700}.menuSuggerimentItem{color:var(--text);padding:2px 0;font-size:.95rem;line-height:1.45}.menuSuggerimentItem+.menuSuggerimentItem{border-top:1px solid #f0e0b0;margin-top:4px;padding-top:6px}.menuNota{border-left:3px solid var(--gold);color:var(--muted);background:#f0faf4;border-radius:0 8px 8px 0;margin-top:16px;padding:11px 14px;font-size:.8rem}.cartaSection{padding:20px}.cartaCategory{margin-bottom:20px}.cartaCategoryName{text-transform:uppercase;letter-spacing:.08em;color:var(--green);border-bottom:1px solid var(--border);margin-bottom:10px;padding:8px 0;font-size:.7rem;font-weight:700}.cartaItem{border-bottom:1px solid #f3f4f6;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 0;font-size:.9rem;display:flex}.cartaItem:last-child{border-bottom:none}.cartaItemInfo{flex:1}.cartaItemNom{font-weight:500}.cartaItemDesc{color:var(--muted);margin-top:2px;font-size:.8rem}.cartaItemPreu{color:var(--green);white-space:nowrap;font-weight:600}.cartaAviat,.loading{text-align:center;color:var(--muted);padding:60px 20px;font-size:.9rem;line-height:1.6}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:3px solid var(--border);border-top-color:var(--green);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite spin;display:inline-block}.spinnerWrap{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px 20px;font-size:.85rem;display:flex}.footer{text-align:center;color:var(--border);border-top:1px solid var(--border);margin-top:auto;padding:20px;font-size:.75rem}.adminShell{background:var(--card);max-width:640px;min-height:100vh;margin:0 auto;padding:0 0 48px}.adminHeader{z-index:10;background:var(--card);border-bottom:1.5px solid var(--border);padding:10px 20px 0;position:sticky;top:0}.adminHeaderTop{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.adminLogo{color:var(--green);white-space:nowrap;font-family:Playfair Display,Georgia,serif;font-size:1.15rem;font-weight:700}.adminHeaderLangs{flex-shrink:0;gap:4px;display:flex}.adminHeaderUser{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.72rem;display:flex}.adminTabs{gap:0;display:flex}.adminTab{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;flex-shrink:0;margin-bottom:-1.5px;padding:8px 14px;font-size:.72rem;font-weight:600;transition:color .2s,border-color .2s}.adminTab.active{color:var(--green);border-bottom-color:var(--gold)}.adminContent{padding:20px 20px 0}.formGroup{margin-bottom:16px}.formLabel{text-transform:uppercase;letter-spacing:.06em;color:var(--green);margin-bottom:5px;font-size:.72rem;font-weight:600;display:block}.formInput{border:1.5px solid var(--border);width:100%;color:var(--text);background:#fafafa;border-radius:8px;outline:none;padding:10px 13px;font-size:.9rem;transition:border-color .15s}.formInput:focus{border-color:var(--green);background:#fff}.formInputSmall{width:100px}.formInputDate{width:160px}.formSection{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-top:1px solid var(--border);margin-top:6px;padding:16px 0 10px;font-size:.7rem;font-weight:700}.langBlock{flex-direction:column;gap:8px;display:flex}.langRow{align-items:center;gap:8px;display:flex}.langTag{letter-spacing:.03em;text-align:center;color:#fff;border-radius:4px;flex-shrink:0;width:28px;padding:4px 0;font-size:.68rem;font-weight:700}.langTag.ca{background:#b5232e}.langTag.es{color:#1a1a1a;background:#d4a017}.langTag.en{background:#1a3875}.langTag.fr{background:#2c5fa1}.langInputGroup{flex:1;gap:6px;display:flex}.langInputGroup .formInput{margin:0}.checkRow{align-items:center;gap:8px;margin-bottom:16px;display:flex}.checkRow input[type=checkbox]{width:17px;height:17px;accent-color:var(--green);cursor:pointer}.checkRow label{cursor:pointer;font-size:.9rem}.btn{text-align:center;border-radius:8px;width:100%;padding:13px;font-size:.95rem;font-weight:600;transition:opacity .15s,transform .1s;display:block}.btn:active{transform:scale(.98)}.btnPrimary{background:var(--green);color:#fff}.btnPrimary:hover{opacity:.88}.btnSecondary{background:var(--soft-green);color:#fff;margin-bottom:10px}.btnSecondary:hover{opacity:.88}.btnGold{background:var(--gold);color:#fff;margin-bottom:10px}.btnGold:hover{opacity:.88}.btnGhost{color:var(--text);background:#f3f4f6}.btnGhost:hover{background:#e9eaec}.btnSm{border-radius:6px;align-items:center;gap:4px;padding:5px 10px;font-size:.78rem;font-weight:600;transition:opacity .15s;display:inline-flex}.btnSm:hover{opacity:.75}.btnDanger{color:#b91c1c;background:#fef2f2}.btnSuccess{color:#15803d;background:#f0fdf4}.btnNeutral{color:var(--muted);background:#f3f4f6}.btnAdd{background:var(--soft-green);color:#fff;margin-left:auto}.feedback{border-radius:8px;margin-top:12px;padding:12px 14px;font-size:.88rem;display:none}.feedbackOk{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0;display:block}.feedbackErr{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;display:block}.suplBadge{color:var(--muted);white-space:nowrap;margin-left:5px;font-size:.8em}.cartaAdminCat{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;overflow:hidden}.cartaAdminCatHeader{border-bottom:1px solid var(--border);background:#f9fafb;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;display:flex}.cartaAdminCatBody{padding:14px}.cartaAdminItem{border:1px solid #f0f0f0;border-radius:8px;margin-bottom:10px;padding:12px}.cartaAdminItemHeader{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.itemActions{gap:6px;display:flex}.addBtn{border:1.5px dashed var(--border);color:var(--muted);border-radius:8px;justify-content:center;align-items:center;gap:6px;width:100%;margin-top:10px;padding:8px 14px;font-size:.82rem;transition:border-color .15s,color .15s;display:flex}.addBtn:hover{border-color:var(--green);color:var(--green)}.divider{background:var(--border);height:1px;margin:20px 0}.priceRow{align-items:center;gap:10px;margin-bottom:14px;display:flex}.priceRow label{text-transform:uppercase;letter-spacing:.06em;color:var(--green);white-space:nowrap;font-size:.72rem;font-weight:600}.priceSymbol{color:var(--muted);font-size:.9rem}.allergenFilterPanel{border:1px solid var(--border);border-radius:var(--radius);margin:0 20px 4px;overflow:hidden}.allergenFilterToggle{width:100%;color:var(--text);cursor:pointer;background:#f9fafb;border:none;justify-content:space-between;align-items:center;padding:10px 14px;font-size:.82rem;transition:background .15s;display:flex}.allergenFilterToggle:hover{background:#f3f4f6}.allergenFilterGrid{border-top:1px solid var(--border);background:#fff;grid-template-columns:repeat(7,1fr);gap:6px;padding:12px;display:grid}@media (max-width:360px){.allergenFilterGrid{grid-template-columns:repeat(5,1fr)}}.allergenFilterBadges{background:#fffbf0;border-top:1px solid #f0e0b0;flex-wrap:wrap;align-items:center;gap:5px;padding:8px 14px;display:flex}.menuItemAlert{background:#fff7f7;border-left:3px solid #ef4444;border-radius:6px;margin:-4px -6px;padding:4px 6px}.cartaItemAlert{background:#fff7f7;border-left:3px solid #ef4444;border-radius:0 6px 6px 0;padding-left:10px}.menuItemEsgotat,.cartaItemEsgotat{opacity:.45;text-decoration:line-through}.esgotatBadge{text-transform:uppercase;letter-spacing:.04em;color:#b91c1c;vertical-align:middle;white-space:nowrap;background:#fee2e2;border-radius:10px;margin-left:6px;padding:1px 7px;font-size:.68rem;font-weight:700;display:inline-block}.slotsGrid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:8px;display:grid}@media (max-width:420px){.slotsGrid{grid-template-columns:1fr}}.slotCard{border:1px solid var(--border);background:#fafafa;border-radius:8px;padding:10px}.slotCardHeader{justify-content:space-between;align-items:center;gap:6px;margin-bottom:8px;display:flex}.slotCardLabel{text-transform:uppercase;letter-spacing:.06em;color:var(--green);flex-shrink:0;font-size:.68rem;font-weight:700}.platRow{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.platRow:last-child{border-bottom:none}.platTipusBadge{text-transform:uppercase;letter-spacing:.05em;border-radius:10px;flex-shrink:0;padding:2px 7px;font-size:.65rem;font-weight:700}.platTipusBadge[data-tipus=primer]{color:#2e6e40;background:#e8f4ea}.platTipusBadge[data-tipus=segon]{color:#2a4a8a;background:#e8eef8}.platTipusBadge[data-tipus=postre]{color:#8a5a20;background:#fdf3e7}.platEditCard{background:#f0faf4;border:1.5px solid #a8d8b8;border-radius:10px;margin-bottom:16px;padding:14px}.allergenAdminGrid{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (max-width:380px){.allergenAdminGrid{grid-template-columns:1fr}}.allergenAdminCard{border:1px solid var(--border);border-top:3px solid var(--card-color,var(--green));border-radius:8px;padding:10px}@media (min-width:640px){.shell{max-width:580px}.hero{height:260px}.restaurantName{font-size:2rem}.infoList{flex-flow:wrap;align-items:center;gap:0 24px}.infoRow{font-size:.82rem}.menuDia{padding:24px 28px}.menuTitle{font-size:1.35rem}.menuColumnsGrid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.adminShell{max-width:740px}.adminHeader{padding:12px 28px 0}.adminContent{padding:24px 28px 0}.adminLogo{font-size:1.25rem}.adminTab{padding:10px 18px;font-size:.75rem}.formRow2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.formRow2 .formGroup{margin-bottom:0}.slotsGrid{grid-template-columns:1fr 1fr}}@media (min-width:900px){body{background:#e8ebe8}.shell{flex-direction:column;max-width:860px;display:flex;box-shadow:0 0 60px #0000001a}.hero{height:320px}.hero img{object-position:center center;opacity:1}.langSwitcherWrapper{padding:16px 36px 0}.restaurantHeader{padding:24px 36px 0}.restaurantName{font-size:2.2rem}.infoList{flex-flow:wrap;align-items:center;gap:0 28px;margin-top:12px;padding-bottom:20px}.infoRow{font-size:.9rem}.menuDia{padding:28px 36px}.menuTitle{font-size:1.4rem}.adminShell{max-width:960px;margin-top:0;box-shadow:0 0 40px #0000000f}.adminHeader{padding:14px 36px 0}.adminContent{padding:28px 36px 0}.adminTab{padding:11px 20px}.slotsGrid,.allergenAdminGrid{grid-template-columns:1fr 1fr 1fr}.platRow{padding:12px 0}}@media (max-width:480px){.navTab{padding:14px 16px;font-size:.75rem}.menuItem{font-size:.9rem}.menuPreu{padding:7px 13px;font-size:1rem}.btnSm{min-height:38px;padding:7px 11px;font-size:.76rem}.adminTab{padding:9px 11px;font-size:.68rem}.formInput{padding:12px 13px;font-size:1rem}.infoRow{align-items:center;min-height:40px;font-size:.85rem;line-height:1.5}}
