:root{--night:#082f57;--ink:#142b3b;--teal:#4fb7aa;--orange:#f28d3f;--maize:#f4c95d;--cream:#fff4d8;--coral:#ef6c55;--green:#217a67;--paper:#fffaf0;--line:rgba(8,47,87,.18);--muted:#617278}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.5 Trebuchet MS,Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}.loading-screen{display:grid;place-items:center;min-height:100vh;color:var(--night);font:1.2rem Georgia,serif}.public-site{background:var(--paper);color:var(--ink);min-height:100vh}.topline{background:var(--orange);color:var(--ink);font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;text-align:center;padding:8px 5vw;border-bottom:2px solid var(--ink)}.public-nav{position:sticky;top:0;z-index:20;background:var(--night);color:var(--cream);display:flex;align-items:center;gap:26px;padding:12px 5vw;box-shadow:0 5px 0 rgba(0,0,0,.08)}.brand{display:flex;align-items:center;gap:10px;font:700 1.1rem Georgia,serif;white-space:nowrap}.brand img{width:48px;height:48px;object-fit:cover;border-radius:50%;border:2px solid var(--teal)}.public-nav nav{display:flex;align-items:center;gap:19px;margin-left:auto;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;font-weight:bold}.public-nav nav a:hover{color:var(--maize)}.order-button{background:var(--maize);color:var(--ink);padding:10px 14px;border:2px solid var(--ink);box-shadow:4px 4px 0 var(--orange)}.hero{background:var(--night);color:var(--cream);padding:48px 5vw 65px;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;inset:auto -5% -75px;height:130px;background:var(--paper);transform:rotate(-2deg);border-top:3px solid var(--maize)}.hero-grid{max-width:1240px;margin:auto;display:grid;grid-template-columns:1.04fr .96fr;gap:48px;align-items:center}.eyebrow{color:var(--maize);text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:bold}.hero h1{font:700 clamp(3rem,7vw,6.8rem)/.92 Georgia,serif;letter-spacing:-.06em;margin:18px 0 22px;max-width:760px}.hero h1 em{color:var(--teal);font-style:normal}.hero p{font-size:1.15rem;max-width:540px;color:#d9efe8}.action-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}.button{display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--ink);padding:11px 16px;background:var(--maize);color:var(--ink);font-weight:900;box-shadow:5px 5px 0 var(--orange)}.button.secondary{background:transparent;color:var(--cream);border-color:var(--teal);box-shadow:none}.button.light{background:var(--cream);box-shadow:none}.button.danger{background:#ffe1d6;color:#8e3326;border-color:#8e3326;box-shadow:none}.button.small{font-size:.82rem;padding:7px 10px;box-shadow:2px 2px 0 var(--orange)}.hero-note{margin-top:25px;display:flex;gap:13px;align-items:center;font-size:.85rem;color:#add9d0}.stamp{border:2px solid var(--coral);color:var(--coral);padding:6px 8px;transform:rotate(-4deg);font-size:.7rem;text-transform:uppercase;font-weight:bold;letter-spacing:.08em}.hero-art{display:grid;grid-template-columns:1.1fr .72fr;gap:13px;align-items:end;position:relative}.hero-art img{width:100%;height:440px;object-fit:cover;border:4px solid var(--cream);box-shadow:13px 13px 0 var(--orange)}.hero-art img.small{height:250px;box-shadow:8px 8px 0 var(--teal);margin-bottom:28px}.sunburst{position:absolute;right:-24px;top:-26px;color:var(--maize);font:1.1rem Georgia,serif;writing-mode:vertical-rl;letter-spacing:.16em;text-transform:uppercase}.pica{height:20px;background:linear-gradient(135deg,transparent 9px,var(--maize) 10px,var(--maize) 18px,transparent 19px) 0 0/38px 20px repeat-x;filter:drop-shadow(0 2px 0 var(--ink))}.section{padding:90px 5vw;max-width:1320px;margin:auto}.section-wide{width:100%}.section-inner{max-width:1320px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:30px;border-bottom:2px solid var(--ink);padding-bottom:14px}.section-kicker{color:var(--green);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;font-weight:bold}.section h2{font:700 clamp(2.4rem,5vw,4.5rem)/.95 Georgia,serif;letter-spacing:-.05em;margin:7px 0 0}.section-head p{max-width:470px;margin:0;color:var(--muted)}.story{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:center}.story p{font-size:1.15rem}.story-art{position:relative}.story-art img{width:86%;height:390px;object-fit:cover;border:3px solid var(--ink);display:block;margin-left:auto}.story-art span{position:absolute;bottom:-18px;left:0;background:var(--coral);padding:10px 14px;font:700 italic 1rem Georgia,serif;transform:rotate(-5deg)}.specials{background:var(--maize)}.special-grid,.event-list{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.special-card{background:var(--cream);border:2px solid var(--ink);padding:22px;min-height:190px;box-shadow:8px 8px 0 var(--ink)}.special-card h3{font:700 1.8rem/1 Georgia,serif;margin:8px 0}.special-card .when,.event-card .date{color:var(--green);font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;font-weight:bold}.special-card .price{color:var(--coral);font-weight:bold}.menu-layout{display:grid;grid-template-columns:250px 1fr;gap:44px}.menu-tabs{display:flex;flex-direction:column;gap:8px;position:sticky;top:96px;align-self:start}.menu-tab{display:flex;flex-direction:column;gap:2px;background:transparent;border:0;border-left:4px solid transparent;text-align:left;padding:12px 14px;color:#567079;font-weight:bold;font-size:1rem}.menu-tab small{font-size:.7rem;font-weight:normal;color:#7b8b8f}.menu-tab.active,.menu-tab:hover{border-left-color:var(--orange);color:var(--ink);background:#fff1cc}.menu-tab.active small{color:var(--green)}.menu-panel h3{font:700 2.3rem/1 Georgia,serif;margin:0 0 4px}.menu-panel>p{color:var(--muted)}.menu-item{display:grid;grid-template-columns:1fr auto;gap:8px 20px;padding:20px 0;border-top:1px dashed var(--line)}.menu-item h4{font:700 1.3rem Georgia,serif;margin:0}.menu-item p{grid-column:1;color:var(--muted);margin:0;max-width:590px}.menu-item .price{grid-column:2;grid-row:1/3;color:var(--coral);font-weight:bold;font-size:1.15rem}.tag{display:inline-block;background:var(--teal);color:var(--ink);padding:3px 7px;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;margin-left:10px;vertical-align:middle}.bar-band{background:var(--teal);padding:26px 5vw;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);display:flex;align-items:center;justify-content:space-between;gap:20px}.bar-band>div{max-width:760px}.bar-band h2{font:700 2rem Georgia,serif;margin:0}.events{background:var(--night);color:var(--cream)}.events .section-head{border-color:var(--teal)}.events .section-kicker{color:var(--maize)}.events .section-head p{color:#badbd3}.event-card{border:2px solid var(--teal);padding:22px;min-height:200px;position:relative}.event-card:after{content:"↗";position:absolute;right:17px;bottom:14px;color:var(--maize);font-size:1.6rem}.event-card h3{font:700 1.8rem/1 Georgia,serif;margin:14px 0 10px}.event-card p{color:#c3ded7}.order-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.order-card{border:2px solid var(--ink);padding:27px;background:#fff1cc;min-height:230px}.order-card h3{font:700 2.1rem Georgia,serif;margin:0}.delivery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:22px}.delivery{border:2px solid var(--ink);padding:14px;background:var(--cream);font-weight:bold}.delivery span{display:block;color:var(--muted);font-size:.8rem;font-weight:normal}.contact{background:var(--coral)}.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:42px}.contact h2{font:700 4rem/.94 Georgia,serif;margin:0}.contact-list{display:grid;gap:17px}.contact-list div{border-bottom:2px solid rgba(20,43,59,.35);padding-bottom:12px}.contact-list strong{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem}.contact-list a{text-decoration:underline}.socials{font-weight:bold}.footer{background:var(--ink);color:var(--cream);padding:28px 5vw;display:flex;justify-content:space-between;gap:20px;font-size:.9rem}.admin-shell{min-height:100vh;background:var(--paper);color:var(--ink)}.admin-top{background:var(--night);color:var(--cream);padding:15px 5vw;display:flex;align-items:center;justify-content:space-between;gap:20px}.admin-brand{display:flex;align-items:center;gap:12px}.admin-brand img{width:48px;height:48px;border-radius:50%;border:2px solid var(--teal);object-fit:cover}.admin-brand strong{display:block;font:700 1.3rem Georgia,serif}.admin-brand span{display:block;color:#b9dcd4;font-size:.78rem}.admin-actions{display:flex;align-items:center;gap:17px}.admin-actions a{color:var(--maize);font-weight:bold}.admin-actions form{margin:0}.admin-actions button{border:1px solid var(--teal);color:var(--cream);background:transparent;padding:8px 12px}.admin-layout{max-width:1440px;margin:auto;display:grid;grid-template-columns:235px 1fr;min-height:calc(100vh - 78px)}.admin-side{background:#edf4e8;border-right:1px solid var(--line);padding:28px 16px}.admin-side-intro{padding:0 10px 18px;border-bottom:1px solid var(--line);margin-bottom:16px}.admin-side-intro strong{display:block;font:700 1.35rem Georgia,serif}.admin-side-intro span{color:var(--muted);font-size:.88rem}.admin-side nav{display:grid;gap:5px}.admin-side nav button{border:0;background:transparent;color:#47636a;text-align:left;padding:12px;font-weight:bold;border-left:4px solid transparent}.admin-side nav button.active,.admin-side nav button:hover{background:var(--cream);color:var(--ink);border-left-color:var(--orange)}.admin-side nav button span{display:inline-block;width:25px;color:var(--green)}.admin-side-foot{border-top:1px solid var(--line);margin-top:24px;padding:17px 10px;color:var(--muted);font-size:.8rem}.admin-main,.account-main{padding:34px clamp(20px,4vw,60px) 70px;max-width:1320px;width:100%;margin:auto}.admin-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;border-bottom:2px solid var(--ink);padding-bottom:20px;margin-bottom:26px}.admin-heading h1{font:700 clamp(2.3rem,4vw,4rem)/.96 Georgia,serif;letter-spacing:-.04em;margin:7px 0 0}.admin-heading>p{max-width:530px;color:var(--muted);margin:0}.save-bar{display:none;position:sticky;top:0;z-index:4;justify-content:space-between;align-items:center;gap:15px;background:var(--maize);border:2px solid var(--ink);box-shadow:5px 5px 0 var(--orange);padding:12px 15px;margin:-8px 0 22px}.save-bar.show{display:flex}.admin-notice{background:#e7f5ee;border-left:5px solid var(--green);padding:13px 15px;margin-bottom:20px;color:#385860}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.quick-grid button{border:2px solid var(--ink);background:var(--cream);text-align:left;padding:18px;min-height:145px;position:relative;color:var(--ink)}.quick-grid button:hover{box-shadow:5px 5px 0 var(--orange);transform:translateY(-2px)}.quick-grid strong{display:block;font:700 1.3rem Georgia,serif}.quick-grid span{display:block;color:var(--muted);margin-top:6px}.quick-grid b{position:absolute;right:15px;bottom:10px;color:var(--coral);font-size:1.5rem}.admin-card-grid,.account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.admin-card{background:var(--white);border:2px solid var(--ink);padding:23px;box-shadow:7px 7px 0 var(--teal);margin-bottom:20px;min-width:0}.admin-card h2{font:700 1.65rem Georgia,serif;margin:0 0 8px}.admin-card p,.muted-note{color:var(--muted)}.repeat-card{padding:18px}.repeat-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:10px}.field{display:grid;gap:5px;margin:14px 0}.field label,.field-kicker{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;font-weight:bold}.field input,.field textarea,.field select,.auth-form input{width:100%;border:1px solid #9db3af;border-radius:0;background:#fffdf7;color:var(--ink);padding:10px 11px}.field textarea{min-height:90px;resize:vertical}.field small{color:var(--muted);font-size:.84rem}.dish-list{display:grid;gap:13px;margin:13px 0}.dish-row{border-top:1px dashed var(--line);padding-top:12px}.dish-row .field{margin:8px 0}.text-danger{border:0;background:transparent;color:#8e3326;font-weight:bold;padding:4px 0}.check{display:flex;align-items:center;gap:9px;margin:15px 0;color:#4e6268;font-weight:bold}.check input{width:19px;height:19px;accent-color:var(--green)}.empty-state{border:2px dashed #abc2bc;padding:30px;text-align:center;color:var(--muted);background:#fbfff9}.empty-state strong{display:block;color:var(--ink);font:700 1.2rem Georgia,serif;margin-bottom:10px}.color-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.color-field label{display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.07em;font-weight:bold;margin-bottom:5px}.color-field input[type=color]{width:100%;height:42px;padding:3px}.color-field input[type=text]{width:100%;border:1px solid #b6c7c2;padding:8px;margin-top:5px}.logo-preview{width:150px;height:150px;object-fit:cover;border-radius:50%;border:3px solid var(--teal);margin-top:15px}.user-list{display:grid;gap:10px;margin-top:18px}.user-row{display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid var(--line);background:#fffdf7;padding:13px}.user-row strong,.user-row small{display:block}.user-row small{color:var(--muted);font-size:.82rem}.current-user{color:var(--green);font-weight:bold}.center-page{min-height:100vh;display:grid;place-items:center;padding:40px 20px;background:var(--night)}.auth-card{width:min(100%,500px);background:var(--cream);border:3px solid var(--ink);box-shadow:10px 10px 0 var(--orange);padding:38px}.auth-logo{display:flex}.auth-logo img{width:78px;height:78px;object-fit:cover;border-radius:50%;border:3px solid var(--teal);margin-bottom:20px}.auth-card h1{font:700 2.7rem/.96 Georgia,serif;margin:8px 0 15px}.auth-card p{color:#52646a}.auth-form{display:grid;gap:15px;margin-top:20px}.auth-form label{display:grid;gap:6px;font-weight:bold}.auth-form button{justify-self:start}.auth-footnote{font-size:.9rem;margin-bottom:0}.auth-footnote a{text-decoration:underline;font-weight:bold}.form-error{background:#ffe1d6;border-left:5px solid var(--coral);padding:11px 13px;color:#733c31;margin-top:15px}.form-success{background:#e7f5ee;border-left:5px solid var(--green);padding:11px 13px;color:#385860;margin-top:16px}.validation-errors{background:#ffe1d6;padding:10px 13px;color:#733c31}.account-main{max-width:1250px}.account-main code{background:#e9efea;padding:2px 5px}
@media(max-width:900px){.hero-grid,.story,.contact-inner,.order-grid{grid-template-columns:1fr}.hero-art{max-width:650px}.special-grid,.event-list{grid-template-columns:1fr}.admin-layout{grid-template-columns:190px 1fr}.quick-grid{grid-template-columns:1fr 1fr}.color-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.public-nav{display:block}.public-nav nav{margin-top:13px;overflow:auto;justify-content:flex-start}.public-nav nav a{white-space:nowrap}.hero h1{font-size:3.3rem}.hero-art img{height:300px}.hero-art img.small{height:210px}.section{padding:68px 5vw}.menu-layout{grid-template-columns:1fr}.menu-tabs{position:static;display:flex;flex-direction:row;overflow:auto;border-bottom:1px solid var(--line)}.menu-tab{white-space:nowrap;border-left:0;border-bottom:4px solid transparent}.menu-tab.active{border-left:0;border-bottom-color:var(--orange)}.delivery-grid{grid-template-columns:1fr}.footer{display:block}.admin-top{display:block}.admin-actions{margin-top:12px;justify-content:space-between}.admin-layout{display:block}.admin-side{border-right:0;border-bottom:1px solid var(--line);padding:10px 14px}.admin-side-intro,.admin-side-foot{display:none}.admin-side nav{display:flex;overflow:auto}.admin-side nav button{white-space:nowrap;border-left:0;border-bottom:4px solid transparent;padding:10px}.admin-side nav button.active{border-left:0;border-bottom-color:var(--orange)}.admin-main,.account-main{padding:25px 16px 55px}.admin-heading{display:block}.admin-heading .button{margin-top:14px}.admin-card-grid,.account-grid{grid-template-columns:1fr}.quick-grid{grid-template-columns:1fr}.color-grid{grid-template-columns:repeat(2,1fr)}.contact h2{font-size:3.2rem}}@media(max-width:500px){.hero-art{grid-template-columns:1.1fr .72fr}.hero-art img{height:240px}.hero-art img.small{height:170px}.auth-card{padding:26px}.auth-card h1{font-size:2.2rem}}

/* ===========================================================================
   Luna Y Sol - additions for the finished site.
   Same vocabulary as above: hard ink borders, offset shadows, Georgia
   headings, uppercase letterspaced kickers.
   =========================================================================== */

/* --- Accessibility ------------------------------------------------------- */
.skip-link{position:absolute;left:-9999px;top:0;z-index:99;background:var(--maize);color:var(--ink);
  border:2px solid var(--ink);padding:10px 16px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.skip-link:focus{left:8px;top:8px}
:focus-visible{outline:3px solid var(--orange);outline-offset:2px}

/* --- Top strip ----------------------------------------------------------- */
.topline{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap}
.topline-call{color:inherit;font-weight:800}
.topline-dot{opacity:.6}

/* --- Menu extras --------------------------------------------------------- */
.tag.featured{background:var(--maize)}
.tag.muted{background:transparent;border:1px dashed var(--muted);color:var(--muted)}
.menu-item.sold-out h4,.menu-item.sold-out p,.menu-item.sold-out .price{opacity:.55}
.menu-item.sold-out .price{text-decoration:line-through}

/* --- Events -------------------------------------------------------------- */
.event-card{display:block}
.event-link{display:inline-block;margin-top:12px;color:var(--maize);font-weight:800;
  text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;border-bottom:2px solid var(--maize)}

/* --- The post wall ------------------------------------------------------- */
.post-wall{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.post-card{background:#fff;border:2px solid var(--ink);box-shadow:6px 6px 0 var(--coral);overflow:hidden;
  display:flex;flex-direction:column}
.post-card img{width:100%;height:210px;object-fit:cover;display:block;border-bottom:2px solid var(--ink)}
.post-body{padding:16px}
.post-meta{display:flex;gap:10px;align-items:center;margin-bottom:8px}
.post-platform{background:var(--night);color:var(--cream);font-size:.68rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.1em;padding:4px 8px}
.post-date{color:var(--muted);font-size:.78rem}
.post-body p{margin:0 0 10px;color:var(--ink)}
.post-body a{font-weight:800;color:var(--green);border-bottom:2px solid var(--teal);font-size:.85rem}

/* --- Footer -------------------------------------------------------------- */
.footer{display:block;padding:34px 5vw 22px}
.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px}
.footer-brand{display:flex;gap:14px;align-items:center;max-width:420px}
.footer-brand img{width:54px;height:54px;object-fit:cover;border:2px solid var(--maize)}
.footer-brand strong{display:block;font:700 1.1rem Georgia,serif}
.footer-brand span{color:rgba(255,244,216,.72);font-size:.86rem}
.footer-details{display:grid;gap:6px;font-size:.9rem;color:rgba(255,244,216,.85)}
.footer-details a{color:var(--maize)}
.footer-social{display:flex;gap:12px;flex-wrap:wrap;margin-top:4px}
.footer-social a{font-weight:800;text-transform:uppercase;letter-spacing:.07em;font-size:.76rem}
.footer-legal{margin-top:22px;padding-top:14px;border-top:1px solid rgba(255,244,216,.22);
  font-size:.78rem;color:rgba(255,244,216,.6)}

/* --- Staff-written pages ------------------------------------------------- */
.article-page{max-width:760px}
.article-page h1{font:700 2.6rem Georgia,serif;margin:6px 0 20px;color:var(--night)}
.article-body p{font-size:1.06rem;line-height:1.75;color:var(--ink);margin:0 0 18px}

/* ===========================================================================
   Admin area. Clarity first: big targets, obvious labels, no decoration
   that competes with the task.
   =========================================================================== */

.admin-heading.spaced{margin-top:34px}
.admin-actions .who{display:flex;flex-direction:column;line-height:1.25;color:var(--cream);font-size:.85rem}
.admin-actions .who small{color:var(--maize);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}

.section-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}

/* Food / bar switch */
.segmented{display:flex;gap:0;margin-bottom:18px;border:2px solid var(--ink);width:fit-content;max-width:100%;flex-wrap:wrap}
.segmented button{background:#fff;border:0;border-right:2px solid var(--ink);padding:12px 20px;cursor:pointer;
  font-weight:800;color:var(--ink);display:flex;flex-direction:column;gap:2px;align-items:flex-start}
.segmented button:last-child{border-right:0}
.segmented button small{font-weight:600;color:var(--muted);text-transform:none;letter-spacing:0;font-size:.72rem}
.segmented button.active{background:var(--maize)}
.segmented button.active small{color:#6a5410}

/* Save bar */
.save-bar{display:flex;opacity:.55}
.save-bar.show{opacity:1}
.save-bar.blocked{background:#ffd9d2;box-shadow:5px 5px 0 var(--coral)}
.save-status{display:flex;flex-direction:column;gap:2px}
.save-status small{font-weight:600;color:#5d4a12}
.save-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}
.save-bar .button[disabled]{opacity:.45;cursor:not-allowed}

/* Validation */
.problem-list ul{margin:8px 0 0;padding-left:20px}
.problem-list li{margin-bottom:5px}
.linkish{background:none;border:0;padding:0 0 0 6px;color:var(--green);font-weight:800;
  text-decoration:underline;cursor:pointer;font-size:.9em}
.field.has-problem input,.field.has-problem textarea{border-color:var(--coral);background:#fff6f4}
.field-problem{color:#b23a26;font-weight:700}
.field label .required{margin-left:8px;background:var(--coral);color:#fff;font-size:.6rem;
  padding:2px 6px;letter-spacing:.06em}

/* Grids inside cards */
.admin-card-grid.tight{gap:14px;margin:0}
.dish-grid{display:grid;grid-template-columns:2fr 1fr;gap:14px}
.inline-controls{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;margin:10px 0}
.inline-controls .check{margin:6px 0}
.kind-field{min-width:240px}
.field select{width:100%;padding:11px 12px;border:2px solid var(--ink);background:#fff;
  font-size:1rem;font-family:inherit;color:var(--ink)}

/* Bigger, friendlier switches */
.check{align-items:flex-start;gap:11px}
.check input{margin-top:2px;flex-shrink:0}
.check span{display:flex;flex-direction:column;gap:2px}
.check span small{font-weight:600;color:var(--muted);text-transform:none;letter-spacing:0}

/* Repeatable rows */
.row-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.chip{width:36px;height:36px;border:2px solid var(--ink);background:#fff;cursor:pointer;
  font-size:1rem;font-weight:800;color:var(--ink);line-height:1}
.chip:hover:not([disabled]){background:var(--maize)}
.chip[disabled]{opacity:.3;cursor:not-allowed}
.confirm-strip{display:inline-flex;flex-wrap:wrap;gap:8px;align-items:center;background:#fff2ef;
  border:2px dashed var(--coral);padding:7px 11px;font-weight:700;color:#8e3323;font-size:.88rem}
.link-list{display:grid;gap:16px;margin-bottom:18px}
.link-row{border:2px solid var(--line);padding:16px;background:#fdfdfb}
.empty-state.small{padding:18px;margin-bottom:14px}
.empty-state p{margin:0 0 12px}

/* Picture library */
.image-picker{border:2px solid var(--line);padding:16px;background:#fdfdfb;margin:16px 0}
.image-picker-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;margin-bottom:10px}
.image-picker-current{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.image-picker-current img{width:96px;height:96px;object-fit:cover;border:2px solid var(--ink)}
.image-picker-current code{display:block;font-size:.78rem;color:var(--muted);margin-bottom:8px;word-break:break-all}
.image-picker-actions{display:flex;gap:8px;flex-wrap:wrap}
.image-placeholder{width:96px;height:96px;border:2px dashed var(--muted);display:flex;align-items:center;
  justify-content:center;text-align:center;font-size:.72rem;color:var(--muted);padding:6px}
.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:12px;margin-top:16px}
.image-grid.library{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
.image-option{border:2px solid var(--ink);background:#fff;padding:0;cursor:pointer;text-align:left;
  display:flex;flex-direction:column;margin:0;overflow:hidden}
.image-option img{width:100%;height:96px;object-fit:cover;display:block}
.image-grid.library .image-option img{height:120px}
.image-option span,.image-option figcaption{padding:7px 8px;font-size:.72rem;color:var(--muted);
  word-break:break-all;display:flex;flex-direction:column;gap:6px}
.image-option.selected{box-shadow:0 0 0 4px var(--teal)}
.image-upload{margin-top:16px;display:flex;flex-direction:column;gap:6px}
.image-upload small{color:var(--muted);font-size:.8rem}
.upload-button{position:relative;overflow:hidden;display:inline-block;cursor:pointer}
.upload-button input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}

/* Colour preview */
.color-inputs{display:flex;gap:8px;align-items:center}
.color-hex{flex:1;min-width:0;padding:9px 10px;border:2px solid var(--ink);font-family:ui-monospace,Menlo,monospace}
.color-field small{display:block;margin-top:5px;color:var(--muted);font-size:.78rem}
.palette-preview{border:2px solid var(--ink);overflow:hidden}
.palette-hero{background:var(--p-night);color:var(--p-cream);padding:26px 20px;display:flex;
  flex-direction:column;gap:9px}
.palette-eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--p-maize);font-weight:800}
.palette-hero strong{font:700 1.7rem Georgia,serif}
.palette-buttons{display:flex;gap:9px;flex-wrap:wrap;margin-top:6px}
.palette-button{background:var(--p-orange);color:#20160a;padding:8px 14px;font-weight:800;font-size:.8rem;
  border:2px solid rgba(0,0,0,.35)}
.palette-button.ghost{background:transparent;color:var(--p-cream);border-color:var(--p-cream)}
.palette-swatches{display:flex;height:34px}
.palette-swatches span{flex:1}

/* Staff accounts */
.stat-list{margin:0 0 14px;padding-left:20px;color:#4e6268;line-height:1.85}
.stat-list strong{color:var(--ink)}
.role-notes{margin:8px 0;padding-left:20px;line-height:1.7}
.user-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start;
  border:2px solid var(--line);padding:16px;background:#fdfdfb}
.user-row.disabled{background:#f4f4f2;border-style:dashed}
.user-identity{display:flex;flex-direction:column;gap:3px}
.user-identity strong{font-size:1.1rem}
.user-identity small{color:#4e6268;font-size:.82rem}
.user-identity small.muted{color:var(--muted);font-size:.76rem}
.user-actions{display:flex;gap:8px}
.user-editor{grid-column:1/-1;border-top:2px dashed var(--line);padding-top:16px;margin-top:6px}
.user-editor hr{border:0;border-top:1px dashed var(--line);margin:20px 0}
.user-danger{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.badge{display:inline-block;width:fit-content;margin-top:5px;font-size:.66rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.09em;padding:3px 8px;border:2px solid var(--ink)}
.badge.off{background:var(--coral);color:#fff}
.badge.you{background:var(--teal);color:var(--ink)}

@media(max-width:700px){
  .dish-grid{grid-template-columns:1fr}
  .user-row{grid-template-columns:1fr}
  .footer-inner{flex-direction:column}
  .post-card img{height:190px}
}

/* ===========================================================================
   Fixes found by looking at the finished pages.
   =========================================================================== */

/* --white was referenced by .admin-card but never defined, so the cards fell back
   to no background at all. */
:root{--white:#ffffff}

/* .button.secondary is cream-on-transparent, which is right on the navy hero and
   invisible on a white admin card. Give it ink where it sits on a light surface. */
.admin-card .button.secondary,
.admin-main .button.secondary,
.account-main .button.secondary,
.auth-card .button.secondary{color:var(--ink);border-color:var(--green);background:transparent}
.admin-card .button.secondary:hover,
.admin-main .button.secondary:hover,
.account-main .button.secondary:hover{background:var(--cream)}

/* The overview's summary cards sat flush against the shortcut grid above them. */
.quick-grid{margin-bottom:26px}
.quick-grid + .admin-card-grid{margin-top:4px}

/* Phone navigation: wrap the links instead of hiding them behind a sideways scroll,
   so "Order online" is never cut off the right-hand edge. */
@media(max-width:700px){
  .public-nav nav{flex-wrap:wrap;overflow:visible;gap:12px 16px;row-gap:12px}
  .public-nav nav a{white-space:nowrap}
  .order-button{order:99}
  /* The vertical badge hangs off the right edge and has nowhere to go on a phone. */
  .sunburst{display:none}
  .hero-note{flex-wrap:wrap}
  .topline{font-size:.7rem;letter-spacing:.06em}
  .post-card,.special-card{box-shadow:4px 4px 0 var(--teal)}
  .article-page h1{font-size:2rem}
}

/* Keep long staff-typed words (a pasted ordering link, say) inside their card. */
.menu-item h4,.post-body p,.contact-list span,.delivery{overflow-wrap:anywhere}
.image-picker-current code{overflow-wrap:anywhere}

/* Tabs in the admin area are buttons; make the focus ring obvious for keyboard users. */
.admin-side nav button:focus-visible,.segmented button:focus-visible,.menu-tab:focus-visible{
  outline:3px solid var(--orange);outline-offset:-3px}
