/* PULSE FOOD · branch catalogue */
:root{
  --page:#efe7d4;--panel:#fffdf7;--zebra:#f6efdf;--head:#e2d9c2;
  --blue:#14396b;--blue-d:#0d2749;--muted:#4c6488;
  --dim:#8496ac;
  --rule:#0a0a0a;
  --line:#b9ab8c;--grid:#cfc2a4;
  --teal:#0f766e;--green:#15803d;--green-d:#116232;--red:#b91c1c;--amber:#b45309;
  --price:#8c55af;--price-d:#5c3578;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:David,"David Libre","Times New Roman",serif;font-size:16px;
  background:var(--page);color:var(--blue);padding-bottom:38px}

.h{background:var(--panel);border-bottom:3px solid var(--blue);padding:9px 16px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;position:sticky;top:0;z-index:6}
.brand{display:flex;flex-direction:column;gap:1px;line-height:1.3}
.brand .b1{font-size:1.32rem;font-weight:700;color:var(--blue-d)}
.brand .b2{font-size:.95rem;font-weight:700;color:var(--blue)}
.domain{border:2px solid var(--teal);border-radius:8px;padding:5px 16px 6px;white-space:nowrap;
  background:#f1fbfa;display:flex;flex-direction:column;align-items:center;line-height:1.15}
.domain .by{font-size:.72rem;font-weight:700;color:var(--muted);letter-spacing:.2px}
.domain .dn{font-size:1.5rem;font-weight:700;color:var(--teal);letter-spacing:1.5px}
.asof{background:var(--blue);color:#fff;border-radius:5px;padding:4px 11px;font-size:.86rem;font-weight:700;white-space:nowrap}
.asof.fallback{background:var(--amber)}
.kk{background:var(--head);border:1px solid var(--line);border-radius:5px;padding:3px 10px;font-size:.86rem;font-weight:700;color:var(--blue);font-variant-numeric:tabular-nums}
.tg{padding:5px 11px;border:1px solid var(--line);border-radius:5px;background:var(--panel);font-size:.88rem;font-weight:700;cursor:pointer;font-family:inherit;color:var(--blue)}
.tg:hover{background:var(--head)}
.tg.on{background:var(--green);color:#fff;border-color:var(--green)}
.h input{padding:6px 11px;border:1px solid var(--line);border-radius:5px;font-size:.95rem;font-family:inherit;width:230px;margin-inline-start:auto;color:var(--blue)}
.h input:focus{outline:none;border-color:var(--blue)}

.freshbox{display:flex;flex-direction:column;gap:3px;border:2px solid var(--blue);border-radius:8px;
  padding:5px 13px;background:#f4f7fc}
.freshbox .row{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.freshbox .lbl{font-size:.86rem;font-weight:700;color:var(--blue)}
.freshbox .val{font-size:1.02rem;font-weight:700;color:var(--blue-d);font-variant-numeric:tabular-nums;
  margin-inline-start:auto}
.srcline{background:var(--head);border-bottom:1px solid var(--line);padding:5px 16px;font-size:.88rem;
  color:var(--blue);font-weight:700;display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.srcline .addr{display:inline-flex;align-items:center;gap:6px}
.srcline .addr::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--teal)}

.lay{display:grid;grid-template-columns:232px 1fr;gap:9px;padding:9px;max-width:1560px;margin:auto;align-items:start}
.sb{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:6px;position:sticky;top:calc(var(--hh,46px) + 8px);max-height:calc(100vh - var(--hh,46px) - 20px);overflow:auto;font-size:.9rem}
.sb .all,.sb .promoOnly{display:block;width:100%;text-align:start;padding:6px 9px;border:none;border-radius:5px;font-weight:700;cursor:pointer;font-size:.92rem;font-family:inherit;margin-bottom:5px}
.sb .all{background:var(--blue);color:#fff}
.sb .all span{float:inline-end;color:#c5d6ee;font-variant-numeric:tabular-nums}
.sb .promoOnly{background:#e6f3e9;color:var(--green-d);border:1px solid rgba(21,128,61,.3)}
.sb .promoOnly span{float:inline-end;opacity:.8;font-variant-numeric:tabular-nums}
.sb .promoOnly.on{background:var(--green);color:#fff}
.sb a{display:flex;justify-content:space-between;gap:6px;padding:5px 9px;text-decoration:none;color:var(--blue);border-radius:4px;font-size:.9rem;font-weight:700;border-bottom:1px solid var(--grid);cursor:pointer}
.sb a:last-child{border-bottom:none}
.sb a:hover{background:rgba(20,57,107,.09)}
.sb a.on{background:var(--blue);color:#fff}
.sb .n{font-size:.8rem;color:var(--muted);font-weight:700;font-variant-numeric:tabular-nums}
.sb a.on .n{color:#c5d6ee}
.bx{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:8px 13px;margin-bottom:8px;font-size:.92rem;line-height:1.6}
.bx b{font-variant-numeric:tabular-nums;color:var(--blue-d)}
.bx .scope{color:var(--blue-d);font-weight:700}

.tablewrap{overflow:visible}
table{width:100%;table-layout:fixed;border-collapse:collapse;background:var(--panel);
  border:2px solid var(--rule);font-size:.95rem;min-width:780px}
th{background:var(--head);color:var(--blue-d);font-size:.88rem;font-weight:700;padding:7px 9px;
  text-align:start;border-bottom:2px solid var(--rule);border-inline-start:2px solid var(--rule);
  white-space:nowrap;position:sticky;top:var(--hh,46px);z-index:4;box-shadow:0 2px 0 var(--rule)}
thead th::after{content:'';position:absolute;inset:0;background:var(--head);z-index:-1}
th.c{text-align:center}
td{padding:5px 9px;border-bottom:1px solid var(--grid);border-inline-start:2px solid var(--rule);
  vertical-align:middle;overflow:hidden;font-variant-numeric:tabular-nums}
th:first-child,td:first-child{border-inline-start:none}
tbody tr:nth-child(odd){background:var(--panel)}
tbody tr:nth-child(even){background:var(--zebra)}
tbody tr{cursor:pointer}
tbody tr:hover{background:rgba(20,57,107,.10)!important}

.imgcell{width:88px;text-align:center;padding:5px 6px}
.imgcell img{width:52px;height:52px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:4px;display:block;margin:0 auto 3px;padding:2px}
.imgcell img.ph{padding:13px;opacity:.32}
.bc{display:block;font-family:"Courier New",ui-monospace,monospace;font-size:.72rem;
  color:var(--muted);letter-spacing:-.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.nm{text-align:start;font-weight:700;font-size:1.18rem;line-height:1.32;color:var(--blue-d);
  white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

th.hS{background:rgba(140,85,175,.19);color:var(--price-d)}
th.hS::after{background:inherit}
td.pricecell{background:rgba(140,85,175,.09);text-align:start;white-space:nowrap}
tbody tr:nth-child(even) td.pricecell{background:rgba(140,85,175,.15)}
.pricecell .price{font-weight:700;color:var(--price-d);font-size:1.2rem;line-height:1.2}

th.hP{background:rgba(21,128,61,.15);color:var(--green-d)}
th.hP::after{background:inherit}
td.promocell{background:rgba(21,128,61,.06);text-align:start;white-space:normal}
tbody tr:nth-child(even) td.promocell{background:rgba(21,128,61,.11)}
.promo{color:var(--green-d);font-size:.9rem;font-weight:700;line-height:1.28}
.promo .pp{display:block;font-size:1.14rem}
.promo small{font-weight:400;opacity:.8}
.promo.none{color:var(--dim);font-weight:400;font-size:1.05rem;text-align:center;display:block}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-inline-end:5px;vertical-align:1px}
.dS{background:var(--price)}.dP{background:var(--green)}

.qty{display:flex;gap:3px;align-items:center;justify-content:center}
.qty button{width:25px;height:25px;border:1px solid var(--line);background:var(--panel);border-radius:4px;font-weight:700;cursor:pointer;font-size:1rem;line-height:1;color:var(--blue);padding:0;font-family:inherit}
.qty button:hover{background:var(--head);border-color:var(--blue)}
.qty .v{min-width:24px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}
.qty .v.z{color:var(--dim);font-weight:400}
tr.inb{background:rgba(21,128,61,.12)!important}

#bub{position:fixed;inset:0;background:rgba(10,20,40,.45);z-index:20;display:none;align-items:center;justify-content:center;padding:16px}
#bub.on{display:flex}
#bubc{background:var(--panel);border:2px solid var(--rule);border-radius:8px;max-width:560px;width:100%;box-shadow:0 10px 40px rgba(0,0,0,.32);overflow:hidden}
#bubh{background:var(--head);padding:9px 14px;font-weight:700;font-size:1.05rem;display:flex;gap:9px;align-items:center;border-bottom:2px solid var(--rule);color:var(--blue-d)}
#bubh button{margin-inline-start:auto;border:1px solid var(--line);background:var(--panel);border-radius:5px;padding:3px 10px;cursor:pointer;font-family:inherit;font-weight:700;color:var(--blue)}
#bubb{padding:14px 16px;line-height:1.65}
#bubb img{width:114px;height:114px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:6px;float:inline-start;margin-inline-end:14px;padding:4px}
#bubb h3{font-size:1.36rem;font-weight:700;line-height:1.28;margin-bottom:5px;color:var(--blue-d)}
#bubb .pbig{font-size:1.62rem;font-weight:700;color:var(--price-d);font-variant-numeric:tabular-nums;margin:2px 0 7px}
#bubb .meta{font-size:.92rem;color:var(--blue);line-height:1.85}
#bubb .meta b{color:var(--blue-d)}
#bubb h4{clear:both;padding-top:10px;font-size:.92rem;color:var(--muted);font-weight:700}
#bubb ul{list-style:none;margin-top:5px}
#bubb li{background:rgba(21,128,61,.08);border:1px solid rgba(21,128,61,.28);border-radius:6px;padding:6px 11px;margin-bottom:5px;font-size:.9rem;color:var(--green-d)}
#bubb li small{color:var(--muted)}
.dim{color:var(--dim);font-size:.9rem;clear:both;padding-top:6px}

#bk{position:fixed;inset-block-end:0;inset-inline-start:0;inset-inline-end:0;background:var(--panel);border-top:3px solid var(--blue);box-shadow:0 -4px 14px rgba(0,0,0,.18);z-index:9;max-height:62vh;display:none;flex-direction:column}
#bk.on{display:flex}
#bkh{padding:8px 14px;border-bottom:1px solid var(--line);display:flex;gap:9px;align-items:center;flex-wrap:wrap;font-weight:700;font-size:1.05rem;color:var(--blue-d)}
#bkb{overflow:auto;padding:8px 14px}
#bk table{font-size:.92rem;min-width:0}
#bk .imgcell{width:64px}
#bk .imgcell img{width:38px;height:38px}
#bk .nm{font-size:1rem;-webkit-line-clamp:1}
.tot{background:var(--blue);color:#fff;border-radius:5px;padding:4px 12px;font-size:.95rem;font-weight:700;font-variant-numeric:tabular-nums}
.empty{padding:22px;text-align:center;color:var(--muted)}

.credits{padding:14px 16px;text-align:center;color:var(--blue);font-size:.86rem;border-top:1px solid var(--line);background:var(--panel);margin-top:12px;line-height:1.9}
.credits b{color:var(--blue-d)}
.credits .dm{color:var(--teal);font-weight:700;letter-spacing:1.2px;font-size:1.02rem}
.credits .ai{color:var(--dim);font-size:.76rem}

@media(max-width:900px){
  .lay{grid-template-columns:1fr}
  .sb{position:static;max-height:none}
  .h input{width:100%;margin-inline-start:0}
  .domain{padding:4px 11px}
  .domain .dn{font-size:1.16rem}
  .freshbox{padding:4px 10px}
  .freshbox .val{font-size:.92rem}
  table{min-width:0}
  .imgcell{width:68px}
  .imgcell img{width:44px;height:44px}
  .nm{font-size:1.02rem}
  .pricecell .price{font-size:1.05rem}
  th,td{padding:5px 6px}
}
@media(max-width:560px){
  .brand .b1{font-size:1.08rem}
  .domain .dn{font-size:1rem;letter-spacing:.6px}
}
