:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#203129;background:#f5f1e8;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:#f5f1e8}body{min-width:320px;min-height:100vh;margin:0}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #d9933d;outline-offset:4px}.page-shell{display:grid;min-height:100vh;grid-template-rows:1fr auto;background:radial-gradient(circle at top left,rgb(255 255 255 / 80%),transparent 40%),#f5f1e8}html[data-embedded],html[data-embedded] body,html[data-embedded] .page-shell{min-height:0}.page-shell--public{--menu-bg: #f8f5ee;--menu-text: #203129;--menu-accent: #174f3b;--menu-title-font: Georgia, "Times New Roman", serif;--menu-body-font: inherit;--menu-muted: color-mix(in srgb, var(--menu-text) 78%, var(--menu-bg));--menu-line: color-mix(in srgb, var(--menu-accent) 22%, var(--menu-bg));color:var(--menu-text);font-family:var(--menu-body-font);background:linear-gradient(155deg,color-mix(in srgb,var(--menu-accent) 7%,transparent),transparent 48%),var(--menu-bg)}.page-shell--public .site-footer{color:var(--menu-muted)}.page-shell__content{display:grid;width:min(100%,72rem);margin:0 auto;padding:clamp(1.25rem,5vw,4.5rem);place-items:center}.hero,.status-card{width:min(100%,44rem)}.admin-panel{width:min(100%,42rem)}.page-shell__content:has(.admin-panel){align-items:start}.hero h1,.status-card h1{margin:0;color:#174f3b;font-family:Georgia,Times New Roman,serif;font-size:clamp(3.4rem,14vw,7rem);font-weight:500;letter-spacing:-.055em;line-height:.95}.status-card h1{font-size:clamp(2.5rem,9vw,5rem)}.eyebrow{margin:0 0 1rem;color:#9a5c24;font-size:.82rem;font-weight:750;letter-spacing:.16em;text-transform:uppercase}.hero__intro,.status-card>p:not(.eyebrow){max-width:39rem;margin:1.75rem 0 0;color:#526159;font-size:clamp(1.05rem,3vw,1.3rem);line-height:1.7}.action-list{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.5rem}.button{display:inline-flex;min-height:3.25rem;align-items:center;justify-content:center;border:1px solid transparent;border-radius:.8rem;padding:.8rem 1.25rem;font-weight:720;line-height:1.2;text-align:center;text-decoration:none}.button--primary{color:#fff;background:#174f3b;box-shadow:0 .75rem 1.5rem #174f3b29}.button--secondary{border-color:#c9c0b1;color:#174f3b;background:#ffffff9e}.text-link{display:inline-block;margin-top:2rem;color:#174f3b;font-weight:720;text-underline-offset:.25rem}.empty-state{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;margin-top:2.5rem;border:1px solid #ded7ca;border-radius:1rem;padding:clamp(1rem,4vw,1.5rem);background:#ffffffad}.empty-state__mark{display:grid;width:3rem;height:3rem;border-radius:50%;color:#fff;background:#c77932;font-family:Georgia,Times New Roman,serif;font-size:1.6rem;place-items:center}.empty-state h2{margin:0;color:#243c31;font-size:clamp(1.1rem,4vw,1.35rem)}.empty-state p{margin:.5rem 0 0;color:#667169;line-height:1.55}.site-footer{padding:1rem 1.5rem 1.5rem;color:#68746d;font-size:.8rem;letter-spacing:.06em;text-align:center;text-transform:uppercase}.form-card{display:grid;gap:1.25rem;margin-top:2rem;border:1px solid #ded7ca;border-radius:1rem;padding:clamp(1.25rem,5vw,2rem);background:#ffffffb8;box-shadow:0 1rem 2.5rem #2e3e3514}.form-card label{display:grid;gap:.5rem;color:#35483e;font-weight:700}.form-card input{min-height:3.25rem;border:1px solid #b9b2a5;border-radius:.65rem;padding:.65rem .8rem;color:#203129;background:#fff;font:inherit}.form-card input:focus{border-color:#174f3b;outline:3px solid rgb(23 79 59 / 18%)}.form-error{border-left:4px solid #a33b2f;margin:1rem 0;padding:.75rem 1rem;color:#7b2b23;background:#fff0ed}.admin-header{display:flex;gap:1.5rem;align-items:start;justify-content:space-between;margin-bottom:2rem}.admin-header h1{margin:0;color:#174f3b;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.4rem,7vw,4.5rem);font-weight:500;letter-spacing:-.04em;line-height:1}.admin-header__actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.menu-public-link{display:inline-flex;min-height:3.25rem;align-items:center;justify-content:center;border:1px solid #c9c0b1;border-radius:.8rem;padding:.8rem 1.25rem;color:#174f3b;background:#ffffff9e;font-weight:720;text-decoration:none}.menu-save-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;position:sticky;top:0;z-index:2;margin-bottom:1rem;padding:.35rem 0;background:#f5f1e8}.menu-save-status{min-height:1.5rem;margin:0;font-size:1.05rem;font-weight:750}.menu-save-status--saving{color:#9a5c24}.menu-save-status--saved{color:#174f3b}.menu-save-status--error{color:#7b2b23}.menu-editor{display:grid;gap:1.25rem}.menu-fieldset,.menu-section{margin:0;border:1px solid #d6cebf;border-radius:1rem;padding:clamp(1rem,4vw,1.5rem);background:#ffffffc2}.menu-fieldset legend,.menu-section h2{color:#243c31;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.6rem,5vw,2.1rem);font-weight:500}.menu-section h2{margin:0 0 1rem}.menu-dates,.menu-editor label,.menu-price{display:grid;gap:.5rem;color:#35483e;font-weight:700}.menu-dates{grid-template-columns:1fr;margin-top:.75rem}.menu-editor input,.menu-editor textarea{width:100%;min-height:3.5rem;border:1px solid #b9b2a5;border-radius:.65rem;padding:.65rem .8rem;color:#203129;background:#fff;font:inherit;font-size:1.125rem}.menu-editor input:focus,.menu-editor textarea:focus{border-color:#174f3b;outline:3px solid rgb(23 79 59 / 18%)}.dish-list{display:grid;gap:1rem;margin:0 0 1rem;padding:0;list-style:none}.dish-card{display:grid;gap:.75rem}.dish-actions{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.dish-actions .button,.menu-section>.button,.confirm-dialog .button,.menu-save-row .button{min-height:3.75rem;font-size:1.05rem}.dish-actions .button--danger{grid-column:1 / -1}.dish-allergens-toggle{min-height:3.75rem;font-size:1.05rem}.dish-allergens-summary{margin:0;color:#203129;font-size:1rem;font-weight:650}.button:disabled{opacity:.45;cursor:not-allowed}.button--danger{border-color:#e2b2ab;color:#7b2b23;background:#fff7f5}.confirm-backdrop{position:fixed;z-index:5;inset:0;display:grid;align-items:end;padding:1rem;background:#20312959}.confirm-dialog{display:grid;gap:1.25rem;width:min(100%,28rem);margin:0 auto;border-radius:1rem;padding:1.25rem;background:#fffdf8;box-shadow:0 1rem 2.5rem #2e3e352e}.confirm-dialog p{margin:0;color:#243c31;font-size:clamp(1.35rem,5vw,1.7rem);line-height:1.35}.confirm-dialog__actions{display:grid;gap:.75rem}.allergen-review,.menu-settings{display:grid;gap:1.25rem}.menu-colors{display:grid;gap:1rem;margin:0;border:0;padding:0}.menu-colors legend{margin-bottom:.75rem;padding:0;color:#35483e;font-weight:700}.menu-colors__presets{display:flex;flex-wrap:wrap;gap:.5rem}.menu-colors__preset{min-height:3rem;border:2px solid var(--preset-accent);border-radius:.8rem;padding:.5rem .9rem;color:var(--preset-text);background:var(--preset-bg);font:inherit;font-weight:700}.menu-editor .menu-colors__field{display:flex;gap:.9rem;align-items:center;color:#35483e;font-weight:700}.menu-editor .menu-colors__field input{width:4rem;min-height:3.25rem;flex:none;padding:.2rem;cursor:pointer}.menu-colors__preview{display:grid;gap:.35rem;border:1px solid #b9b2a5;border-radius:.8rem;padding:1rem;text-align:center}.menu-colors__preview strong{font-family:Georgia,Times New Roman,serif;font-size:1.4rem;font-weight:500}.menu-colors__warning{margin:0;border-radius:.8rem;padding:.75rem;color:#7a3e00;background:#fff4e5;font-weight:650}.logo-upload{display:grid;gap:.75rem}.logo-upload h3,.logo-upload p{margin:0}.logo-upload__preview{max-width:12rem;max-height:8rem;object-fit:contain}.menu-editor .menu-font__option{display:flex;gap:.75rem;align-items:center;min-height:3.25rem;border:1px solid #b9b2a5;border-radius:.8rem;padding:.5rem .9rem;background:#fff;font-size:1.25rem}.menu-editor .menu-font__option input{width:1.4rem;min-height:1.4rem;flex:none}.logo-colors{display:grid;gap:.75rem}.logo-upload__hint{color:#526159}.allergen-review>h2,.menu-settings>h2{margin:0;color:#243c31;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.8rem,6vw,2.4rem);font-weight:500}.allergen-review__reminder,.allergen-review__empty{margin:0;color:#35483e;font-size:1.05rem;line-height:1.5}.allergen-review .menu-section h3{margin:0 0 1rem;color:#243c31;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.5rem,5vw,1.9rem);font-weight:500}.allergen-dish{margin:0;border:0;padding:0}.allergen-dish legend{margin-bottom:.75rem;padding:0;color:#203129;font-size:1.2rem;font-weight:750}.allergen-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.6rem}.allergen-option{display:flex;min-height:3.5rem;align-items:center;gap:.55rem;border:2px solid #d6cebf;border-radius:.8rem;padding:.5rem .75rem;color:#203129;background:#fff;font-size:1.05rem;font-weight:650;cursor:pointer}.allergen-option input{width:1.4rem;height:1.4rem;flex:none;margin:0;accent-color:#174f3b}.allergen-option:has(input:checked){border-color:#174f3b;background:#e6f0ea}.allergen-option:has(input:focus-visible){outline:3px solid rgb(23 79 59 / 30%)}.allergen-icon{display:inline-block;width:1.4em;height:1.4em;flex:none;vertical-align:-.4em}.allergen-option__icon{width:1.6rem;height:1.6rem}.allergen-text{display:grid;gap:1rem;border:2px solid #d6cebf;border-radius:1rem;padding:1rem;background:#fff}.allergen-text h3,.allergen-text h4{margin:0 0 .5rem;color:#243c31}.allergen-text p{margin:0;color:#35483e;font-size:1.05rem;line-height:1.5}.allergen-text__lines{display:grid;gap:.6rem;margin:0;padding-left:1.25rem;font-size:1.1rem;overflow-wrap:anywhere}.allergen-text__lines--review li{color:#7b2b23}.allergen-text__source,.allergen-text__reason{display:block}.allergen-text__source,.allergen-text__reason--approximate{font-weight:700}.allergen-review__back{min-height:3.75rem}.menu-paste{display:grid;gap:1.25rem}.menu-paste>h2{margin:0;color:#243c31;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.8rem,6vw,2.4rem);font-weight:500}.menu-paste p{margin:0;color:#35483e;font-size:1.05rem;line-height:1.5}.menu-paste .menu-section h3{margin:0 0 .5rem;color:#243c31;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.5rem,5vw,1.9rem);font-weight:500}.menu-paste .menu-paste__warning{color:#7b2b23;font-weight:650}.menu-paste__template{margin:0;border:1px solid #d6cebf;border-radius:.8rem;padding:1rem;background:#fff;font-size:1rem;-webkit-user-select:all;user-select:all}.menu-paste__input{display:grid;gap:.5rem;font-weight:700}.menu-paste__input textarea{width:100%;border:2px solid #d6cebf;border-radius:.8rem;padding:.85rem 1rem;font:inherit;font-size:1.1rem;font-weight:400}.growing-textarea{overflow:hidden;resize:none}.menu-paste__actions{display:grid;gap:.75rem}.menu-paste__actions .button{min-height:3.75rem;font-size:1.05rem}.menu-paste__dishes{display:grid;gap:.4rem;margin:.75rem 0 0;padding-left:1.5rem;font-size:1.1rem;overflow-wrap:anywhere}.handwritten-page{min-height:100vh;padding:1.5rem;background:#f5f1e8}.handwritten-page__controls{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-bottom:1.5rem}.handwritten-sheet{width:min(100%,210mm);margin:0 auto;padding:12mm 14mm;color:#000;background:#fff}.handwritten-sheet h1{margin:0 0 6mm;font-family:Georgia,Times New Roman,serif;font-size:20pt;font-weight:500;text-align:center}.handwritten-section{margin-bottom:6mm}.handwritten-section h2{margin:0 0 1mm;font-size:15pt;letter-spacing:.08em}.handwritten-lines{margin:0;padding:0;list-style:none}.handwritten-lines li{height:8.5mm;border-bottom:1px solid #555}@media print{@page{size:A4 portrait;margin:10mm}html,body,.handwritten-page{min-height:0;padding:0;background:#fff}.handwritten-page__controls{display:none}.handwritten-sheet{width:100%;padding:0}.handwritten-section{break-inside:avoid}}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:34rem){.page-shell__content{align-items:start;padding-top:3.5rem}.action-list{flex-direction:column}.button{width:100%}.empty-state{grid-template-columns:1fr}.admin-header,.admin-header__actions{display:grid;grid-template-columns:1fr}.admin-header .button,.menu-public-link{width:100%}}@media(prefers-reduced-motion:no-preference){.button,.text-link{transition:transform .16s ease,box-shadow .16s ease}.button:hover,.text-link:hover,.menu-public-link:hover{transform:translateY(-2px)}.button:disabled:hover{transform:none}}.public-menu{width:min(100%,40rem);align-self:start}.public-menu h1{margin:0;color:var(--menu-accent);font-family:var(--menu-title-font);font-size:clamp(2.25rem,9vw,4rem);font-weight:500;letter-spacing:-.04em;line-height:1;text-align:center}.public-menu__logo{display:block;max-width:min(12rem,60%);max-height:8rem;margin:0 auto 1rem;object-fit:contain}.public-menu__restaurant{margin:0 0 .5rem;color:var(--menu-muted);font-size:1.05rem;letter-spacing:.08em;text-align:center;text-transform:uppercase}.public-menu__price-note,.public-menu__footer{margin:.5rem 0 0;color:var(--menu-muted);white-space:pre-line}.public-menu__footer{margin-top:2rem;border-top:1px solid var(--menu-line);padding-top:1.25rem;text-align:center}.public-menu__notice{margin:2rem 0 0;color:var(--menu-muted);font-size:1.05rem;text-align:center}.public-menu__meta{margin-top:1.25rem;text-align:center}.public-menu__dates{margin:0;color:var(--menu-muted);font-size:1.05rem}.public-menu__price{margin:.5rem 0 0;color:var(--menu-accent);font-size:1.6rem;font-weight:750}.public-menu__section{margin-top:2rem;border-top:1px solid var(--menu-line);padding-top:1.25rem}.public-menu__section h2{margin:0 0 .75rem;color:var(--menu-accent);font-family:var(--menu-title-font);font-size:clamp(1.5rem,6vw,2rem);font-weight:500;text-align:center}.public-menu__dishes{display:grid;gap:.9rem;margin:0;padding:0;list-style:none;text-align:center}.public-menu__dish-name{color:var(--menu-text);font-size:1.125rem;line-height:1.4;overflow-wrap:anywhere}.public-menu__allergens{display:flex;flex-wrap:wrap;gap:.35rem .75rem;justify-content:center;margin:.3rem 0 0;padding:0;color:var(--menu-muted);font-size:.9rem;list-style:none}.photo-picker{position:relative;display:grid;place-items:center;cursor:pointer}.photo-picker:focus-within{outline:3px solid #243c31;outline-offset:3px}.photo-review__dish--uncertain{border:3px solid #b5651d;border-radius:.8rem;padding:.75rem;background:#fff4e5}.menu-paste .photo-review__doubt{color:#7a3e00;font-weight:650}
