*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:#f7f8f3;color:#2f211d}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}.topbar{position:sticky;top:0;z-index:40;height:68px;background:#fff;border-bottom:1px solid #e2e8df;display:flex;align-items:center;justify-content:space-between;padding:0 15px;box-shadow:0 5px 18px #17231e10}.brand{display:flex;align-items:center;gap:9px;font-size:19px;font-weight:900;color:#176b4b}.brandmark{width:40px;height:40px;border-radius:13px;background:#eaf4ed;display:grid;place-items:center;font-size:22px}.top-actions{display:flex;align-items:center;gap:9px}.cartpill,.avatar,.loginmini{height:42px;min-width:42px;border:1px solid #ead8cf;background:#fff;border-radius:14px;display:grid;place-items:center;position:relative}.cartpill{padding:0 13px;background:#edf5eb;color:#176b4b}.cartpill b{font-size:13px}.avatar{background:#f1e2d9;color:#176b4b;font-weight:900}.loginmini{min-width:76px;padding:0 16px;background:#176b4b;color:#fff;font-weight:800;white-space:nowrap;text-align:center}.flash{max-width:1120px;margin:12px auto 0;padding:12px 15px;border-radius:13px}.flash.success{background:#eaf7ef;color:#286b47}.flash.error{background:#fff0ef;color:#a53d2c}.appmain{max-width:1120px;margin:auto;padding:15px 15px 94px}.hero{border-radius:26px;padding:27px;background:linear-gradient(135deg,#fff1df,#fffaf4 55%,#f4e0d6);display:grid;grid-template-columns:1.25fr .75fr;gap:18px;align-items:center;margin-bottom:20px;border:1px solid #f0ddd2}.hero h1{font-size:clamp(31px,5vw,50px);line-height:1.02;margin:7px 0 11px;color:#17231e}.hero p{color:#735d54;max-width:600px}.heroart{font-size:85px;text-align:center}.eyebrow{font-size:11px;letter-spacing:.15em;font-weight:900;color:#a56635}.sectionhead{display:flex;justify-content:space-between;align-items:center;margin:23px 0 12px}.sectionhead h2{margin:0;font-size:21px;color:#17231e}.link{color:#8a4b2c;font-weight:800;font-size:13px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.productcard{background:#fff;border:1px solid #e2e8df;border-radius:18px;overflow:hidden;box-shadow:0 7px 20px #17231e08}.productimg{height:170px;background:linear-gradient(135deg,#fff2e2,#f8e2d5);display:grid;place-items:center;font-size:64px;overflow:hidden}.productimg img{width:100%;height:100%;object-fit:cover}.pcbody{padding:12px}.pcbody h3{font-size:15px;margin:0 0 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#17231e}.price{font-weight:900;color:#7b3f24}.old{text-decoration:line-through;color:#a79a93;font-size:12px;margin-left:4px}.btn{border:0;border-radius:12px;padding:12px 15px;font-weight:850;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:.15s}.btn:active{transform:scale(.98)}.btn.primary{background:#176b4b;color:#fff}.btn.primary:hover{background:#104d37}.btn.green{background:#3d8a58;color:#fff}.btn.yellow{background:#e2a83d;color:#fff}.btn.light{background:#edf5eb;color:#6b3a29}.btn.block{width:100%}.cat{background:#fff;border:1px solid #e2e8df;border-radius:16px;padding:17px;text-align:center;box-shadow:0 5px 15px #17231e06}.cat .emoji{font-size:32px}.formbox{background:#fff;border:1px solid #e2e8df;border-radius:19px;padding:19px;box-shadow:0 7px 22px #17231e07}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.formgrid .full{grid-column:1/-1}label{display:block;font-size:12px;font-weight:850;margin:0 0 6px;color:#654a40}input,select,textarea{width:100%;padding:12px;border:1px solid #dbcac1;border-radius:11px;outline:0;background:#fff;color:#2f211d}input:focus,select:focus,textarea:focus{border-color:#208457;box-shadow:0 0 0 3px #20845712}textarea{min-height:95px;resize:vertical}.notice{padding:13px 14px;border-radius:13px;background:#f2f8df;border:1px solid #efdca4;margin:12px 0}.muted{color:#66736c;font-size:12px}.page-title{margin:8px 0 18px}.page-title h1{margin:5px 0;font-size:30px;color:#17231e}.bottomnav{position:fixed;left:0;right:0;bottom:0;height:72px;background:#fff;border-top:1px solid #e6d9d2;z-index:50;display:grid;grid-template-columns:repeat(5,1fr);padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -6px 22px #17231e12}.bottomnav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#9a8b84;font-size:20px}.bottomnav small{font-size:10px;font-weight:800}.bottomnav a.active{color:#176b4b}.cartrow{display:grid;grid-template-columns:70px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #eee5df}.thumb{width:70px;height:70px;border-radius:13px;background:#eaf4ed;display:grid;place-items:center;font-size:30px;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover}.qty{display:flex;border:1px solid #dbcac1;border-radius:11px;overflow:hidden;background:#fff;width:max-content;margin-top:8px}.qty button{width:36px;border:0;background:#edf5eb;font-size:18px;color:#176b4b}.qty input{width:40px;text-align:center;border:0;background:#fff;padding:8px}.summary{position:sticky;top:82px}.badge{display:inline-block;padding:5px 9px;border-radius:99px;background:#f3e4db;color:#7b3f24;font-size:11px;font-weight:850}.adminnav{display:flex;gap:8px;overflow:auto;padding-bottom:6px;margin-bottom:15px}.adminnav a{white-space:nowrap;padding:9px 12px;border-radius:10px;background:#fff;border:1px solid #e3d4cc;font-size:12px;font-weight:850;color:#176b4b}.tablewrap{overflow:auto;background:#fff;border:1px solid #e3d4cc;border-radius:15px}.table{width:100%;border-collapse:collapse;min-width:720px}.table th,.table td{padding:11px;border-bottom:1px solid #eee5df;text-align:left;font-size:12px}.search{display:flex;gap:8px;margin-bottom:15px}.search input{flex:1}.pill{display:inline-flex;padding:5px 8px;border-radius:99px;background:#eaf4ed;color:#7b3f24;font-size:11px;font-weight:800}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:850px){.grid{grid-template-columns:repeat(2,1fr)}.hero{grid-template-columns:1fr}.heroart{display:none}}@media(max-width:560px){.appmain{padding:12px 11px 92px}.grid{grid-template-columns:repeat(2,1fr);gap:9px}.productimg{height:125px}.pcbody{padding:10px}.formgrid{grid-template-columns:1fr}.formgrid .full{grid-column:auto}.summary{position:static}.hero{padding:19px;border-radius:20px}.hero h1{font-size:30px}.btn{padding:11px 12px}.cartrow{grid-template-columns:56px 1fr auto}.thumb{width:56px;height:56px}.two{grid-template-columns:1fr}}

/* Mobile Web-App hardening v3 */
@media(max-width:560px){
  body{font-size:14px;overflow-x:hidden;background:#f7f8f3}
  .topbar{height:62px;padding:0 10px;position:sticky}
  .brand{font-size:16px;gap:6px;min-width:0}.brand span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:175px}.brandmark{width:36px;height:36px;font-size:19px}
  .cartpill,.avatar,.loginmini{height:38px;min-width:38px;border-radius:12px}.loginmini{padding:0 10px}
  .appmain{padding:10px 10px 88px;max-width:100%;width:100%}
  .page-title{margin:4px 2px 12px}.page-title h1{font-size:24px;margin:3px 0}
  .hero{padding:17px;border-radius:18px;margin-bottom:14px}.hero h1{font-size:27px}.hero p{font-size:13px;line-height:1.5;margin:8px 0 12px}
  .sectionhead{margin:16px 1px 9px}.sectionhead h2{font-size:18px}
  .grid{gap:8px}
  .grid[style*="1.15fr"],.grid[style*="1.35fr"],.grid[style*="1fr .85fr"],.grid[style*="1fr .65fr"],.grid[style*="1fr 1fr"]{grid-template-columns:1fr !important}
  .productimg{height:112px}.pcbody{padding:9px}.pcbody h3{font-size:13px}.pcbody .muted{font-size:10px}.price{font-size:14px}.old{font-size:10px}
  .productcard{border-radius:14px}.btn{min-height:42px;padding:10px 11px;font-size:13px;border-radius:11px}.btn.block{width:100%}
  .formbox{padding:14px;border-radius:16px}.formbox h2{font-size:19px}.formbox h3{font-size:16px}
  .formgrid{gap:10px}.formgrid>div{min-width:0}label{font-size:11px;margin-bottom:5px}input,select,textarea{padding:11px;font-size:14px;border-radius:10px}textarea{min-height:78px}
  .search{gap:6px}.search .btn{padding-inline:12px}.search input{min-width:0}
  .cartrow{grid-template-columns:50px minmax(0,1fr) auto;gap:8px;padding:10px 0}.thumb{width:50px;height:50px;border-radius:10px}.cartrow>b,.cartrow div:last-child{font-size:12px}.qty{margin-top:6px}.qty button{width:32px}.qty input{width:34px;padding:7px}
  .summary{position:static!important}.summary h2{font-size:18px}.summary p{font-size:13px}
  .two{grid-template-columns:1fr !important}.adminnav{margin-inline:-2px}.tablewrap{max-width:100%;overflow-x:auto}
  .bottomnav{height:66px}.bottomnav a{font-size:18px}.bottomnav small{font-size:9px}
  .notice{font-size:12px;padding:11px 12px}
  .flash{margin:8px 10px 0;font-size:12px}
  .product-detail{grid-template-columns:1fr!important}
  .checkout-payments{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .pay-option{position:relative}.pay-option input{position:absolute;opacity:0;pointer-events:none}.pay-option label{display:flex;align-items:center;justify-content:center;min-height:52px;padding:10px;border:1px solid #dcc7bd;border-radius:12px;background:#fff;font-size:13px;font-weight:850;color:#176b4b;margin:0}.pay-option input:checked+label{border-color:#176b4b;background:#eaf4ed;box-shadow:0 0 0 2px #176b4b22}
  .upi-box{background:#f2f8df;border:1px solid #ecd5c4;border-radius:13px;padding:11px;margin-top:10px}.upi-box strong{font-size:13px}.upi-box small{font-size:11px}
}

/* Responsive layout patch v4 - mobile/desktop stability */
.grid > *{min-width:0}
.cart-layout,.checkout-layout{grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr)}
.account-layout{grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr)}

@media (max-width: 767px){
  html,body{width:100%;max-width:100%;overflow-x:hidden}
  .topbar{width:100%;max-width:100%;overflow:hidden}
  .brand{min-width:0;flex:1}
  .brand span:last-child{max-width:42vw}
  .top-actions{flex:0 0 auto}
  .appmain{width:100%;max-width:100%;min-width:0}

  /* Inline desktop grids are deliberately overridden on phones. */
  .cart-layout,.checkout-layout,.account-layout,
  .grid.cart-layout,.grid.checkout-layout,.grid.account-layout{
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    max-width:100%!important;
  }
  .cart-layout .summary,.checkout-layout .summary{width:100%;max-width:100%;margin-top:10px}

  .cartrow{
    grid-template-columns:52px minmax(0,1fr)!important;
    gap:9px;
    align-items:center;
  }
  .cartrow > div:last-child{
    grid-column:2;
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    text-align:left!important;
    margin-top:-2px;
  }
  .cartrow > div:nth-child(2){min-width:0}
  .cartrow > div:nth-child(2) b{display:block;white-space:normal;overflow-wrap:anywhere}
  .cartrow .qty{max-width:100%}

  .checkout-layout .formbox,.cart-layout .formbox,.account-layout .formbox{min-width:0}
  .checkout-payments{grid-template-columns:1fr!important}
  .pay-option label{min-height:48px}

  .formgrid{grid-template-columns:minmax(0,1fr)!important}
  .formgrid .full{grid-column:auto!important}
  input,select,textarea{max-width:100%;min-width:0}
  .btn{max-width:100%}

  .page-title h1{overflow-wrap:anywhere}
  .sectionhead{min-width:0}
  .sectionhead > *{min-width:0}
}

@media (min-width:768px){
  .cart-layout,.checkout-layout{grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr)}
  .account-layout{grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr)}
}


/* GoodFood customer experience refresh */
.productcard,.formbox,.cat,.tablewrap{box-shadow:0 10px 28px rgba(59,28,20,.06)}.productcard{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.productcard:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(59,28,20,.11);border-color:#dfc6b8}.btn.primary{background:linear-gradient(135deg,#176b4b,#7b3f24);box-shadow:0 7px 16px rgba(90,45,31,.12)}.btn.primary:hover{box-shadow:0 10px 22px rgba(90,45,31,.18)}input,select,textarea{transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.input:focus,input:focus,select:focus,textarea:focus{background:#ffffff}.order-card{background:#fff;border:1px solid #e2e8df;border-radius:20px;box-shadow:0 9px 25px rgba(59,28,20,.055);transition:transform .18s ease,box-shadow .18s ease}.order-card:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(59,28,20,.09)}
@media(max-width:560px){.order-card{border-radius:17px}.productcard:hover{transform:none}}


/* Customer notifications */
.notification-wrap{position:relative;display:inline-flex;align-items:center}
.notification-btn{position:relative;width:42px;height:42px;border:1px solid rgba(255,255,255,.32);border-radius:13px;background:#fff;color:#4a2a1e;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 12px rgba(59,28,20,.08)}
.notification-bell{font-size:19px;line-height:1}
.notification-count{position:absolute;right:-3px;top:-4px;width:18px;min-width:18px;max-width:18px;height:18px;min-height:18px;max-height:18px;padding:0;border-radius:50%;background:#b62e25;color:#fff;display:grid;place-items:center;font-size:10px;line-height:1;font-weight:800;text-align:center;border:2px solid #fff;box-sizing:border-box;z-index:3;font-variant-numeric:tabular-nums}
.notification-panel{position:absolute;right:0;top:49px;width:min(360px,calc(100vw - 28px));background:#fff;border:1px solid #e5d8d0;border-radius:18px;box-shadow:0 18px 45px rgba(55,31,22,.18);overflow:hidden;z-index:1000}
.notification-head{display:flex;align-items:center;justify-content:space-between;padding:15px 16px;border-bottom:1px solid #eee4de;color:#4a2a1e}
.notification-head button{border:0;background:transparent;font-size:24px;color:#806f68;cursor:pointer}
.notification-list{max-height:430px;overflow:auto}
.notification-item{display:flex;gap:11px;padding:14px 15px;border-bottom:1px solid #e2e8df;text-decoration:none;color:inherit;background:#fff}
.notification-item.unread{background:#f7faf6}
.notification-item:hover{background:#edf5eb}
.notification-icon{width:38px;height:38px;flex:0 0 38px;border-radius:12px;background:#eaf4ed;display:flex;align-items:center;justify-content:center;font-size:18px}
.notification-copy{min-width:0}.notification-copy strong{display:block;color:#4a2a1e;font-size:13px;line-height:18px}.notification-copy span{display:block;margin-top:3px;color:#75645d;font-size:12px;line-height:18px}.notification-copy small{display:block;margin-top:5px;color:#9b8b84;font-size:10px}
.notification-empty{padding:28px 18px;text-align:center;color:#8a7770;font-size:13px;line-height:20px}
.customer-notification-toast{position:fixed;right:16px;top:78px;width:min(380px,calc(100vw - 32px));background:#fff;border:1px solid #e2d5cd;border-left:4px solid #176b4b;border-radius:16px;box-shadow:0 18px 40px rgba(50,28,20,.18);padding:13px 15px;z-index:1200;box-sizing:border-box;animation:pmToastIn .25s ease}
.customer-notification-toast strong{display:block;color:#4a2a1e;font-size:13px;line-height:18px}.customer-notification-toast span{display:block;margin-top:3px;color:#526459;font-size:12px;line-height:18px}
@keyframes pmToastIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:560px){.notification-panel{position:fixed;right:10px;top:72px;width:calc(100vw - 20px);max-height:calc(100dvh - 92px);display:flex;flex-direction:column;overflow:hidden}.notification-list{min-height:0;max-height:none;flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch}.customer-notification-toast{top:72px;right:10px;width:calc(100vw - 20px)}}

.notification-push-optin{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;background:#f2f8df;border-bottom:1px solid #eee4de;color:#526459;font-size:11px;line-height:16px}.notification-push-optin button{border:0;border-radius:9px;background:#176b4b;color:#fff;padding:7px 10px;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap}.notification-push-optin[hidden]{display:none}


/* Notification state must honor the HTML hidden attribute even though the
   panel uses an explicit flex display when open. */
.notification-panel[hidden],
.customer-notification-toast[hidden],
.notification-push-optin[hidden]{display:none !important}

/* =========================================================
   RESPONSIVE / VIEWPORT STABILITY — V10
   Ensures the complete customer UI remains usable across
   phones, tablets, laptops, desktop browsers and Android
   Chrome "Desktop site" mode.
   ========================================================= */
html{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:clip;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  width:100%;
  max-width:100%;
  min-width:0;
  min-height:100dvh;
  overflow-x:clip;
  overflow-wrap:break-word;
}
*,*::before,*::after{min-width:0;max-width:100%}
img,svg,video,canvas,iframe{max-width:100%;height:auto}
iframe{width:100%;border:0}
table{max-width:100%}
pre,code{max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere}

.topbar{
  width:100%;
  max-width:none;
  min-width:0;
  padding-left:max(10px,env(safe-area-inset-left));
  padding-right:max(10px,env(safe-area-inset-right));
}
.top-actions{min-width:0;flex-shrink:0}
.brand{min-width:0;flex:1 1 auto}
.brand>span:last-child{min-width:0;max-width:clamp(120px,42vw,420px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.appmain{
  width:100%;
  max-width:1120px;
  min-width:0;
  margin-left:auto;
  margin-right:auto;
  padding-left:max(10px,env(safe-area-inset-left));
  padding-right:max(10px,env(safe-area-inset-right));
}

/* Never allow a wide inline/grid child to push the viewport wider. */
.appmain>*{max-width:100%}
.grid,.cart-layout,.checkout-layout,.account-layout,.formgrid,.two{min-width:0}
.grid>*{min-width:0;max-width:100%}
.cart-layout>*,.checkout-layout>*,.account-layout>*{min-width:0;max-width:100%}
.formbox,.productcard,.cat,.order-card,.tablewrap{min-width:0;max-width:100%}

/* Flexible headings and action rows. */
.page-title,.sectionhead{min-width:0}
.page-title h1,.sectionhead h2,.formbox h2,.formbox h3,
.productcard h3,.order-card h2,.order-card h3{overflow-wrap:anywhere;word-break:normal}
.sectionhead{gap:10px;flex-wrap:wrap}
.sectionhead .link{margin-left:auto}
.search{min-width:0;max-width:100%}
.search input{min-width:0;width:100%}

/* Tables remain readable without creating page-level horizontal scroll. */
.tablewrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table{min-width:680px}

/* Long buttons and form controls must shrink instead of overflowing. */
.btn{max-width:100%;white-space:normal;text-align:center}
input,select,textarea{min-width:0;max-width:100%;}

/* Bottom navigation belongs to the mobile/tablet experience only. */
.bottomnav{
  width:100%;
  max-width:none;
  padding-left:max(0px,env(safe-area-inset-left));
  padding-right:max(0px,env(safe-area-inset-right));
  padding-bottom:env(safe-area-inset-bottom);
  height:calc(66px + env(safe-area-inset-bottom));
}

/* ---------- Notifications: viewport-safe modal ---------- */
.notification-wrap{position:relative;z-index:1300}
.notification-btn{flex:0 0 auto}
.notification-panel{
  position:fixed;
  top:calc(68px + env(safe-area-inset-top));
  right:max(12px,env(safe-area-inset-right));
  width:min(420px,calc(100vw - 24px));
  max-width:calc(100vw - 24px);
  max-height:calc(100dvh - 84px - env(safe-area-inset-top));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  z-index:3000;
}
.notification-head{flex:0 0 auto}
.notification-push-optin{flex:0 0 auto}
.notification-list{
  min-height:0;
  max-height:none;
  flex:1 1 auto;
  overflow-x:hidden;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}
.notification-item{min-width:0}
.notification-copy{min-width:0;overflow-wrap:anywhere}
.customer-notification-toast{
  top:calc(78px + env(safe-area-inset-top));
  right:max(16px,env(safe-area-inset-right));
  max-width:calc(100vw - 32px);
}

@media (min-width:768px){
  /* Desktop/tablet: preserve full-width content and prevent mobile nav from
     covering the last row of any page. */
  .appmain{padding-bottom:32px}
  .bottomnav{display:none}
  .notification-panel{max-height:calc(100dvh - 84px)}
}

@media (max-width:767px){
  .appmain{padding-top:10px;padding-bottom:calc(82px + env(safe-area-inset-bottom))}
  .topbar{height:62px}
  .brand>span:last-child{max-width:42vw}
  .notification-panel{
    top:calc(62px + env(safe-area-inset-top) + 4px);
    right:max(8px,env(safe-area-inset-right));
    width:calc(100vw - 16px);
    max-width:calc(100vw - 16px);
    max-height:calc(100dvh - 76px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    border-radius:16px;
  }
  .customer-notification-toast{
    top:calc(70px + env(safe-area-inset-top));
    right:8px;
    width:calc(100vw - 16px);
    max-width:calc(100vw - 16px);
  }
}

@media (max-width:420px){
  .topbar{padding-left:8px;padding-right:8px}
  .brand{gap:5px;font-size:15px}
  .brandmark{width:35px;height:35px}
  .top-actions{gap:6px}
  .cartpill,.avatar,.loginmini,.notification-btn{width:38px;min-width:38px;height:38px;padding-left:8px;padding-right:8px;border-radius:11px}
  .loginmini{font-size:11px}
  .notification-bell{font-size:17px}
  .appmain{padding-left:9px;padding-right:9px}
  .grid{gap:8px}
}

@media (orientation:landscape) and (max-width:900px){
  .bottomnav{height:58px}
  .appmain{padding-bottom:70px}
  .notification-panel{max-height:calc(100dvh - 70px)}
}

/* Android Chrome/Desktop-site and very wide layouts */
@media (min-width:900px){
  .appmain{padding-left:20px;padding-right:20px}
  .grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (min-width:1200px){
  .appmain{padding-left:0;padding-right:0}
}

/* =========================================================
   V10.5 — GLOBAL MOBILE HEADER + HOME CTA STABILITY
   ========================================================= */
.topbar{gap:8px;overflow:hidden}
.top-actions{gap:7px;flex:0 0 auto}
.cartpill,.avatar,.notification-btn{width:44px;min-width:44px;height:44px;padding:0;border-radius:13px}
.cartpill{font-size:17px}
.loginmini{
  width:auto;
  min-width:58px;
  height:44px;
  padding:0 12px;
  border-radius:13px;
  font-size:14px;
  line-height:1;
  white-space:nowrap;
  flex:0 0 auto;
}
.brand{gap:8px;min-width:0}
.brandmark{flex:0 0 auto}
.brand>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Logged-in header with cart + bell + avatar must also fit compact phones. */
@media(max-width:420px){
  .topbar{height:62px;padding-left:8px;padding-right:8px;gap:5px}
  .top-actions{gap:5px}
  .cartpill,.avatar,.notification-btn{width:40px;min-width:40px;height:40px;border-radius:12px}
  .loginmini{min-width:58px;height:40px;padding:0 10px;font-size:13px;border-radius:12px}
  .brand{gap:6px;font-size:16px;flex:1 1 auto}
  .brandmark{width:36px;height:36px;font-size:19px}
  .brand>span:last-child{max-width:none;flex:1 1 auto}
}

@media(max-width:360px){
  .top-actions{gap:4px}
  .cartpill,.avatar,.notification-btn{width:38px;min-width:38px;height:38px}
  .loginmini{min-width:55px;height:38px;padding:0 9px;font-size:12px}
  .brand{font-size:15px;gap:5px}
  .brandmark{width:34px;height:34px;font-size:18px}
}

/* Product cards: two clear purchase actions on every homepage product card. */
.productcard .pcbody{display:flex;flex-direction:column;min-width:0}
.productcard .price{margin-bottom:0}
.productcard .pm-home-product-actions{margin-top:10px}

/* Never let the action row create horizontal overflow. */
.pm-home-product-actions,.pm-home-product-actions .btn{min-width:0;max-width:100%}


/* =========================================================
   V10.6 — NOTIFICATION PANEL VISIBILITY / HEADER CLIPPING FIX
   The notification panel is fixed to the viewport. The sticky header
   must not clip fixed descendants, otherwise only a thin strip of the
   notification content can appear on mobile.
   ========================================================= */
.topbar{overflow:visible !important}
.notification-wrap{position:static;z-index:3100}
.notification-panel{
  position:fixed !important;
  top:calc(68px + env(safe-area-inset-top)) !important;
  right:max(12px,env(safe-area-inset-right)) !important;
  width:min(420px,calc(100vw - 24px)) !important;
  max-width:calc(100vw - 24px) !important;
  max-height:calc(100dvh - 84px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
  display:flex !important;
  flex-direction:column !important;
  background:#fff !important;
  border:1px solid #e5d8d0 !important;
  border-radius:18px !important;
  box-shadow:0 18px 45px rgba(55,31,22,.20) !important;
  overflow:hidden !important;
  z-index:3100 !important;
}
.notification-panel[hidden]{display:none !important}
.notification-head{min-height:58px;display:flex;align-items:center;justify-content:space-between;flex:0 0 auto}
.notification-head button{
  width:40px;height:40px;padding:0;border:0;background:transparent;
  display:grid;place-items:center;font-size:30px;line-height:1;
  color:#806f68;cursor:pointer;border-radius:10px
}
.notification-head button:hover,.notification-head button:focus-visible{background:#edf5eb;color:#176b4b;outline:none}
.notification-list{min-height:0;flex:1 1 auto;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}
.notification-item{min-width:0}
.notification-copy{min-width:0;overflow-wrap:anywhere}
@media(max-width:767px){
  .notification-panel{
    top:calc(62px + env(safe-area-inset-top) + 8px) !important;
    right:max(8px,env(safe-area-inset-right)) !important;
    width:calc(100vw - 16px) !important;
    max-width:calc(100vw - 16px) !important;
    max-height:calc(100dvh - 78px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
    border-radius:16px !important;
  }
}
@media(max-width:360px){
  .notification-panel{width:calc(100vw - 12px) !important;max-width:calc(100vw - 12px) !important;right:6px !important}
}


/* V10.7 — International e-commerce header / notification stability */
.topbar .loginmini{min-width:78px;height:42px;padding:0 15px;white-space:nowrap;display:grid;place-items:center;flex:0 0 auto;overflow:visible}
.topbar .top-actions{flex:0 0 auto}
@media(max-width:560px){
  .topbar{gap:8px}
  .topbar .loginmini{min-width:78px;height:42px;padding:0 14px;font-size:13px}
  .topbar .cartpill,.topbar .avatar,.topbar .notification-btn{width:42px;min-width:42px;height:42px}
}
@media(max-width:380px){
  .topbar{padding-left:8px;padding-right:8px;gap:6px}
  .topbar .top-actions{gap:6px}
  .topbar .loginmini{min-width:74px;padding:0 12px}
  .brand>span:last-child{max-width:38vw}
}


/* V10.8 — deterministic notification state + mobile header controls */
.notification-panel[hidden]{
  display:none !important;
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}
.notification-panel:not([hidden]){
  visibility:visible;
  opacity:1;
  pointer-events:auto;
}
.notification-panel{
  isolation:isolate;
}
.notification-head button[data-notification-close]{
  width:40px;
  height:40px;
  min-width:40px;
  margin:-4px -4px -4px 8px;
  display:grid;
  place-items:center;
  border-radius:10px;
  line-height:1;
  font-size:27px;
  font-weight:500;
  color:#526459;
  background:transparent;
}
.notification-head button[data-notification-close]:hover,
.notification-head button[data-notification-close]:focus-visible{
  background:#edf5eb;
  color:#4a2a1e;
  outline:none;
}
.topbar .brand{min-width:0;flex:1 1 auto;overflow:hidden}
.topbar .brand>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar .top-actions{flex:0 0 auto;min-width:0}
.topbar .loginmini{
  width:88px;
  min-width:88px;
  height:44px;
  padding:0 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
  word-break:keep-all;
  overflow:hidden;
  line-height:1;
  text-align:center;
  flex:0 0 88px;
}
@media(max-width:380px){
  .topbar{padding-left:8px;padding-right:8px;gap:6px}
  .topbar .top-actions{gap:6px}
  .topbar .loginmini{width:84px;min-width:84px;flex-basis:84px;padding:0 9px;font-size:13px}
  .topbar .cartpill,.topbar .avatar,.topbar .notification-btn{width:42px;min-width:42px;height:42px}
  .topbar .brand{gap:7px}
  .topbar .brandmark{width:38px;height:38px;min-width:38px}
  .topbar .brand>span:last-child{font-size:18px}
}
@media(max-width:330px){
  .topbar .loginmini{width:78px;min-width:78px;flex-basis:78px;font-size:12px}
  .topbar .brand>span:last-child{font-size:17px}
}

/* V10.16 — notification badge geometry: perfectly circular, optically centered, and stable for 1–2 digit counts. */
.notification-btn{position:relative !important;overflow:visible !important}
.notification-btn .notification-count{position:absolute !important;top:-6px !important;right:-6px !important;width:22px !important;min-width:22px !important;max-width:22px !important;height:22px !important;min-height:22px !important;max-height:22px !important;margin:0 !important;padding:0 !important;box-sizing:border-box !important;border:2px solid #fff !important;border-radius:50% !important;display:flex !important;align-items:center !important;justify-content:center !important;font-size:11px !important;font-weight:900 !important;font-family:Arial,Helvetica,sans-serif !important;font-variant-numeric:tabular-nums !important;line-height:22px !important;text-align:center !important;text-indent:0 !important;white-space:nowrap !important;overflow:hidden !important;z-index:3 !important;transform:translateZ(0) !important;vertical-align:middle !important}
.notification-btn .notification-count::before,.notification-btn .notification-count::after{content:none !important}
.notification-btn .notification-count[hidden]{display:none !important;visibility:hidden !important;opacity:0 !important;pointer-events:none !important}
.notification-btn .notification-count{line-height:1 !important;place-items:center !important;align-content:center !important;justify-content:center !important;text-align:center !important;letter-spacing:0 !important}
@media(max-width:380px){.notification-btn .notification-count{top:-5px !important;right:-5px !important;width:21px !important;height:21px !important;min-width:21px !important;min-height:21px !important;line-height:21px !important;font-size:10px !important}}

/* V10.19 — notification clear action */
.notification-head-actions{display:flex;align-items:center;gap:7px}
.notification-head-actions .notification-clear{border:0;background:#edf5eb;color:#176b4b;border-radius:8px;padding:6px 9px;font-size:11px;font-weight:800;cursor:pointer}
.notification-head-actions .notification-clear:hover,.notification-head-actions .notification-clear:focus-visible{background:#ead9cf;color:#4b2819;outline:none}
