/* MonLunch v5.2 — Editorial / DIN-inspired x Apple-system typography
 * Visual-only extension layered after app.css and v5/v5.1.
 * Never change ordering, cart, payment, reports or admin permissions.
 * Barlow Condensed is open-source (SIL OFL); typeface is loaded from Google Fonts.
 */
@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;500;600;700;800&display=swap');
:root{
 --ml52-ink:#18231e;
 --ml52-forest:#173f32;
 --ml52-accent:#1b684c;
 --ml52-line:#e2e8e1;
 --ml52-soft:#f5f7f3;
 --ml52-warm:#fdfdfa;
 --ml52-muted:#657269;
 --ml52-display:'Barlow Condensed','DIN Condensed','Arial Narrow','Noto Sans Condensed','Liberation Sans Narrow',sans-serif;
 --ml52-ui:-apple-system,BlinkMacSystemFont,'Inter','Helvetica Neue',Arial,sans-serif;
}
.ml-public,.ml-admin{
 --bg:var(--ml52-warm);
 --surface:#fff;
 --ink:var(--ml52-ink);
 --muted:var(--ml52-muted);
 --brand:var(--ml52-accent);
 --border:var(--ml52-line);
 --shadow:none;
 background:var(--ml52-warm);
 color:var(--ml52-ink);
 font-family:var(--ml52-ui);
 -webkit-font-smoothing:antialiased;
 text-rendering:optimizeLegibility;
 font-feature-settings:'kern';
}
.ml-public .wrap,.ml-admin .wrap{max-width:1340px}
.ml-public a,.ml-admin a{transition:color .15s,border-color .15s,background-color .15s}
/* Keep the recognisable floating navigation, but remove the fake-app sheen. */
.ml-public .top,.ml-admin .top{padding:21px 20px 0;background:transparent;border:0}
.ml-public .top .wrap.nav,.ml-admin .top .wrap.nav{
 max-width:1320px;min-height:74px;padding:9px 12px 9px 22px;
 border-radius:100px;
 background:#173f32;
 border:1px solid #234e3d;
 box-shadow:0 8px 23px rgba(17,47,32,.085);
 gap:20px;
}
.ml-public .top .logo,.ml-admin .top .logo{
 gap:10px;color:#fff;font-family:var(--ml52-display);
 font-size:29px;line-height:1;letter-spacing:.008em;font-weight:700;
 text-transform:uppercase;
}
.ml-public .top .ml-brand-mark,.ml-admin .top .ml-brand-mark{
 border-radius:50%;width:37px;height:37px;flex:none;
 font-size:0;background:#f2f4ea;color:#123b2d;
 box-shadow:none;
}
.ml-public .top .ml-brand-mark::after,.ml-admin .top .ml-brand-mark::after{
 content:'M';display:block;font-family:var(--ml52-display);font-size:25px;line-height:37px;font-weight:800;text-align:center;
}
.ml-public .top nav,.ml-admin .top nav{
 font-family:var(--ml52-ui);gap:2px;font-size:12px;letter-spacing:.004em;font-weight:600;
}
.ml-public .top nav a,.ml-admin .top nav a{
 border:1px solid transparent;border-radius:100px;white-space:nowrap;
 padding:12px 15px;color:#e8f0e9;
 transition:background-color .16s,color .16s;
}
.ml-public .top nav a:hover,.ml-admin .top nav a:hover,
.ml-public .top nav a[aria-current='page'],.ml-admin .top nav a[aria-current='page']{
 background:#285343;border-color:#315948;color:#fff;text-decoration:none;
}
.ml-public .nav nav .ml-nav-cta,.ml-admin .top nav a.ml-admin-logout{
 background:#f4f5ed;color:#173f32;border-color:#f4f5ed;font-size:12px;
 font-weight:700;box-shadow:none;margin-left:12px;padding:13px 20px;
}
.ml-public .nav nav .ml-nav-cta:hover,.ml-admin .top nav a.ml-admin-logout:hover{
 transform:none;background:white;color:#173f32;
}
/* Editorial typography: assertive display, quieter working text */
.ml-public .page-head,.ml-admin .page-head{margin:49px 0 29px;align-items:end;gap:24px}
.ml-public .page-head h1,.ml-admin .page-head h1{
 font-family:var(--ml52-display);font-size:clamp(48px,6vw,78px);
 line-height:.88;letter-spacing:-.008em;font-weight:700;
 text-transform:uppercase;color:var(--ml52-ink);max-width:850px;
}
.ml-public h2,.ml-admin h2{
 font-family:var(--ml52-display);font-weight:700;
 font-size:clamp(26px,2.8vw,37px);line-height:1.04;
 letter-spacing:.004em;text-transform:uppercase;color:var(--ml52-ink);
}
.ml-public h3,.ml-admin h3{
 font-family:var(--ml52-ui);font-size:15px;font-weight:650;
 letter-spacing:-.018em;color:var(--ml52-ink);
}
.ml-public .eyebrow,.ml-admin .eyebrow,.ml-public .ml-eyebrow{
 text-transform:uppercase;letter-spacing:.16em;
 font-size:10px;font-weight:750;color:#586a5e;
}
.ml-public .page-head .muted.small,.ml-admin .page-head .muted.small{
 background:transparent;border:0;border-radius:0;padding:0;
 color:#6e7971;font-size:11px;font-weight:550;letter-spacing:.02em;
}
.ml-public .card,.ml-admin .card{
 background:#fff;border:1px solid var(--ml52-line);border-radius:12px;
 box-shadow:none;padding:25px;margin-bottom:17px;
}
.ml-public .grid,.ml-admin .grid{gap:14px}
/* KPI design: a huge precise number rather than gradients and coloured strips. */
.ml-admin .grid>.card:has(.metric){
 background:#fff;padding:28px 26px 27px;border:1px solid var(--ml52-line);
 border-radius:12px;box-shadow:none;
}
.ml-admin .grid>.card:has(.metric):before{display:none}
.ml-admin .metric,.ml-public .metric{
 font-family:var(--ml52-display);color:#1a4737;
 font-size:clamp(48px,5vw,69px);font-weight:700;line-height:1;
 letter-spacing:0;font-variant-numeric:tabular-nums;
 margin:8px 0 10px;
}
.ml-admin .grid>.card:has(.metric) .muted.small{font-size:11px;line-height:1.4}
/* Public menus: gallery becomes the visual hero, no green-tinted bubble cards. */
.ml-public .ml-hero{
 border-radius:13px;background:#fff;
 border:1px solid var(--ml52-line);box-shadow:none;
}
.ml-public .ml-hero-copy{padding:clamp(28px,4.5vw,57px)}
.ml-public .ml-hero-copy h2{
 font-family:var(--ml52-display);font-size:clamp(47px,5vw,72px);
 font-weight:700;line-height:.94;letter-spacing:0;text-transform:uppercase;
 color:#1b3025;margin:6px 0 23px;
}
.ml-public .ml-hero-details{color:#596a5d;font-size:13px;line-height:1.7}
.ml-public .ml-hero-media.ml-gallery{background:#f3f3ee;padding:6px;gap:6px}
.ml-public .ml-gallery .ml-gallery-item{border-radius:5px}
.ml-public .ml-day-preview{
 border-radius:10px;border:1px solid var(--ml52-line);box-shadow:none;
 padding:24px;background:#fff;
}
.ml-public .ml-day-name{font-family:var(--ml52-display);font-size:26px;font-weight:700;text-transform:uppercase;color:#1b3328}
.ml-public .ml-price{font-variant-numeric:tabular-nums;font-size:16px;letter-spacing:-.02em;color:#183a2a}
.ml-public .ml-school-head,.ml-public .ml-bottom-cta{
 background:#f2f6ee;border:1px solid #e2e8dd;
 border-radius:11px;box-shadow:none;
}
.ml-public .ml-week-tabs{gap:7px;padding-top:3px}
.ml-public .ml-week-tab{
 border:1px solid #dbe5d9;background:#fff;border-radius:7px;
 font-size:12px;font-weight:650;box-shadow:none;padding:12px 17px;
 color:#355a48;
}
.ml-public .ml-week-tab:hover{transform:none;background:#f2f6f0;border-color:#bed0c0}
.ml-public .ml-week-tab.selected{
 background:#1b684c;color:#fff;border-color:#1b684c;box-shadow:none;
}
.ml-public .ml-choice-card{border-radius:9px}
.ml-public .ml-step{border-radius:6px;background:#1b684c;font-family:var(--ml52-display);font-size:22px}
.ml-public .ml-checkout{border-radius:12px;background:#173f32;border-color:#173f32;box-shadow:0 7px 20px rgba(13,56,36,.14)}
/* Buttons: concise labels, fewer enormous pill controls. */
.ml-public .btn,.ml-public button,.ml-admin .btn,.ml-admin button{
 border-radius:8px;box-shadow:none;font:650 13px/1.3 var(--ml52-ui);
 background:#1c674c;border:1px solid #1c674c;color:#fff;
 padding:11px 17px;transition:background-color .16s,border-color .16s;
}
.ml-public .btn:hover,.ml-public button:hover,.ml-admin .btn:hover,.ml-admin button:hover{
 transform:none;box-shadow:none;background:#15553f;border-color:#15553f;filter:none;color:#fff;
}
.ml-public .btn.alt,.ml-public button.alt,.ml-admin .btn.alt,.ml-admin button.alt{
 background:white;border:1px solid #cddbd0;color:#205b43;
}
.ml-public .btn.alt:hover,.ml-public button.alt:hover,.ml-admin .btn.alt:hover,.ml-admin button.alt:hover{
 background:#f4f8f3;border-color:#abbfaf;color:#174530;
}
.ml-public .btn.danger,.ml-admin .btn.danger{background:#a54343;border-color:#a54343}
.ml-public input:not([type=checkbox]):not([type=radio]),.ml-public select,.ml-public textarea,
.ml-admin input:not([type=checkbox]):not([type=radio]),.ml-admin select,.ml-admin textarea{
 background:white;border:1px solid #d7e1d7;border-radius:8px;
 color:#25372a;font:500 13px/1.4 var(--ml52-ui);
 padding:11px 13px;
}
.ml-public input:focus,.ml-public select:focus,.ml-public textarea:focus,
.ml-admin input:focus,.ml-admin select:focus,.ml-admin textarea:focus{
 outline:2px solid rgba(37,127,87,.25);outline-offset:1px;border-color:#4b9871;
}
.ml-public label,.ml-admin label{color:#425849;font-weight:600;font-size:12px}
/* Tables / payment lists: system typography and tabular numbers, not oversized UI furniture. */
.ml-admin .table-scroll{border:1px solid var(--ml52-line);border-radius:10px;overflow-x:auto}
.ml-admin table{font-size:12.5px;font-variant-numeric:tabular-nums}
.ml-admin th{
 background:#fafbf8;border-bottom:1px solid var(--ml52-line);
 text-transform:uppercase;font-size:10px;letter-spacing:.09em;
 font-weight:700;color:#778078;padding:14px 14px;
}
.ml-admin td{border-bottom:1px solid #edf0eb;color:#273c2e;padding:14px;vertical-align:middle}
.ml-admin tbody tr:hover td{background:#f8faf7}
.ml-admin .tag,.ml-admin .pill,.ml-public .ml-chip{
 border-radius:5px;box-shadow:none;font-size:10px;letter-spacing:.01em;
}
.ml-admin .tag.yes{background:#e7f4e9;color:#235b37}
.ml-admin .tag.no{background:#fff0ec;color:#9a4b35}
.ml-admin .well,.ml-admin .date-header{
 background:#f7f9f5;border:1px solid var(--ml52-line);border-radius:8px;
}
.ml-admin .notice,.ml-public .notice{background:#edf7ee;border-color:#d6e6d5;border-radius:8px}
.ml-admin .warn{border-radius:8px}
.ml-admin .prod-category,.ml-admin .prod-stat,.ml-admin .prod-group{border-radius:10px}
.ml-admin .prod-tabs a,.ml-admin .prod-date-nav a{border-radius:7px}
.ml-admin .prod-tabs a.active,.ml-admin .prod-date-nav a.selected{background:#205940;border-color:#205940;color:#fff}
.ml-admin .menu-photo{border-radius:8px}
.ml-admin .ml-admin-photo-slot{border-radius:9px}
.ml-admin .footer,.ml-public .footer{color:#8b948a;font-size:11px}
@media(max-width:1200px){
 .ml-public .top .wrap.nav,.ml-admin .top .wrap.nav{border-radius:25px}
 .ml-public .top nav,.ml-admin .top nav{overflow-x:auto;max-width:100%;scrollbar-width:thin}
}
@media(max-width:720px){
 .ml-public .top,.ml-admin .top{padding:12px 12px 0}
 .ml-public .top .wrap.nav,.ml-admin .top .wrap.nav{padding:14px 15px;border-radius:20px}
 .ml-public .top .logo,.ml-admin .top .logo{font-size:26px}
 .ml-public .top .ml-brand-mark,.ml-admin .top .ml-brand-mark{height:34px;width:34px}
 .ml-public .top .ml-brand-mark::after,.ml-admin .top .ml-brand-mark::after{font-size:22px;line-height:34px}
 .ml-public .page-head,.ml-admin .page-head{margin:32px 0 23px;align-items:start}
 .ml-public .page-head h1,.ml-admin .page-head h1{font-size:51px}
 .ml-public .card,.ml-admin .card{padding:20px;border-radius:10px}
 .ml-admin .grid>.card:has(.metric){padding:20px}
 .ml-admin .metric{font-size:53px}
 .ml-public .ml-hero-copy h2{font-size:53px}
 .ml-public .ml-day-preview{padding:19px}
}
@media(prefers-reduced-motion:reduce){.ml-public *,.ml-admin *{transition:none!important}}
/* Existing production print layout stays black, flat and compact. */
@media print{
 .ml-public,.ml-admin{background:#fff!important;color:#000!important;font-family:Arial,sans-serif!important}
 .ml-public h1,.ml-public h2,.ml-admin h1,.ml-admin h2{font-family:Arial,sans-serif!important;letter-spacing:0!important;text-transform:none!important;color:#000!important}
 .ml-admin .card,.ml-public .card,.ml-admin .grid>.card:has(.metric),.ml-public .ml-day-preview{padding:0!important;margin:0!important;border:0!important;box-shadow:none!important;border-radius:0!important}
 .ml-public .top,.ml-admin .top,.ml-admin .footer,.ml-public .footer{display:none!important}
 .ml-admin .table-scroll{border:0!important;border-radius:0!important;overflow:visible!important}
 .ml-admin table{border-collapse:collapse!important;font-size:10px!important}
 .ml-admin th,.ml-admin td{padding:6px!important;border:1px solid #888!important;background:#fff!important;color:#000!important}
 .ml-public button,.ml-admin button,.ml-public .btn,.ml-admin .btn{display:none!important}
}
