:root{font-family:Arial,Helvetica,sans-serif;color:#29382e;background:#f6f5ef;font-synthesis:none;--green:#345a42;--muted:#777c71;--line:#e3e4db}
*{box-sizing:border-box}body{margin:0}button,a,textarea{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0;transition:background .15s,color .15s}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,textarea:focus-visible,input:focus-visible{outline:3px solid #b6c79a;outline-offset:3px}button:hover:not(:disabled){filter:brightness(.96)}.topbar{height:85px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:30px;padding:0 4vw;background:#faf9f5}.brand{font-family:Georgia,serif;font-weight:bold;font-size:27px;color:#293e30;text-decoration:none;display:flex;gap:11px;align-items:center;letter-spacing:-1px}.brand-icon{background:var(--green);color:#f9f8e9;border-radius:11px;width:35px;height:38px;display:inline-flex;align-items:center;justify-content:center;font-size:34px;font-style:italic;padding-bottom:5px}.brand-icon span{color:#cbd4ad}.tagline{color:var(--muted);font-size:12px;border-left:1px solid var(--line);padding-left:25px}.topbar nav{margin-left:auto;display:flex;align-items:center;gap:20px}.quiet{background:none;color:#596052;padding:8px;font-size:12px}.outline{background:transparent;border:1px solid #cfd4c7;border-radius:7px;padding:10px 15px;font-size:12px;color:#384c3b}#library-count{background:#e9ecdf;border-radius:5px;padding:2px 5px;margin-left:5px}.workspace-bar{display:flex;align-items:center;justify-content:space-between;max-width:1500px;margin:auto;padding:29px 4vw 18px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:bold;color:#727d67}.workspace-bar p{font-family:Georgia,serif;font-size:24px;margin:8px 0;letter-spacing:-.4px}.connection{margin:0 auto 17px;max-width:calc(1500px - 8vw);font-size:11px;color:#6c775f;padding:0 4vw;line-height:1.6}.workspace{max-width:1380px;margin:0 auto 30px;width:92%;display:grid;grid-template-columns:minmax(0,1.18fr) minmax(0,1fr);height:calc(100dvh - 260px);min-height:440px;border:1px solid #dddfd4;border-radius:13px;overflow:hidden;box-shadow:0 5px 22px #283e2610;background:#fffefb}.recipe-panel{min-height:0;display:flex;flex-direction:column;border-right:1px solid var(--line)}.panel-heading{height:66px;flex-shrink:0;padding:0 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:10px}.panel-heading>span{font-size:9px;letter-spacing:1.5px;color:#68755d;display:flex;align-items:center;gap:7px;font-weight:bold}.dot{display:inline-block;width:6px;height:6px;background:#75905f;border-radius:50%}.actions{display:flex;gap:12px;align-items:center}.recipe-content{overflow:auto;padding:32px 37px 45px;scroll-behavior:smooth}.recipe-content h2{font-family:Georgia,serif;font-size:35px;font-weight:normal;letter-spacing:-1px;line-height:1.15;margin:12px 0 15px;max-width:440px}.recipe-kicker{font-size:9px;letter-spacing:2px;color:#7c866d;text-transform:uppercase}.description{font-size:13px;line-height:1.85;color:#787c70;margin:0 0 22px}.meta{display:flex;gap:25px;padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:26px}.meta div{display:flex;flex-direction:column;gap:7px;min-width:70px}.meta small{font-size:9px;letter-spacing:1.4px;color:#818673;text-transform:uppercase}.meta strong{font-size:12px;font-weight:normal}.section-heading{display:flex;align-items:center;justify-content:space-between}.section-heading h3{font-family:Georgia,serif;font-size:21px;font-weight:normal;margin:0 0 16px}.section-heading span{color:#979b8b;font-size:10px;margin-bottom:14px}.ingredients{list-style:none;margin:0 0 30px;padding:0}.ingredients li{border-bottom:1px solid #eeeee6}.ingredients label{display:flex;align-items:center;gap:11px;padding:11px 0;font-size:12px;line-height:1.6;cursor:pointer}.ingredients input{accent-color:var(--green);width:15px;height:15px;margin:0;flex-shrink:0}.ingredients input:checked+span{text-decoration:line-through;color:#a0a592}.amount{font-weight:bold;color:#536646}.steps{list-style:none;padding:0;margin:0;counter-reset:step}.steps li{position:relative;counter-increment:step;padding:0 0 20px 34px;font-size:12px;line-height:1.9;color:#68705f}.steps li:before{content:counter(step);position:absolute;left:0;top:1px;background:#eff1e7;border-radius:50%;width:22px;height:22px;display:grid;place-items:center;color:#5a6e4a;font-size:10px}.notes{border-left:2px solid #cdd4b6;background:#f6f7f0;padding:13px 17px;margin-top:12px;font-size:11px;line-height:1.8;color:#758063}.notes p{margin:0 0 5px}.revision{display:flex;gap:8px;align-items:center;background:#eef2e6;color:#63724f;padding:11px 13px;border-radius:6px;font-size:11px;line-height:1.6;margin-bottom:22px}.empty-recipe{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;text-align:center;padding:25px 10px}.empty-art{height:135px;width:135px;border:1px solid #dee3ce;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#eef1e4 48%,#fafbf5 49%,#fafbf5 62%,#e6eadc 63%,#f8f9f2 65%);font-family:Georgia,serif;font-size:55px;font-style:italic;color:#759063;transform:rotate(-12deg);margin-bottom:23px}.empty-recipe h2{font-size:32px;max-width:310px}.empty-recipe p{font-size:13px;line-height:1.9;max-width:290px;color:#858b79}.empty-recipe .empty-label{font-size:9px;letter-spacing:2px;color:#8f9a7c;margin-top:22px}.chat-panel{display:flex;flex-direction:column;min-height:0;background:#fbfcf8}.chat-heading{display:flex;align-items:center;gap:12px;padding:20px 25px;border-bottom:1px solid var(--line)}.assistant-icon{display:grid;place-items:center;width:35px;height:35px;background:#eaf0df;color:#60804b;border-radius:11px;font-size:24px}.chat-heading h1{font-size:13px;font-weight:normal;margin:0 0 5px}.chat-heading p{font-size:10px;color:#909684;margin:0}.online-dot{background:#7d9863;width:6px;height:6px;border-radius:50%;margin-left:auto}.messages{overflow:auto;flex:1;padding:26px 25px;scroll-behavior:smooth}.welcome-label{font-size:9px;letter-spacing:1.5px;color:#8d967f;margin:0 0 20px}.welcome h2{font-family:Georgia,serif;font-size:28px;line-height:1.25;font-weight:normal;margin:12px 0;color:#3e5039;letter-spacing:-.6px}.welcome p{font-size:12px;line-height:1.8;color:#828a77;max-width:340px}.suggestions{display:flex;flex-direction:column;gap:8px;margin-top:23px}.suggestions button{background:#fffefa;border:1px solid #e0e5d6;border-radius:7px;padding:12px 14px;text-align:left;font-size:11px;color:#60744f;display:flex;justify-content:space-between;gap:12px}.suggestions button:after{content:'↗';color:#9ca78c}.message{margin:0 0 22px;font-size:12px;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere}.message .speaker{display:block;font-size:9px;letter-spacing:1px;color:#8d977f;margin-bottom:7px;white-space:normal}.message.user{margin-left:35px;background:#eaf0df;border:1px solid #e1e7d6;padding:12px 16px;border-radius:11px 11px 2px 11px;color:#4b6041}.message.assistant{margin-right:12px}.change-pill{display:block;background:#eef2e8;color:#6d7e5a;border:1px solid #dde5d0;font-size:10px;padding:7px 11px;border-radius:5px;margin-top:10px;white-space:normal}.thinking{color:#869579;font-size:12px;animation:pulse 1.2s infinite}.composer-area{padding:16px 21px 8px;border-top:1px solid var(--line);background:#fbfcf8}.mode-switch{display:inline-flex;gap:3px;padding:3px;background:#ecefe4;border-radius:7px}.mode-switch button{background:transparent;font-size:10px;color:#79846d;padding:7px 12px;border-radius:5px}.mode-switch button[aria-pressed=true]{background:#fffef9;color:#455e37;box-shadow:0 1px 4px #22320c0d}.mode-hint{font-size:10px;color:#8a927f;margin:10px 0 12px;line-height:1.5}#chat-form{border:1px solid #d7decb;border-radius:9px;background:#fffefa;padding:12px;box-shadow:0 1px 5px #394d1d05}textarea{width:100%;background:transparent;border:0;resize:none;font:12px/1.7 Arial,sans-serif;color:#3e5039;display:block;outline:none!important}textarea::placeholder{color:#9aa18c}.composer-footer{display:flex;justify-content:space-between;align-items:center;margin-top:5px}.composer-footer span{font-size:8px;color:#a1a690}#send{background:var(--green);color:white;width:31px;height:31px;border-radius:7px;font-size:22px}.small-print{font-size:8px;text-align:center;letter-spacing:.25px;color:#9da58f;margin:12px 0 3px}.mobile-tabs{display:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}dialog{border:1px solid #dce2cf;border-radius:15px;padding:27px;max-width:540px;width:90%;color:#344732;background:#fffef9;box-shadow:0 20px 100px #20301830}dialog::backdrop{background:#1f2c2270;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center}.dialog-heading h2{font:29px Georgia,serif;margin:9px 0}.library-description{font-size:12px;color:#8a927f;line-height:1.6}.library-item{border-top:1px solid var(--line);padding:16px 0;display:flex;align-items:center;justify-content:space-between;gap:12px}.library-open{background:none;text-align:left;flex:1;color:#42543a;font:18px Georgia,serif}.library-open small{display:block;font:10px Arial,sans-serif;color:#929a83;margin-top:8px}.library-empty{padding:35px 0;color:#8a927f;font-size:13px;text-align:center}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:14px 22px;border-radius:8px;background:#344d36;color:#fffef5;font-size:12px;box-shadow:0 4px 25px #192d2630;max-width:90%;z-index:5;line-height:1.6}.error{color:#9c4b38;background:#fff0e9;border-color:#e6ccbd}.error-text{font-size:12px;color:#a3563d;padding:12px;border:1px solid #ead6c8;border-radius:7px;background:#fff8f1;line-height:1.7}.print-button{margin-top:20px}.recipe-content:has(.empty-recipe){padding-top:10px;padding-bottom:10px;flex:1}@keyframes pulse{50%{opacity:.4}}
@media(min-width:1600px){.workspace{height:calc(100dvh - 260px)}}
@media(max-width:950px){.tagline{display:none}.workspace{width:96%;grid-template-columns:1.05fr 1fr}.panel-heading{padding:0 18px}.recipe-content{padding:25px}.chat-heading{padding:20px}.messages{padding:23px 20px}.recipe-content h2{font-size:30px}.actions{gap:4px}.outline{padding:9px 11px}}
@media(max-width:700px){.topbar{height:68px;padding:0 5%;gap:10px}.brand{font-size:23px}.brand-icon{height:31px;width:29px;font-size:29px}.topbar nav{gap:5px}.topbar nav .quiet{font-size:11px}.workspace-bar{padding:20px 5% 10px}.workspace-bar p{font-size:18px;max-width:220px}.eyebrow{font-size:8px}.connection{padding:0 5%;font-size:10px;margin-bottom:10px}.mobile-tabs{display:flex;margin:0 5% 12px;background:#e9eddf;padding:4px;border-radius:8px}.mobile-tabs button{flex:1;padding:10px;background:none;color:#7c896f;font-size:12px;border-radius:6px}.mobile-tabs button[aria-selected=true]{background:#fffefa;color:#3f5937;box-shadow:0 1px 5px #273e1a0a}.workspace{display:block;height:calc(100dvh - 275px);min-height:450px;width:94%;margin-bottom:16px}.recipe-panel,.chat-panel{height:100%;border-right:0}.workspace[data-view=recipe] .chat-panel,.workspace[data-view=chat] .recipe-panel{display:none}.recipe-content{padding:27px}.chat-heading{padding:14px 20px}.messages{padding:20px}.composer-area{padding:12px 15px 8px}.panel-heading{height:60px}.empty-art{width:100px;height:100px;font-size:45px}.empty-recipe h2{font-size:27px}.small-print{margin:8px 0 3px}.meta{gap:30px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{body{background:white}.topbar,.workspace-bar,.connection,.chat-panel,.panel-heading,.mobile-tabs,.toast,.print-button{display:none!important}.workspace{display:block!important;height:auto;min-height:0;width:100%;border:0;box-shadow:none}.recipe-panel{display:block!important;border:0}.recipe-content{overflow:visible;padding:0}.revision{display:none}.ingredients li,.steps li{break-inside:avoid}.recipe-content h2{max-width:none}.recipe-content{font-size:12pt}}
/* Saved recipe and guest menu controls. */
.nav-link { text-decoration: none; display: inline-block; }
.field-select { width: 100%; background: #fffef9; border: 1px solid #cfd8c3; border-radius: 7px; padding: 11px 12px; color: #344d36; font: 13px Arial, sans-serif; }
.save-form { display: flex; flex-direction: column; gap: 14px; padding-top: 12px; }
.save-form > label { font-size: 12px; color: #526448; }
.menu-checkbox { display: flex; align-items: center; gap: 9px; padding-top: 5px; }
.menu-checkbox input { accent-color: #345a42; width: 17px; height: 17px; }
.primary { background: #345a42; color: #fffef5; border-radius: 7px; padding: 12px 18px; font: 12px Arial, sans-serif; }
#library-dialog, #save-dialog { max-height: 90dvh; overflow: auto; }
#library-category { margin: 8px 0 12px; }
.menu-main { max-width: 1120px; margin: 0 auto; padding: 48px 28px 30px; }
.menu-intro { position: relative; border-bottom: 1px solid #dfe3d5; padding: 12px 0 35px; }
.menu-intro h1 { font: normal 64px/1.1 Georgia, serif; letter-spacing: -2px; margin: 20px 0 18px; color: #304d37; }
.menu-intro p { color: #79816e; font: 14px/1.9 Arial, sans-serif; margin: 0; }
.menu-flourish { position: absolute; right: 35px; top: 36px; font-size: 112px; line-height: 1; color: #cbd5bb; }
.menu-toolbar { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; padding: 25px 0 8px; }
.menu-filters { display: flex; gap: 5px; padding: 4px; background: #e9eddf; border-radius: 8px; }
.menu-filters button { padding: 10px 15px; color: #7a856d; font-size: 11px; border-radius: 5px; background: transparent; }
.menu-filters button[aria-pressed=true] { background: #fffef9; color: #3b5933; box-shadow: 0 1px 5px #23391a12; }
#menu-search { margin-left: auto; min-width: 190px; padding: 12px; border: 1px solid #d6ddca; border-radius: 7px; background: #fffefb; color: #43563a; font: 12px Arial, sans-serif; }
.menu-status { min-height: 18px; color: #7f8a72; font-size: 11px; margin: 13px 0 18px; line-height: 1.8; }
.menu-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
.menu-card { background: #fffef9; border: 1px solid #dfe4d6; border-radius: 12px; overflow: hidden; box-shadow: 0 3px 10px #30452705; }
.menu-card summary { cursor: pointer; list-style: none; padding: 25px 27px 17px; }
.menu-card summary::-webkit-details-marker { display: none; }
.menu-card summary:focus-visible { outline: 3px solid #a3b78b; outline-offset: -4px; }
.menu-card-kicker { display: flex; align-items: center; justify-content: space-between; color: #7d8d67; text-transform: uppercase; font-size: 9px; letter-spacing: 1.7px; }
.menu-card-kicker > span { font-size: 22px; }
.cocktail-card .menu-card-kicker { color: #967460; }
.menu-card h2 { font: normal 29px/1.2 Georgia, serif; letter-spacing: -.6px; margin: 15px 0 13px; color: #3c5035; overflow-wrap: anywhere; }
.menu-card summary p { font-size: 12px; line-height: 1.9; color: #7d8472; margin-bottom: 20px; }
.menu-expand { display: flex; justify-content: space-between; align-items: center; color: #74875e; font-size: 10px; border-top: 1px solid #e7ebdf; padding-top: 13px; }
.menu-plus { font-size: 18px; transition: transform .2s; }
.when-open { display: none; }
.menu-card[open] .when-open { display: inline; }
.menu-card[open] .when-closed { display: none; }
.menu-card[open] .menu-plus { transform: rotate(45deg); }
.menu-card-details { padding: 0 27px 23px; }
.menu-yield { margin: 0 0 10px; color: #939b85; font-size: 10px; }
.menu-card-details ul { list-style: none; margin: 0 0 20px; padding: 0; }
.menu-card-details li { display: flex; gap: 16px; justify-content: space-between; padding: 11px 0; border-bottom: 1px solid #eceee6; font-size: 12px; color: #63745a; line-height: 1.7; }
.menu-card-details li > span:first-child { overflow-wrap: anywhere; }
.menu-quantity { flex-shrink: 0; text-align: right; max-width: 40%; color: #8b967d; }
.host-recipe-link { display: block; font-size: 10px; color: #738363; text-decoration-thickness: 1px; text-underline-offset: 3px; line-height: 1.8; }
.menu-empty { grid-column: 1 / -1; text-align: center; padding: 50px 20px; border: 1px dashed #d3dcc6; border-radius: 12px; }
.menu-empty > span { font-size: 40px; color: #a6b893; }
.menu-empty h2 { font: 28px Georgia, serif; font-weight: normal; }
.menu-empty p { font-size: 13px; line-height: 1.8; color: #8b957d; }
.menu-footer { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid #dfe3d5; margin-top: 32px; padding: 15px 0; gap: 20px; }
.menu-footer p { font-size: 10px; line-height: 1.9; color: #96a087; }
@media (max-width: 700px) {
  .menu-main { padding: 25px 20px; }
  .menu-intro { padding-bottom: 25px; }
  .menu-intro h1 { font-size: 44px; }
  .menu-intro p { font-size: 12px; max-width: 260px; }
  .menu-intro .eyebrow { display: block; max-width: 240px; line-height: 1.8; }
  .menu-flourish { font-size: 60px; right: 3px; top: 30px; opacity: .65; }
  .menu-grid { grid-template-columns: 1fr; }
  .menu-toolbar { gap: 10px; }
  .menu-filters { width: 100%; }
  .menu-filters button { flex: 1; }
  #menu-search { margin-left: 0; min-width: 0; flex: 1; width: 50%; }
  .menu-card summary { padding: 22px 23px 16px; }
  .menu-card-details { padding: 0 23px 20px; }
  .menu-page .tagline { display: none; }
  .topbar nav { gap: 6px; }
  .topbar nav .quiet { padding: 7px 5px; }
}
@media print { .menu-toolbar, .menu-footer, .host-recipe-link { display: none; } .menu-card { break-inside: avoid; box-shadow: none; } }
