html,body{overscroll-behavior-y:contain}
.cbody{display:flex;flex-direction:column;padding:12px 14px 20px;width:100%;box-sizing:border-box}

:root{
  --mint1:#f0fdf9;--mint2:#d4f5ec;--mint3:#a8e8d4;--mint4:#4ecdc4;--mint5:#2ab5a8;--mint6:#1e9688;--mint7:#167a6e;
  --gold3:#fcd34d;--gold4:#fbbf24;--gold5:#f59e0b;--gold6:#d97706;
  --green5:#22c55e;--green6:#16a34a;--green7:#15803d;
  --red4:#f87171;--red6:#dc2626;
  --gray1:#f9fafb;--gray2:#f3f4f6;--gray3:#e5e7eb;--gray4:#9ca3af;--gray5:#6b7280;--gray6:#4b5563;--gray7:#374151;--gray8:#1f2937;
  --cream:#f5f2ea;--white:#fff;
  --sh-sm:0 1px 3px rgba(0,0,0,.06);
  --sh-md:0 4px 16px rgba(46,160,67,.1),0 2px 6px rgba(46,160,67,.06);
  --sh-lg:0 12px 40px rgba(46,160,67,.14);
  --sh-gold:0 6px 24px rgba(251,191,36,.35);
  --r-sm:10px;--r-md:16px;--r-lg:22px;--r-xl:28px;
  /* Theme tokens */
  --bg-body:linear-gradient(180deg,#d3f7d3 0%,#c2e8b5 100%);
  --bg-card:rgba(255,255,255,.74);
  --bg-input:#f0fdf9;
  --bg-glass:rgba(255,255,255,.85);
  --border-card:rgba(255,255,255,.9);
  --border-input:var(--mint3);
  --text-main:var(--gray8);
  --text-muted:var(--gray5);
  --text-faint:var(--gray4);
  --nav-bg:rgba(255,255,255,1);
  --nav-border:rgba(168,232,212,.4);
  --hdr-bg:rgba(255,255,255,.85);
}
/* ── DARK MODE ── */
[data-theme="dark"]{
  --bg-modal:#0d0e0f;
  --border-modal:rgba(58,181,130,.2);
  /* Mint accents - ลดความสว่าง */
  --mint1:#1a2e28;--mint2:#1e3830;--mint3:#2a5045;
  --mint4:#3ab5ac;--mint5:#32a09a;--mint6:#3ab5ac;--mint7:#52c4bc;
  /* Gold - อบอุ่น ไม่จ้า */
  --gold3:#7a5209;--gold4:#9a6a10;--gold5:#b8850f;--gold6:#c9941a;
  /* Green - นุ่มตา */
  --green5:#2d9a52;--green6:#34a85a;--green7:#52c472;
  /* Red */
  --red4:#c0504a;--red6:#d96460;
  /* Gray scale - สำคัญมาก ต้องอ่านง่าย */
  --gray1:#1a2420;--gray2:#222e28;--gray3:#2e3d36;
  --gray4:#5a7268;--gray5:#7a9488;--gray6:#a8c0b4;--gray7:#c8dcd4;--gray8:#dff0e8;
  --cream:#171f1c;--white:#1e2a24;
  /* Backgrounds */
  --bg-body:linear-gradient(160deg,#0d0e0f 0%,#08090a 50%);
  --bg-card:rgba(16,17,18,.92);
  --bg-input:rgba(29,31,33,.95);
  --bg-glass:rgba(18,19,20,.95);
  --border-card:rgba(58,181,172,.18);
  --border-input:rgba(58,181,172,.28);
  /* Text - อ่านง่าย ไม่สะท้อน */
  --text-main:#eef5f2;
  --text-muted:#8aaa9e;
  --text-faint:#5a7268;
  /* Nav */
  --nav-bg:rgba(26,28,30,1);
  --nav-border:rgba(58,181,172,.18);
  --hdr-bg:rgba(26,28,30,.97);
  --sh-md:0 4px 20px rgba(0,0,0,.35);
  --sh-lg:0 12px 40px rgba(0,0,0,.5);
}
*{box-sizing:border-box;margin:0;padding:0}
input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-webkit-clear-button,input::-ms-clear,input::-ms-reveal{display:none !important;width:0;height:0}
html{scroll-behavior:smooth}
/* ปิด scroll anchoring ของ browser ในโซนหน้าแรกทั้งหมด (ตั้งแต่การ์ดสถิติลงมาถึงรายการเมนู) —
   ฟีเจอร์นี้จะพยายามเลื่อนจอเองอัตโนมัติเวลาเนื้อหาด้านบน viewport เปลี่ยนขนาด ซึ่งไปแย่งกับ
   การ jump ตอนกรองเมนู ทำให้เด้งซ้ำ แม้จะ freeze ความสูงด้วย JS ไปแล้วก็ตาม */
#p-dash, #p-dash * { overflow-anchor: none; }
html.theme-switching, html.theme-switching *{
  transition:none !important;
}
body{font-family:-apple-system,'Noto Sans Thai','Helvetica Neue',Arial,sans-serif;background:var(--bg-body);min-height:100dvh;color:var(--text-main);-webkit-tap-highlight-color:transparent;overflow-x:hidden;transition:background .3s,color .3s}
input,select,textarea,button{font-family:-apple-system,'Noto Sans Thai','Helvetica Neue',Arial,sans-serif;-webkit-tap-highlight-color:transparent}
input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}
select{-webkit-appearance:none;appearance:none;padding-right:22px}

/* ── APP SHELL ── */

.page{display:none;flex-direction:column;min-height:100dvh;padding-bottom:110px;animation:pIn .25s ease;overflow-x:hidden}
.page.on{display:flex}
@keyframes pIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* ── HEADER ── */
.hdr{position:sticky;top:0;z-index:40;background:var(--hdr-bg);backdrop-filter:blur(20px);border-bottom:1px solid var(--nav-border);padding:11px 16px 10px;transition:background .3s}
.hdr-inner{display:flex;align-items:center;justify-content:space-between}
.hdr-brand{display:flex;align-items:center;gap:9px}
.hdr-msc{width:24px;height:24px;object-fit:contain;animation:fl 3.5s ease-in-out infinite;filter:drop-shadow(0 3px 8px rgba(46,160,67,.25))}
.hdr-name{font-size:15px;font-weight:600;color:var(--mint7);letter-spacing:-.3px}
.hdr-sub{font-size:10px;color:var(--mint5);font-weight:600}
.hdr-action{background:none;border:1.5px solid var(--mint3);border-radius:var(--r-sm);color:var(--gray6);font-size:12px;padding:5px 11px;cursor:pointer;transition:all .2s}
.hdr-action:hover{background:var(--mint1);border-color:var(--mint4)}

/* ── BOTTOM NAV ── */
.bnav{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);width:calc(100% - 28px);max-width:452px;background:var(--nav-bg);border:1px solid var(--nav-border);border-radius:999px;display:flex;z-index:50;padding:8px 10px;box-shadow:0 10px 30px rgba(78,205,196,.28), 0 4px 40px rgba(78,205,196,.22), 0 0 60px rgba(78,205,196,.14);transition:background .3s}
.ni{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;padding:8px 4px;border-radius:999px;transition:all .2s;position:relative}
.ni:hover{background:var(--mint1)}
.ni-ico{font-size:20px;transition:transform .22s;filter:grayscale(30%)}
.ni.on .ni-ico{transform:scale(1.15);filter:none}
.ni-lbl{font-size:10px;font-weight:600;color:var(--text-faint);transition:color .22s;white-space:nowrap}
.ni.on .ni-lbl{color:var(--mint6);font-weight:600}
.ni.on{background:rgba(62,207,158,.12);border-radius:999px;transition:background .25s ease}

/* ── ANIMATIONS ── */
@keyframes fl{0%,100%{transform:translateY(0)}50%{transform:translateY(-11px)}}
@keyframes shp{0%,100%{transform:translateX(-50%) scale(1);opacity:.5}50%{transform:translateX(-50%) scale(.68);opacity:.22}}
@keyframes shimmer{0%{left:-100%}60%,100%{left:200%}}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.s1{animation:fadeUp .4s ease .05s both}.s2{animation:fadeUp .4s ease .1s both}.s3{animation:fadeUp .4s ease .15s both}
.s4{animation:fadeUp .4s ease .2s both}.s5{animation:fadeUp .4s ease .25s both}

/* ── GLASS CARD ── */
.gc{background:#ffffff;border-radius:16px;box-shadow:0 2px 12px rgba(0,0,0,.06);border:1.5px solid rgba(168,232,212,.5);padding:16px;margin-bottom:12px;overflow:hidden;box-sizing:border-box;width:100%}
.gc.accent{border-color:rgba(78,205,196,.3);background:rgba(240,253,249,.78)}
.sh{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px}
.st{font-size:14px;font-weight:600;color:var(--gray8);display:flex;align-items:center;gap:6px}
.sb{font-size:13px;font-weight:600;color:var(--mint6)}

/* ── ADMIN PANEL ACCORDION (การ์ดแยกแต่ละหมวด + เปิด/ปิดแบบนุ่มนวล) ── */
.admin-accordion{background:var(--bg-card,#fff);border:1.5px solid rgba(168,232,212,.5);border-radius:14px;margin-bottom:10px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.admin-accordion-hdr{width:100%;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:none;border:none;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;color:var(--text-main);text-align:left}
.admin-accordion-chevron{color:var(--text-faint);font-size:12px;transition:transform .3s cubic-bezier(.4,0,.2,1)}
.admin-accordion-body-outer{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .32s cubic-bezier(.4,0,.2,1),opacity .24s ease}
.admin-accordion-body-outer.open{grid-template-rows:1fr;opacity:1}
.admin-accordion-body-inner{min-height:0;overflow:hidden}
.admin-accordion-body{padding:0 16px 16px}

/* ── FORM ── */
.fl{font-size:12px;font-weight:600;color:var(--mint6);margin-bottom:4px;display:block;letter-spacing:.2px}
.fi{width:100%;background:var(--bg-input,#f0fdf9);border:1.5px solid rgba(168,232,212,.6);border-radius:var(--r-sm);color:#1f2937;padding:10px 12px;font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s,background .3s,color .3s}
.fsel{width:100%;background:#f0fdf9;border:1.5px solid rgba(168,232,212,.6);border-radius:10px;color:var(--text-main);padding:11px 12px;font-size:13px;outline:none;padding-right:22px}
.fi:focus{border-color:var(--mint4);box-shadow:0 0 0 3px rgba(78,205,196,.12)}

.g2{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}
.fw{margin-bottom:11px}

/* ── BUTTONS ── */
.bp{width:100%;padding:11px;background:linear-gradient(135deg,var(--gold4),var(--gold6));border:none;border-radius:var(--r-md);color:#fff;font-weight:600;font-size:15px;cursor:pointer;box-shadow:var(--sh-gold);letter-spacing:.3px;transition:transform .18s,box-shadow .18s;position:relative;overflow:hidden}
.bp::after{content:'';position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);transform:skewX(-18deg);animation:shimmer 3s infinite}
.bp:hover{transform:translateY(-2px);box-shadow:0 10px 32px rgba(251,191,36,.45)}
.bw{width:100%;padding:11px;background:var(--bg-glass);backdrop-filter:blur(10px);border:1.5px solid var(--border-input);border-radius:var(--r-md);color:var(--mint7);font-weight:600;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:var(--sh-sm);transition:transform .18s}
.bw:hover{transform:translateY(-1px);box-shadow:var(--sh-md)}
.bg{width:100%;padding:10px;background:transparent;border:1.5px dashed rgba(78,205,196,.45);border-radius:var(--r-md);color:var(--mint5);font-size:13px;font-weight:600;cursor:pointer;transition:background .2s,color .2s}
.bg:hover{background:rgba(78,205,196,.08);color:var(--mint6)}
.bsm{padding:6px 14px;border-radius:99px;font-size:12px;font-weight:600;cursor:pointer;border:1.5px solid var(--mint3);background:var(--mint1);color:var(--mint7);transition:all .18s}
.bsm:hover{background:var(--mint2)}
.action-row{display:block;width:100%;padding:14px 18px;border:none;background:none;font-family:inherit;font-size:14px;font-weight:600;color:var(--text-main);text-align:left;cursor:pointer;border-bottom:1px solid var(--border-card)}.action-row:last-of-type{border-bottom:none}
.bic{background:none;border:none;cursor:pointer;color:var(--gray4);font-size:15px;padding:4px;transition:color .2s}
.bic:hover{color:var(--mint4)}
.or-r{display:flex;align-items:center;gap:8px}
.or-b{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--mint3),transparent)}
.or-t{color:var(--mint3);font-size:11px;font-weight:600}

/* ── TOAST ── */
.toast{position:fixed;top:18px;left:50%;transform:translateX(-50%) translateY(-16px) scale(.92);opacity:0;visibility:hidden;background:rgba(22,80,55,.95);backdrop-filter:blur(12px);border:1px solid rgba(78,205,196,.3);border-radius:18px;padding:10px 22px;font-size:13px;font-weight:600;color:#e0faea;z-index:9999;max-width:calc(100vw - 32px);width:max-content;white-space:normal;text-align:center;line-height:1.4;transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .25s ease,visibility 0s linear .3s;pointer-events:none;box-shadow:0 8px 32px rgba(0,0,0,.15)}
.toast.show{transform:translateX(-50%) translateY(0) scale(1);opacity:1;visibility:visible;transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .25s ease,visibility 0s linear 0s}

/* ── MODAL ── */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:200;display:flex;align-items:flex-end;justify-content:center;backdrop-filter:blur(2px)}
.modal-bg.hidden{display:none}
.modal{width:100%;max-width:480px;background:var(--bg-modal,#ffffff);border-radius:var(--r-xl) var(--r-xl) 0 0;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;color:var(--text-main);animation:slideUp .25s cubic-bezier(.25,.46,.45,.94)}
.modal-hdr{padding:18px 16px 12px;border-bottom:1px solid var(--border-modal,#e5e7eb);display:flex;justify-content:space-between;align-items:center;flex-shrink:0;background:var(--bg-modal,#ffffff)}
.modal-title{font-size:16px;font-weight:600;color:var(--text-main);letter-spacing:-.2px;line-height:1.5}
.modal-body{overflow-y:auto;padding:14px 16px 32px;flex:1}

/* ── AUTH ── */
#auth{position:fixed;inset:0;z-index:9999;background:linear-gradient(175deg,#caf0e4 0%,#ddf7ee 40%,#eefaf5 75%,#f5fdf9 100%);display:flex;justify-content:center;align-items:center;padding:10px 12px 14px;overflow-y:auto}
#auth.gone{display:none}
/* ป้องกัน bottom nav / header ของแอปหลัก โผล่ทะลุขึ้นมาตอนเลื่อนหน้า auth แรงๆ จนเกิด
   overscroll bounce (rubber-band) — ซ่อนไว้ทั้งคู่ตราบใดที่ #auth ยังไม่มี class .gone
   (แปลว่ายังไม่ login เสร็จ) ใช้ general sibling combinator เพราะ #auth อยู่ก่อน .shell ใน DOM */
#auth:not(.gone) ~ .shell .bnav,
#auth:not(.gone) ~ .shell .hdr{
  display:none !important;
}
.aw{width:100%;max-width:420px}
.ascr{display:none}
.ascr.on{display:block;animation:pIn .3s ease}
.acard{background:rgba(255,255,255,.88);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:var(--r-xl);border:1px solid rgba(180,230,210,.4);box-shadow:0 8px 40px rgba(60,150,110,.1),0 2px 8px rgba(0,0,0,.05);overflow:hidden;padding-bottom:14px}

/* ── การ์ดฟีเจอร์เด่นใต้หน้า login (เติมพื้นที่ว่างด้านล่าง + โชว์ว่าแอปทำอะไรได้บ้าง) ── */
.auth-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;width:100%;padding:0 20px;margin:0 0 8px;box-sizing:border-box}
.auth-feature-card{background:rgba(255,255,255,.65);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(180,230,210,.4);border-radius:var(--r-md);padding:10px 12px;text-align:center}
.auth-feature-icon{font-size:20px;margin-bottom:4px}
.auth-feature-title{font-size:12.5px;font-weight:700;color:var(--gray8,#1f2937);margin-bottom:2px}
.auth-feature-desc{font-size:10.5px;color:var(--gray5,#6b7280);line-height:1.4}
[data-theme="dark"] .auth-feature-card{background:rgba(19,20,22,.75) !important;border:1px solid rgba(58,181,130,.18) !important}
[data-theme="dark"] .auth-feature-title{color:#eafaf5 !important}
[data-theme="dark"] .auth-feature-desc{color:rgba(234,250,245,.65) !important}

.ahero{background:linear-gradient(175deg,rgba(180,238,218,.45) 0%,rgba(210,248,234,.25) 55%,transparent 100%);padding:12px 20px 0;display:flex;flex-direction:column;align-items:center;position:relative}
.amw{position:relative;display:flex;justify-content:center;margin-bottom:2px;z-index:1}
.am{width:64px;height:auto;object-fit:contain;animation:fl 3.5s ease-in-out infinite;filter:drop-shadow(0 8px 22px rgba(46,160,67,.3)) drop-shadow(0 2px 8px rgba(0,0,0,.08))}
.amsh{position:absolute;bottom:-5px;left:50%;transform:translateX(-50%);width:78px;height:11px;background:radial-gradient(ellipse,rgba(46,160,67,.15) 0%,transparent 70%);border-radius:50%;animation:shp 3.5s ease-in-out infinite}
.gtag{background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border:1.5px solid rgba(120,210,170,.5);border-radius:99px;padding:6px 16px;font-size:12px;font-weight:600;color:#0d3d28;margin-bottom:6px;box-shadow:0 2px 12px rgba(60,150,110,.15);letter-spacing:.2px}
.atit{font-size:22px;font-weight:600;color:#0d3d28;text-align:center;line-height:1.28;margin-bottom:4px;letter-spacing:-.4px}
.atit .ac{color:#7ef0de}
.asub{font-size:13px;color:#1e5e42;text-align:center;line-height:1.5;margin-bottom:8px;font-weight:600}
.goldline{width:35px;height:3px;background:linear-gradient(90deg,var(--gold4),var(--gold3));border-radius:99px;margin:0 auto 15px}
.f2x2{display:grid;grid-template-columns:1fr 1fr;gap:7px;width:100%;margin-bottom:20px}
.fi2{background:#fff;border:1px solid rgba(160,225,195,.4);border-radius:var(--r-md);padding:11px 12px;display:flex;align-items:center;gap:9px;box-shadow:0 3px 12px rgba(60,150,110,.1)}
.fic{width:31px;height:31px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.fa{background:linear-gradient(135deg,#c8f0e4,#9addc8)}.fb{background:linear-gradient(135deg,#fef3a0,#f9d94a)}.fc{background:linear-gradient(135d,#dcfce7,#bbf7d0)}.fd{background:linear-gradient(135deg,#e0f2fe,#bae6fd)}
.fn{font-size:12px;font-weight:600;color:#0d3d28}.fsub{font-size:10px;color:#5a8870;margin-top:1px}
.abtns{padding:0 18px;display:flex;flex-direction:column;gap:8px}
.atrust{display:flex;justify-content:center;gap:13px;margin-top:13px;padding:0 18px}
.atrust span{font-size:10px;color:var(--gray4);font-weight:600}
.ain{padding:6px 20px 4px}
.abk{display:flex;align-items:center;gap:5px;color:var(--gray4);font-size:13px;font-weight:600;cursor:pointer;margin-bottom:14px;width:fit-content}
.abk:hover{color:var(--mint6)}
.ambar{background:linear-gradient(135deg,var(--mint1),var(--mint2));border-radius:var(--r-md);padding:12px 14px;margin-bottom:14px;display:flex;align-items:center;gap:10px;border:1px solid rgba(168,232,212,.4)}
.amini{width:34px;height:34px;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(46,160,67,.2))}
.ahi{font-size:14px;font-weight:600;color:var(--mint7)}.ahis{font-size:11px;color:var(--mint6);margin-top:2px}
.aform-t{font-size:20px;font-weight:600;color:var(--mint7);margin-bottom:3px;letter-spacing:-.3px}
.aform-s{font-size:13px;color:var(--mint6);margin-bottom:15px}
.afl{font-size:12px;color:var(--mint6);font-weight:600;margin-bottom:4px;display:block}
.afi{width:100%;background:var(--bg-input);border:1.5px solid var(--border-input);border-radius:var(--r-sm);color:var(--text-main);padding:11px 12px;font-size:14px;margin-bottom:11px;outline:none;transition:border-color .2s,background .3s,color .3s}
.afi:focus{border-color:var(--mint4);box-shadow:0 0 0 3px rgba(78,205,196,.12)}
.afgt{text-align:right;color:var(--gold6);font-size:11px;font-weight:600;margin:-5px 0 14px;cursor:pointer}
.asteps{display:flex;gap:4px;margin-bottom:15px}
.astep{flex:1;height:4px;border-radius:99px;background:var(--mint2)}
.astep.on{background:linear-gradient(90deg,var(--mint4),var(--green5))}
.abadge{display:inline-flex;align-items:center;gap:5px;background:var(--mint1);border:1.5px solid rgba(168,232,212,.6);border-radius:99px;color:var(--mint7);font-size:11px;padding:4px 12px;margin-bottom:6px;font-weight:600}
.astr{display:flex;gap:3px;margin:-5px 0 12px}
.astr div{flex:1;height:4px;border-radius:99px;background:var(--mint2)}
.astr .r{background:#fca5a5}.astr .y{background:#fde68a}.astr .g{background:var(--mint4)}
.aterms{color:var(--gray4);font-size:11px;text-align:center;line-height:1.7;margin-top:8px}
.aterms a{color:var(--mint6);font-weight:600}
.ahint{background:var(--mint1);border:1px solid var(--mint3);border-radius:var(--r-sm);padding:9px 12px;margin-bottom:10px;display:flex;gap:7px;align-items:flex-start}
.ahint-t{font-size:11px;color:var(--mint6);line-height:1.6}
.alink{text-align:center;font-size:12px;color:var(--gray4)}
.alink a{color:var(--mint7);font-weight:600;text-decoration:none;cursor:pointer}
/* Theme toggle switch */
.theme-toggle{
  width:52px;height:28px;border-radius:99px;
  background:var(--mint3);
  position:relative;cursor:pointer;
  transition:background .3s;
  flex-shrink:0;
  border:2px solid var(--mint3);
}
[data-theme="dark"] .theme-toggle{background:var(--mint4)}
.theme-toggle-thumb{
  width:22px;height:22px;border-radius:50%;
  background:#fff;
  position:absolute;top:1px;left:1px;
  transition:transform .3s cubic-bezier(.34,1.56,.64,1);
  box-shadow:0 2px 6px rgba(0,0,0,.2);
}
[data-theme="dark"] .theme-toggle-thumb{transform:translateX(24px)}
/* ── ปุ่มสวิตช์โหมดมืด/สว่างขนาดเล็กในเฮดเดอร์บนสุด ── */
.hdr-theme-switch{
  width:38px;height:21px;border-radius:99px;
  background:var(--mint3);
  position:relative;cursor:pointer;
  transition:background .3s;
  flex-shrink:0;
  border:1.5px solid var(--mint3);
}
[data-theme="dark"] .hdr-theme-switch{background:var(--mint5)}
.hdr-theme-switch-thumb{
  width:15px;height:15px;border-radius:50%;
  background:#fff;
  position:absolute;top:1px;left:1px;
  transition:transform .3s cubic-bezier(.34,1.56,.64,1);
  box-shadow:0 1px 4px rgba(0,0,0,.25);
}
[data-theme="dark"] .hdr-theme-switch-thumb{transform:translateX(17px)}
.hdr-theme-ico{
  position:absolute;top:50%;transform:translateY(-50%);
  color:#fff;opacity:.9;pointer-events:none;
}
.hdr-theme-ico-sun{left:4px}
.hdr-theme-ico-moon{right:4px}
.theme-preview{
  border-radius:var(--r-md);padding:14px 10px;text-align:center;
  cursor:pointer;border:2px solid transparent;
  transition:all .2s;
}
.light-preview{background:linear-gradient(135deg,#f0fdf9,#e8f5e9);color:#1a3d2b}
.dark-preview{background:linear-gradient(135deg,#0d2b24,#1a3d2b);color:#6dd8d0}
.theme-preview.active{border-color:var(--mint4);box-shadow:0 0 0 3px rgba(78,205,196,.2)}
.yield-preset-btn{background:var(--gray2);border:1.5px solid var(--gray3);border-radius:99px;color:var(--text-muted);font-size:11px;font-weight:600;padding:4px 11px;cursor:pointer;transition:all .18s;font-family:-apple-system,'Noto Sans Thai','Helvetica Neue',Arial,sans-serif}
.yield-preset-btn:hover{background:var(--gray3);border-color:var(--gray4)}

.calc-left-col,.calc-right-col{display:flex;flex-direction:column;min-width:0}
/* ══════════════════════════════
   DESKTOP LAYOUT (≥768px)
══════════════════════════════ */

@media(min-width:1200px){
  .shell{min-height:100dvh;background:linear-gradient(180deg,#d3f7d3 0%,#c2e8b5 100%);position:relative;transition:background .3s;overflow-x:hidden}
  .bnav{width:260px;max-width:260px}
  
  .ibody{max-width:1200px;padding:24px 40px}
  .sgrid{padding:0 40px;grid-template-columns:repeat(4,1fr)}
  .qgrid{padding:0 40px}
  .mlist{padding:0 40px}
  #p-settings>div{max-width:900px;padding:24px 40px}
  .ni-lbl{font-size:14px}
}

/* ── DASHBOARD ── */
/* Hero เต็มความกว้างจอ มุมล่างโค้งมน (แทนไล่สีจางหายแบบเดิม) — .hdr ด้านบน (ค้นหา/ปุ่ม
   ไอคอน) จะรวมเป็นพื้นผิวเดียวกันด้วย class .hdr-hero-mode ที่สลับให้อัตโนมัติเฉพาะหน้าแรก */
.dash-hero{background:linear-gradient(180deg,rgba(255,255,255,.45) 0%,rgba(255,255,255,.15) 100%),linear-gradient(180deg,#f0e4a8 0%,#c0e4bc 60%,#a8ddd0 100%);
  backdrop-filter:blur(28px) saturate(140%);-webkit-backdrop-filter:blur(28px) saturate(140%);box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 -14px 20px rgba(255,255,255,.3) inset,0 -2px 4px rgba(30,110,80,.1) inset,0 10px 18px rgba(30,110,80,.12),0 4px 8px rgba(30,110,80,.08);transition:background .3s;margin-top:calc(-1 * var(--hdr-h, 58px));padding:calc(var(--hdr-h, 58px) + 14px) 18px 26px;border-radius:0 0 32px 32px;display:flex;flex-direction:column;align-items:center;position:relative;overflow:hidden;z-index:1}
.dash-hero::before{content:'';position:absolute;top:-50px;right:-50px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(232,147,79,.15) 0%,transparent 70%)}
.hdr.hdr-hero-mode{background:linear-gradient(180deg,rgba(255,255,255,.45) 0%,rgba(255,255,255,.15) 100%),linear-gradient(180deg,#f0e4a8 0%,#e8e5b0 100%) !important;border-bottom:none !important;backdrop-filter:blur(28px) saturate(140%) !important;-webkit-backdrop-filter:blur(28px) saturate(140%) !important;box-shadow:none !important;transition:background .3s;position:relative}
.hdr.hdr-hero-mode::before{content:'';position:absolute;top:-100px;left:0;right:0;height:100px;background:transparent;z-index:-1}
[data-theme="dark"] .hdr.hdr-hero-mode{background:linear-gradient(0deg,#a8ddd0 0%,#c8e8b8 100%) !important;border-bottom:none !important;box-shadow:none !important}
[data-theme="dark"] .hdr.hdr-hero-mode::before{background:#c8e8b8}
.dmw{position:relative;display:flex;justify-content:center;margin-bottom:6px;z-index:1}
.dm{width:88px;height:auto;object-fit:contain;animation:fl 3.5s ease-in-out infinite;filter:saturate(135%) contrast(108%) drop-shadow(0 6px 18px rgba(46,160,67,.3)) drop-shadow(0 2px 8px rgba(0,0,0,.08))}
.dmsh{position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);width:72px;height:11px;background:radial-gradient(ellipse,rgba(46,160,67,.16) 0%,transparent 70%);border-radius:50%;animation:shp 3.5s ease-in-out infinite}
.dgreet{font-size:12px;font-weight:600;color:#0d3d28;margin-bottom:5px;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border:1.5px solid rgba(120,210,170,.5);border-radius:99px;padding:6px 16px;z-index:1;box-shadow:0 2px 12px rgba(60,150,110,.15);letter-spacing:.2px}
.dtit{font-size:21px;font-weight:600;color:#0d3d28;text-align:center;line-height:1.25;margin-bottom:5px;z-index:1;letter-spacing:-.5px}
.dtit .gold{color:#0d3d28}
[data-theme="dark"] .dtit .gold{color:#0a2e1e !important}
.dsub{font-size:13px;color:#1e5e42;text-align:center;margin-bottom:18px;z-index:1;line-height:1.6;font-weight:600}
.sgrid{display:grid;grid-template-columns:1fr 1fr;column-gap:10px;row-gap:10px;padding:0 14px;margin-bottom:8px}
.scard{background:rgba(255,255,255,.88);backdrop-filter:blur(16px);border:1.5px solid rgba(168,232,212,.45);border-radius:var(--r-md);padding:13px;box-shadow:var(--sh-sm);position:relative;overflow:hidden;transition:background .3s}
/* กล่อง Waste/Yield ในฟอร์มแก้ไขวัตถุดิบ — เทาแท้ นูนเบาๆ แบบเดียวกับการ์ดสถิติหน้าแรก */
.fw-panel{background:var(--gray1);border:1.5px solid var(--gray3);border-radius:var(--r-md);padding:12px;margin-bottom:11px;box-shadow:0 1px 0 rgba(255,255,255,.4) inset,0 1px 3px rgba(0,0,0,.04)}
[data-theme="dark"] .fw-panel{background:rgba(19,20,22,.95) !important;border-color:rgba(255,255,255,.08) !important;box-shadow:0 1px 0 rgba(255,255,255,.05) inset,0 4px 10px rgba(0,0,0,.35),0 1px 3px rgba(0,0,0,.3) !important}
/* กล่องอัปโหลดรูปเมนู — เทาแท้แทนเขียวมิ้นท์ในโหมดมืด */
[data-theme="dark"] #menu-photo-wrap{background:rgba(19,20,22,.95) !important;border-color:rgba(255,255,255,.15) !important}
[data-theme="dark"] #menu-photo-placeholder{color:var(--text-muted) !important}
.scard::before{display:none}
.ing-card::before{display:none}
.ing-card{
  transition:transform .18s,box-shadow .18s,border-color .18s;
  box-shadow:0 3px 0 rgba(78,205,196,.18), 0 4px 10px rgba(0,0,0,.07) !important;
  border-color:rgba(78,205,196,.3) !important;
}
@media(hover:hover){
  .ing-card:hover{transform:translateY(-2px);box-shadow:0 5px 0 rgba(78,205,196,.22), 0 8px 18px rgba(78,205,196,.2) !important;border-color:var(--mint4) !important}
}
.ing-card:active{transform:translateY(1px) scale(.98);box-shadow:0 1px 0 rgba(78,205,196,.18), 0 2px 6px rgba(0,0,0,.08) !important}
.sc-mint::before{background:var(--mint4)}.sc-gold::before{background:var(--gold4)}.sc-green::before{background:var(--green5)}.sc-teal::before{background:var(--mint5)}
.s-ico{font-size:20px;margin-bottom:7px}
.s-lbl{font-size:11px;font-weight:600;color:var(--gray4);margin-bottom:3px;letter-spacing:.3px}
.s-val{font-size:21px;font-weight:600;color:var(--gray8);letter-spacing:-.5px}
.sv-mint{color:var(--mint6)}.sv-gold{color:var(--gold5)}.sv-green{color:var(--green6)}.sv-pink{color:#d4527f}
.s-sub{font-size:10px;color:var(--gray4);margin-top:2px}
/* หน้าแรก: การ์ดสถิติ — ไอคอน+ตัวเลขอยู่แถวบน ป้ายกำกับอยู่แถวล่างเต็มความกว้าง
   ให้ตัวหนังสือขึ้นบรรทัดใหม่ได้แทนที่จะถูกตัด (...) เวลาชื่อยาว เช่น "วัตถุดิบในคลัง" */
.dash-stat{display:flex !important;flex-direction:column !important;align-items:flex-start !important;justify-content:center !important;gap:4px;padding:14px 12px !important}
.dash-stat .s-ico{font-size:19px;margin-bottom:0;flex-shrink:0;line-height:1}
.dash-stat .s-lbl{margin-bottom:0;line-height:1.25;white-space:normal;overflow:visible;text-overflow:clip;font-size:11.5px;word-break:break-word}
.dash-stat .s-val{font-size:20px;letter-spacing:-.3px;line-height:1.15;margin-left:0;text-align:left}
.qgrid{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:0 14px;margin-bottom:10px}
.qbtn{background:rgba(255,255,255,.88);backdrop-filter:blur(12px);border:1.5px solid rgba(168,232,212,.5);border-radius:var(--r-md);padding:13px 11px;display:flex;align-items:center;gap:9px;cursor:pointer;transition:transform .18s,box-shadow .18s;box-shadow:var(--sh-sm)}
.qbtn:hover{transform:translateY(-2px);box-shadow:var(--sh-md)}
.qico{width:36px;height:36px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.qi-m{background:linear-gradient(135deg,var(--mint2),var(--mint3))}.qi-g{background:linear-gradient(135deg,#fef9c3,#fde68a)}.qi-gr{background:linear-gradient(135deg,#dcfce7,#bbf7d0)}.qi-t{background:linear-gradient(135deg,#e0f2fe,#bae6fd)}
.q-lbl{font-size:12px;font-weight:600;color:var(--gray8)}.q-sub{font-size:10px;color:var(--gray4);margin-top:1px}
.mlist{padding:0 14px;margin-bottom:8px}
.mrow{background:var(--bg-card);backdrop-filter:blur(12px);border:1.5px solid var(--border-card);border-radius:var(--r-md);display:flex;justify-content:space-between;align-items:center;margin-bottom:7px;cursor:pointer;transition:transform .18s,box-shadow .18s;box-shadow:var(--sh-sm)}
.mrow:hover{transform:translateY(-1px);box-shadow:var(--sh-md)}
.mr-profit-badge{line-height:1.1}
.mr-profit-badge span{font-size:17px;font-weight:600;color:#d97706;letter-spacing:-.2px}
[data-theme="dark"] .mr-profit-badge span{color:#fbbf24}
.mr-name{font-size:14px;font-weight:600;color:var(--gray8)}.mr-sub{font-size:11px;color:var(--gray4);margin-top:2px}
.mcost{font-size:13px;font-weight:600;color:var(--mint6)}
.mbadge{font-size:10px;font-weight:600;margin-top:2px;padding:2px 7px;border-radius:99px;display:inline-block}
.mb-good{background:#dcfce7;color:var(--green7)}.mb-ok{background:#fef9c3;color:#854d0e}.mb-bad{background:#fee2e2;color:#991b1b}
.msearch{width:100%;background:rgba(255,255,255,.88);backdrop-filter:blur(12px);border:1.5px solid var(--mint3);border-radius:var(--r-md);padding:10px 14px 10px 38px;font-size:14px;outline:none;color:var(--gray8);transition:border-color .2s}
.msearch:focus{border-color:var(--mint4)}
.mcat-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;margin-bottom:10px}
.mcat-tabs::-webkit-scrollbar{display:none}
.mcatbtn{background:#e8faf4;border:none;border-radius:99px;padding:5px 12px;font-size:12px;font-weight:600;color:#1e9688;cursor:pointer;white-space:nowrap;transition:all .2s}
.mcatbtn.on{background:#2ab5a8;color:#fff;box-shadow:none}

/* ── CALC PAGE ── */

.ic{background:#f8fffe;border-radius:16px;padding:13px;margin-bottom:8px;border:1.5px solid rgba(168,232,212,.45);box-shadow:0 2px 8px rgba(0,0,0,.05)}
.ic.linked{background:rgba(224,250,240,.75);border-radius:16px;border:1.5px solid rgba(78,205,196,.35);box-shadow:0 2px 10px rgba(78,205,196,.15)}
.ib{font-size:10px;color:var(--mint6);font-weight:600;margin-bottom:5px;display:flex;justify-content:space-between;align-items:center}
.ir1{display:grid;grid-template-columns:2fr 1fr 1fr 24px;gap:4px;margin-bottom:5px;align-items:center}
.ir2{display:grid;grid-template-columns:1fr 1.4fr auto;gap:4px;align-items:center}
.icost{font-size:13px;font-weight:600;color:#1e9688;white-space:nowrap;padding-left:4px}
.dhint{font-size:10px;color:#0ea5e9;background:#f0f9ff;border-radius:7px;padding:5px 8px;margin-bottom:5px;line-height:1.4}
[data-theme="dark"] .dhint{color:#7dd3fc;background:rgba(14,165,233,.12)}
.air{display:flex;flex-direction:column;gap:7px;margin-top:4px}
.aib{background:rgba(255,255,255,.7);border:1.5px dashed rgba(168,232,212,.6);border-radius:var(--r-sm);padding:8px;font-size:12px;font-weight:600;color:var(--gray5);cursor:pointer;transition:all .2s}
.aib:hover{border-color:var(--mint4);color:var(--mint6);background:var(--mint1)}
.aib.p{border-color:rgba(78,205,196,.5);color:var(--mint5)}

/* live summary */
.lsum{background:var(--bg-card);backdrop-filter:blur(16px);border:1.5px solid var(--border-card);border-radius:var(--r-lg);padding:16px;margin-bottom:10px;box-shadow:0 4px 20px rgba(46,160,67,.1)}
.ll{font-size:10px;font-weight:600;color:var(--mint6);text-transform:uppercase;letter-spacing:1px;margin-bottom:12px}
.lcm{text-align:center;padding:14px 0 16px;border-bottom:1px solid rgba(168,232,212,.25);margin-bottom:12px}
.lcl{font-size:12px;color:var(--text-muted);margin-bottom:6px;font-weight:600;letter-spacing:.2px}
.lcv{font-size:44px;font-weight:600;color:var(--text-main);letter-spacing:-1.5px;line-height:1.1}
.lcs{font-size:12px;color:var(--text-faint);margin-top:6px}
.lbr{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.lrow{display:flex;justify-content:space-between;align-items:center}
.lrl{font-size:12px;color:var(--gray5)}.lrv{font-size:13px;font-weight:600;color:var(--gray6)}
.ldiv{height:1px;background:rgba(168,232,212,.4);margin:4px 0}
.bw-wrap{margin-bottom:11px}
.bw-row{display:flex;justify-content:space-between;margin-bottom:4px}
.bw-lbl{font-size:13px;color:var(--text-muted);font-weight:500}.bw-val{font-size:13px;font-weight:600;color:var(--text-main)}
.bv-good{color:var(--green6)}.bv-ok{color:var(--gold6)}.bv-bad{color:var(--red6)}
.bt{height:7px;background:var(--mint2);border-radius:99px;overflow:visible;position:relative}
.bf{height:100%;border-radius:99px;transition:width .4s cubic-bezier(.34,1.56,.64,1);position:relative}
.bf-good{background:linear-gradient(90deg,var(--mint4),var(--green5))}.bf-ok{background:linear-gradient(90deg,var(--gold4),var(--gold5))}.bf-bad{background:linear-gradient(90deg,var(--red4),var(--red6))}
/* ── ลูกเลื่อน (thumb) ปลายแท่ง Food Cost — เฉพาะแท่งที่ลากได้ (#sum-fc-bar) เท่านั้น
   แท่งอื่นๆ เช่น อัตรากำไรขั้นต้น เป็น read-only ไม่ต้องมีลูกกลม ── */
#sum-fc-bar::after{
  content:'';
  position:absolute;
  right:-6px;
  top:50%;
  transform:translateY(-50%);
  width:14px;
  height:14px;
  border-radius:50%;
  background:#fff;
  border:2.5px solid currentColor;
  box-shadow:0 1px 4px rgba(0,0,0,.25);
  transition:right .4s cubic-bezier(.34,1.56,.64,1);
}
#sum-fc-bar.bf-good::after{color:var(--green5)}
#sum-fc-bar.bf-ok::after{color:var(--gold5)}
#sum-fc-bar.bf-bad::after{color:var(--red6)}
/* ── ลูกเลื่อน (thumb) แท่งกำไรสุทธิในหมวดคำนวณจุดคุ้มทุน (#be-margin-bar) — รูปแบบเดียวกับ #sum-fc-bar ── */
#be-margin-bar::after{
  content:'';
  position:absolute;
  right:-6px;
  top:50%;
  transform:translateY(-50%);
  width:14px;
  height:14px;
  border-radius:50%;
  background:#fff;
  border:2.5px solid var(--green5);
  box-shadow:0 1px 4px rgba(0,0,0,.25);
  transition:right .4s cubic-bezier(.34,1.56,.64,1);
}
#be-margin-track{position:relative}
#be-margin-track::before{
  content:'';
  position:absolute;
  left:0;right:0;
  top:50%;
  transform:translateY(-50%);
  height:28px;
}
/* ── ขยายพื้นที่กดง่ายขึ้น (touch target) ของแท่ง Food Cost แบบไม่กระทบขนาดจริง ──
   ใช้ ::before โปร่งใส วางซ้อนแบบ absolute สูงกว่าตัวแท่งจริง แต่ไม่กินพื้นที่ layout เลย
   (ต่างจากรอบก่อนที่ใช้ padding จริง ทำให้แท่งดูใหญ่ขึ้นจนบังตัวหนังสือ) */
#sum-fc-track{position:relative}
#sum-fc-track::before{
  content:'';
  position:absolute;
  left:0;right:0;
  top:50%;
  transform:translateY(-50%);
  height:28px;
}
.bh{font-size:11px;margin-top:3px}
.bh:not(.bv-good):not(.bv-ok):not(.bv-bad){color:var(--gray4)}
.pg{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.pb{border-radius:var(--r-md);padding:12px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}
.pb-store{background:linear-gradient(180deg,#a8ddd0 0%,#c0e4bc 40%,#f0e4a8 100%);border:none;box-shadow:0 2px 8px rgba(0,120,80,.07)}.pb-rider{background:linear-gradient(180deg,#a8ddd0 0%,#c0e4bc 40%,#f0e4a8 100%);border:none;box-shadow:0 2px 8px rgba(0,120,80,.07)}
.pb-ico{font-size:11px;font-weight:600;opacity:.75;margin-bottom:3px}
.pb-store .pb-ico{color:#0d3d28}.pb-rider .pb-ico{color:#0d3d28}
.pb-val{font-size:22px;font-weight:600;letter-spacing:-.5px;line-height:1.1}
.pb-store .pb-val{color:#0d3d28}.pb-rider .pb-val{color:#0d3d28}
.pb-sub{font-size:10px;margin-top:2px;font-weight:600}
.pb-store .pb-sub{color:#0d3d28}.pb-rider .pb-sub{color:#0d3d28}

/* custom price box */
.custom-price-box{padding:0}
.cp-title{font-size:12px;color:var(--text-faint);margin-bottom:8px}
.cp-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}
.cp-input-wrap{display:flex;flex-direction:column;gap:3px}
.profit-live{background:rgba(168,232,212,.1);border-radius:var(--r-sm);padding:8px 11px;font-size:12px;color:var(--mint6);line-height:1.7;margin-top:6px}
.profit-live .profit-val{font-size:16px;font-weight:600}
.profit-live .pv-good{color:var(--green6)}.profit-live .pv-ok{color:var(--gold6)}.profit-live .pv-bad{color:var(--red6)}

/* delivery platforms */
.del-platforms{display:flex;flex-direction:column;gap:7px;margin-top:10px}
.del-plat{padding:10px 0;border-top:1px solid rgba(168,232,212,.25)}
.del-plat-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.del-plat-name{font-size:13px;font-weight:600;color:var(--text-main)}
.del-inputs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:6px}
.del-result{font-size:11px;color:var(--text-faint);margin-top:6px;padding:4px 0}

/* ── INVENTORY ── */
.ibody{padding:11px 13px;flex:1}
.inv-search-wrap{position:relative;margin-bottom:10px}
.inv-search-ico{position:absolute;left:11px;top:50%;transform:translateY(-50%);font-size:15px;pointer-events:none}
.inv-search{width:100%;background:var(--bg-glass);backdrop-filter:blur(12px);border:1.5px solid var(--border-input);border-radius:var(--r-md);padding:10px 14px 10px 36px;font-size:14px;outline:none;color:var(--text-main);transition:border-color .2s,background .3s;-webkit-appearance:none;appearance:none}
.inv-search:focus{border-color:var(--mint4)}
[data-theme="dark"] .inv-search::placeholder{color:var(--gray4)}
[data-theme="dark"] .pb-store{background:linear-gradient(to top,#f0e4a8,#c0e4bc,#a8ddd0);border:none;box-shadow:0 3px 10px rgba(78,205,196,.25)}
[data-theme="dark"] .pb-store .pb-ico{color:#0d3d28}
[data-theme="dark"] .pb-rider .pb-ico{color:#0d3d28}
[data-theme="dark"] .pb-store .pb-val{color:#0d3d28}
[data-theme="dark"] .pb-store .pb-sub{color:#0d3d28}
[data-theme="dark"] .pb-rider{background:linear-gradient(to top,#f0e4a8,#c0e4bc,#a8ddd0);border:none;box-shadow:0 3px 10px rgba(78,205,196,.25)}
[data-theme="dark"] .pb-rider .pb-val{color:#0d3d28}
[data-theme="dark"] .pb-rider .pb-sub{color:#0d3d28}
/* ปุ่ม "เพิ่มทั้งหมดเข้าลิสต์ซื้อของ" ในอีเว้นแคลคูเลเตอร์ — ใช้พาสเทลเดียวกันทั้ง light และ dark */
#add-all-bom-btn{
  background:linear-gradient(to top,#f0e4a8,#c0e4bc,#a8ddd0) !important;
  color:#0d3d28 !important;
  border:none !important;
}
/* การ์ด "ยอดรวมประมาณ" หน้าลิสต์ซื้อของ — ใช้พาสเทลเดียวกันทั้ง light และ dark */
.shop-total-card{
  background:linear-gradient(to top,#f0e4a8,#c0e4bc,#a8ddd0) !important;
  color:#0d3d28 !important;
}
[data-theme="dark"] .glass-tag{background:rgba(42,44,46,.8);border-color:rgba(58,181,172,.25);color:var(--mint7)}
[data-theme="dark"] .scard{background:var(--bg-card)}
[data-theme="dark"] .s-lbl{color:var(--text-faint)}
[data-theme="dark"] .mr-name{color:var(--text-main)}
[data-theme="dark"] .mr-sub{color:var(--text-muted)}
[data-theme="dark"] .del-plat-name{color:var(--text-main)}
[data-theme="dark"] .acard{background:rgba(255,255,255,.88);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:var(--r-xl);border:1px solid rgba(180,230,210,.4);box-shadow:0 8px 40px rgba(60,150,110,.1),0 2px 8px rgba(0,0,0,.05);overflow:hidden;padding-bottom:14px}
[data-theme="dark"] .ahero{background:linear-gradient(175deg,rgba(180,238,218,.45) 0%,rgba(210,248,234,.25) 55%,transparent 100%);padding:12px 20px 0;display:flex;flex-direction:column;align-items:center;position:relative}
[data-theme="dark"] .q-lbl{color:var(--text-main)}
[data-theme="dark"] .q-sub{color:var(--text-muted)}
[data-theme="dark"] .sec-title,.st{color:var(--text-main) !important}
[data-theme="dark"] .fl{color:var(--mint5)}
[data-theme="dark"] input::placeholder,[data-theme="dark"] select{color:var(--text-muted)}
[data-theme="dark"] .bsm{background:linear-gradient(to top,#f0e4a8,#c0e4bc,#a8ddd0);border:none;color:#0d3d28}
[data-theme="dark"] .add-ing-btn,.aib{background:var(--bg-card);border-color:var(--border-card);color:var(--text-muted)}
[data-theme="dark"] .dsub{font-size:13px;color:#0d3d28;text-align:center;margin-bottom:18px;z-index:1;line-height:1.6;font-weight:600}
/* หน้าจุดคุ้มทุน — โหมดมืด: เอาเส้นกรอบการ์ดออกให้ดูกลืนเนียนเหมือนโหมดสว่าง (ซึ่งกรอบจางจนแทบมองไม่เห็นอยู่แล้ว)
   ใช้ class เฉพาะ .be-card แทนการแก้ --border-card ตรงๆ เพราะตัวแปรนั้นใช้ร่วมกับการ์ดอื่นทั่วทั้งแอป */
[data-theme="dark"] .be-card{border-color:transparent !important}


/* ── Dark mode ที่มองเห็นชัด ── */

/* Pill / Tab filters */
[data-theme="dark"] 
[data-theme="dark"] .pill.on{
  background:var(--mint5);
  border-color:var(--mint5);
  color:#fff;
  box-shadow:0 3px 12px rgba(50,160,154,.4);
}
[data-theme="dark"] .mcatbtn{
  background:rgba(49,51,53,.9);
  border:none;
  color:#8aaa9e;
}
[data-theme="dark"] .mcatbtn.on{
  background:var(--mint5);
  border:none;
  color:#fff;
  box-shadow:none;
}
[data-theme="dark"] .tbtn.on{
  background:linear-gradient(to top,#f0e4a8,#c0e4bc,#a8ddd0);
  color:#0d3d28;
}
[data-theme="dark"] .tbtn.off{
  background:rgba(49,51,53,.8);
  border-color:rgba(58,181,172,.2);
  color:#8aaa9e;
}

/* Glass tag (สวัสดี! badge) */
[data-theme="dark"] .glass-tag,
[data-theme="dark"] .dgreet{font-size:12px;font-weight:600;color:#0d3d28;margin-bottom:5px;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border:1.5px solid rgba(120,210,170,.5);border-radius:99px;padding:6px 16px;z-index:1;box-shadow:0 2px 12px rgba(60,150,110,.15);letter-spacing:.2px}

/* Dashboard hero area */
[data-theme="dark"] .dash-hero{background:linear-gradient(180deg,#a8ddd0 0%,#c0e4bc 40%,#f0e4a8 100%);transition:background .3s;margin-top:calc(-1 * var(--hdr-h, 58px));padding:calc(var(--hdr-h, 58px) + 14px) 18px 26px;border-radius:0 0 32px 32px;display:flex;flex-direction:column;align-items:center;position:relative;overflow:hidden;z-index:1}

/* ปุ่ม "เลือกจากคลัง" หน้าคำนวณ — ใช้สีพาสเทลเดียวกับการ์ด dash-hero ทั้ง light และ dark
   ปรับสีตัวหนังสือเป็นเขียวเข้มแทนขาว เพราะพื้นหลังพาสเทลอ่อนตัวหนังสือขาวจะอ่านไม่ออก */
.btn-stockpick{
  background:linear-gradient(to top,#f0e4a8,#c0e4bc,#a8ddd0) !important;
  color:#0d3d28 !important;
  box-shadow:0 3px 10px rgba(78,205,196,.25) !important;
}

/* Dashboard title */
[data-theme="dark"] .dsub{font-size:13px;color:#0d3d28;text-align:center;margin-bottom:18px;z-index:1;line-height:1.6;font-weight:600}

/* Stat cards ใน dark */
[data-theme="dark"] .scard{
  background:rgba(16,17,18,.92) !important;
  border-color:rgba(120,130,135,.18) !important;
}
[data-theme="dark"] .s-lbl{color:#5a7268 !important}
[data-theme="dark"] .s-val{color:#d4ede5}
[data-theme="dark"] .sv-mint{color:var(--mint6) !important}
[data-theme="dark"] .sv-gold{color:var(--gold5) !important}
[data-theme="dark"] .sv-green{color:var(--green6) !important}
[data-theme="dark"] .sv-pink{color:#e879a8 !important}
[data-theme="dark"] .s-sub{color:#4a6258 !important}

/* Quick action buttons */
[data-theme="dark"] .qbtn{
  background:rgba(17,18,19,.9) !important;
  border-color:rgba(58,181,172,.2) !important;
}
[data-theme="dark"] .q-lbl{color:#c8dcd4 !important}
[data-theme="dark"] .q-sub{color:#5a7268 !important}

/* Menu rows */
[data-theme="dark"] 
[data-theme="dark"] .mr-name{color:#d4ede5 !important}
[data-theme="dark"] .mr-sub{color:#5a7268 !important}
[data-theme="dark"] .mcost{color:var(--mint6) !important}

/* Menu search */
[data-theme="dark"] .msearch{
  background:rgba(17,18,19,.92) !important;
  border-color:rgba(58,181,172,.25) !important;
  color:#d4ede5 !important;
}
[data-theme="dark"] .msearch::placeholder{color:#4a6258}

/* Section titles */
[data-theme="dark"] .st,
[data-theme="dark"] .sec-title{color:#c8dcd4 !important}
[data-theme="dark"] .sb,.sec-badge{color:var(--mint5) !important}

/* Field labels */
[data-theme="dark"] .fl{color:var(--mint5) !important}
[data-theme="dark"] .fi::placeholder{color:#4a6258}
[data-theme="dark"] 
[data-theme="dark"] 
[data-theme="dark"] .fsel option{
  background:#141516;
  color:#eef5f2;
}
[data-theme="dark"] select,
[data-theme="dark"] select option{
  background:#141516 !important;
  color:#eef5f2 !important;
}

/* Ing cards */
[data-theme="dark"] .ic,



/* Live summary */
[data-theme="dark"] 
[data-theme="dark"] .ll{color:var(--mint5) !important}
[data-theme="dark"] .lcl{color:#7aaa92 !important}
[data-theme="dark"] .lcv{color:#d4ede5 !important}
[data-theme="dark"] .lcs{color:#4a6258 !important}
[data-theme="dark"] .lrl{color:#5a7268 !important}
[data-theme="dark"] .lrv{color:#c8dcd4 !important}
[data-theme="dark"] .bw-lbl{color:#7aaa92 !important}

/* Badge colors dark */
[data-theme="dark"] .mb-good{background:rgba(42,44,46,.8);color:#52c472}
[data-theme="dark"] .mb-ok{background:rgba(60,45,15,.8);color:#c9941a}
[data-theme="dark"] .mb-bad{background:rgba(60,20,20,.8);color:#d96460}

/* Stock cards */
[data-theme="dark"] .sc{
  background:rgba(17,18,19,.9) !important;
  border-color:rgba(58,181,172,.18) !important;
}
[data-theme="dark"] .sn{color:#d4ede5 !important}
[data-theme="dark"] .sd{color:#4a6258 !important}
[data-theme="dark"] .sp{color:var(--mint5) !important}
[data-theme="dark"] .sdns{color:#3a8faa !important}

/* Del platform */
[data-theme="dark"] .del-plat{border-top-color:rgba(58,181,130,.2)}
[data-theme="dark"] .del-plat-name{color:#c8dcd4 !important}

/* Preset cards */
[data-theme="dark"] .pc{
  background:rgba(19,20,22,.9) !important;
  border-color:rgba(58,181,172,.18) !important;
}

/* History modal */
[data-theme="dark"] 
[data-theme="dark"] .modal-title{color:#d4ede5}
[data-theme="dark"] .modal-hdr{border-color:rgba(58,181,172,.2) !important}

/* Auth */
[data-theme="dark"] .ahi{color:#d4ede5}
[data-theme="dark"] .ahis{color:#7aaa92}
[data-theme="dark"] .asub{font-size:13px;color:#1e5e42;text-align:center;line-height:1.5;margin-bottom:8px;font-weight:600}
[data-theme="dark"] .dsub{font-size:13px;color:#0d3d28;text-align:center;margin-bottom:18px;z-index:1;line-height:1.6;font-weight:600}
[data-theme="dark"] .dgreet{font-size:12px;font-weight:600;color:#0d3d28;margin-bottom:5px;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border:1.5px solid rgba(120,210,170,.5);border-radius:99px;padding:6px 16px;z-index:1;box-shadow:0 2px 12px rgba(60,150,110,.15);letter-spacing:.2px}
[data-theme="dark"] .gtag{background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border:1.5px solid rgba(120,210,170,.5);border-radius:99px;padding:6px 16px;font-size:12px;font-weight:600;color:#0d3d28;margin-bottom:10px;box-shadow:0 2px 12px rgba(60,150,110,.15);letter-spacing:.2px}
[data-theme="dark"] .aform-t{color:#d4ede5}
[data-theme="dark"] .aform-s{color:#7aaa92}
[data-theme="dark"] .afl{color:var(--mint5)}
[data-theme="dark"] .afi::placeholder{color:#3a5248}
[data-theme="dark"] .abk{color:#5a7268}
[data-theme="dark"] .abk:hover{color:var(--mint5)}
[data-theme="dark"] .ambar{
  background:rgba(31,33,35,.9) !important;
  border-color:rgba(58,181,172,.2) !important;
}
[data-theme="dark"] .alink{color:#5a7268}
[data-theme="dark"] .alink a{color:var(--mint5)}
[data-theme="dark"] .or-txt{color:#3a5248}
[data-theme="dark"] .or-bar{background:linear-gradient(90deg,transparent,rgba(58,181,172,.2),transparent)}

/* Settings */
[data-theme="dark"] .gc{background:rgba(19,20,22,.92) !important;box-shadow:0 2px 12px rgba(0,0,0,.3) !important;border-color:rgba(58,181,130,.2) !important}

/* Offline badge */
[data-theme="dark"] .offline-badge{
  background:rgba(25,27,29,.96);
  border-color:rgba(58,181,172,.25);
}
.pills{display:flex;gap:5px;overflow-x:auto;padding-bottom:2px;margin-bottom:11px}
.pills::-webkit-scrollbar{display:none}
.pill{background:var(--bg-card);border:1.5px solid var(--border-card);border-radius:99px;padding:5px 12px;font-size:12px;font-weight:600;color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:all .2s}
.pill.on{background:var(--mint5);border-color:var(--mint5);color:#fff;box-shadow:0 3px 12px rgba(78,205,196,.35)}
.ttog{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:11px}
.tbtn{padding:9px;border-radius:var(--r-md);font-size:13px;font-weight:600;cursor:pointer;transition:transform .12s,background .2s,color .2s,border-color .2s,box-shadow .2s;border:1.5px solid transparent}
.tbtn:active{transform:scale(.95)}
.tbtn.on{background:linear-gradient(to top,#f0e4a8,#c0e4bc,#a8ddd0);color:#0d3d28;box-shadow:0 4px 14px rgba(78,205,196,.35)}
.tbtn.off{background:var(--bg-card);border-color:var(--border-input);color:var(--text-muted)}
.sc{background:var(--bg-card);backdrop-filter:blur(12px);border:1.5px solid var(--border-card);border-radius:var(--r-md);padding:12px 13px;margin-bottom:7px;box-shadow:var(--sh-sm);transition:all .18s}
.sc:hover{transform:translateY(-1px);box-shadow:var(--sh-md)}
.sc-top{display:flex;justify-content:space-between;align-items:flex-start}
.sn{font-size:14px;font-weight:600;color:var(--text-main)}.sd{font-size:11px;color:var(--text-faint);margin-top:2px}.sdns{font-size:11px;color:#0ea5e9;margin-top:1px}.sp{font-size:13px;font-weight:600;color:var(--mint6);margin-top:3px}
.sact{display:flex;gap:7px;align-items:center;margin-left:8px;flex-shrink:0}
.sc-edit{background:none;border:none}
.sc-hist{font-size:10px;color:var(--mint5);font-weight:600;cursor:pointer;margin-top:4px}
/* price history chart mini */
.hist-bar{display:flex;align-items:flex-end;gap:2px;height:28px;margin-top:5px}
.hb{width:12px;background:var(--mint3);border-radius:2px 2px 0 0;transition:height .3s}
.hb.curr{background:var(--mint5)}
.stock-edit-form{margin-top:9px;padding-top:9px;border-top:1px solid var(--mint2)}

/* preset card */
.pc{background:var(--bg-card);backdrop-filter:blur(10px);border:1.5px solid var(--border-card);border-radius:var(--r-md);padding:10px 12px;margin-bottom:7px}
.pc-already{font-size:12px;color:var(--green6);font-weight:600;text-align:right}
.pc-inputs{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;align-items:flex-end;margin-top:7px}

/* offline badge */
.offline-badge{position:fixed;bottom:90px;right:14px;background:rgba(22,80,55,.9);backdrop-filter:blur(10px);border-radius:99px;padding:6px 12px;font-size:11px;font-weight:600;color:#e0faea;z-index:100;display:none}
.offline-badge.show{display:block}

/* ══ DARK MODE REBUILT ══ */
[data-theme="dark"] #auth{background:linear-gradient(175deg,#a8ddd0 0%,#c0e4bc 40%,#f0e4a8 100%) !important}
[data-theme="dark"] .acard{background:rgba(19,20,22,.95) !important;border:1px solid rgba(58,181,130,.18) !important;box-shadow:0 8px 40px rgba(0,0,0,.5) !important}
[data-theme="dark"] .ahero{background:linear-gradient(175deg,rgba(34,36,38,.6) 0%,rgba(24,26,28,.3) 55%,transparent 100%) !important}
[data-theme="dark"] .atit{color:#e0f5ec !important}
[data-theme="dark"] .atit .ac{color:#3ecf9e !important}
[data-theme="dark"] .asub{color:#8abfa0 !important;font-weight:500 !important}
[data-theme="dark"] .gtag{background:rgba(34,36,38,.9) !important;border-color:rgba(58,181,130,.3) !important;color:#7addb8 !important}
[data-theme="dark"] .fn{color:#c8e8d8 !important}
[data-theme="dark"] .fi2{background:rgba(28,30,32,.9) !important;border-color:rgba(58,181,130,.2) !important}
[data-theme="dark"] .shell{background:linear-gradient(175deg,#0d0e0f 0%,#0a0b0c 60%,#08090a 100%) !important}
[data-theme="dark"] .dash-hero{background:linear-gradient(180deg,#a8ddd0 0%,#c0e4bc 40%,#f0e4a8 100%) !important}
[data-theme="dark"] .dtit{color:#0a2e1e !important}
[data-theme="dark"] .dsub{color:#0d3d28 !important}
[data-theme="dark"] .dgreet{background:rgba(255,255,255,.95) !important;border-color:rgba(120,210,170,.5) !important;color:#0d3d28 !important}
[data-theme="dark"] .profit-live{background:rgba(62,207,158,.08) !important;color:#7addb8 !important}
[data-theme="dark"] .fi{background:rgba(28,31,35,.95) !important;border-color:rgba(140,145,150,.35) !important;color:#d4ede5 !important}
[data-theme="dark"] .fi::placeholder{color:#8b95a1}
[data-theme="dark"] .fsel{background:rgba(28,31,35,.95) !important;border-color:rgba(140,145,150,.35) !important;color:#d4ede5 !important}
[data-theme="dark"] .fsel option{background:#141516;color:#eef5f2}
[data-theme="dark"] .ic{background:rgba(10,11,12,.85) !important}
[data-theme="dark"] .ic.linked{background:rgba(23,25,27,.9) !important}
[data-theme="dark"] .ib{color:#3ecf9e !important}
[data-theme="dark"] .icost{color:#3ecf9e !important}
[data-theme="dark"] .afi{background:rgba(28,31,35,.95) !important;border-color:rgba(58,181,130,.28) !important;color:#d4ede5 !important}
[data-theme="dark"] .afi::placeholder{color:#8b95a1}

/* ── PAGE TRANSITIONS ── */
.page.on{animation:pageSlideIn .25s ease}
@keyframes pageSlideIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* ── BUTTON LOADING STATE ── */
.btn-loading{position:relative;pointer-events:none;opacity:.8}
.btn-loading::before{
  content:'';position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:18px;height:18px;
  border:2.5px solid rgba(255,255,255,.3);
  border-top-color:#fff;
  border-radius:50%;
  animation:spin .7s linear infinite;
}
.btn-loading .btn-text{opacity:0}
@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}

/* ── VALIDATION ── */
.fi.error,.fsel.error{border-color:#ef4444 !important;background:#fff5f5 !important;animation:shake .3s ease}
.fi.success{border-color:#22c55e !important;background:#f0fdf4 !important}
.error-msg{color:#dc2626;font-size:11px;margin-top:3px;display:flex;align-items:center;gap:3px;animation:fadeIn .2s ease}
.error-msg::before{content:'⚠️';font-size:10px}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}

/* ── HOVER EFFECTS (desktop) ── */


/* ── NUMBER COUNTER ANIMATION ── */
.count-animate{animation:countUp .6s ease}
@keyframes countUp{from{opacity:0;transform:translateY(8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}

/* ── EMPTY STATE ── */
.empty-state{display:flex;flex-direction:column;align-items:center;padding:36px 20px;text-align:center}
.empty-state-img{width:90px;height:90px;object-fit:contain;opacity:.85;animation:fl 3.5s ease-in-out infinite;margin-bottom:12px;filter:drop-shadow(0 6px 16px rgba(46,160,67,.2))}
.empty-state-title{font-size:15px;font-weight:600;color:var(--text-main);margin-bottom:6px}
.empty-state-sub{font-size:13px;color:var(--text-muted);line-height:1.6;margin-bottom:16px}

/* ── TOOLTIP ── */
.tooltip-wrap{position:relative;display:inline-block}
.tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);
  background:rgba(10,11,12,.95);color:#e0faea;
  font-size:11px;font-weight:600;padding:5px 10px;
  border-radius:8px;white-space:nowrap;pointer-events:none;
  opacity:0;transition:opacity .2s;z-index:100}
.tooltip-wrap:hover .tooltip{opacity:1}

/* ── PROGRESS BAR (food cost) ── */
.fc-bar-fill{transition:width .6s cubic-bezier(.34,1.56,.64,1)}

/* ── SCROLL TO TOP ── */




/* ── SPEECH BUBBLE (เบาหวิว tip) ── */
.bao-bubble{
  background:#fff;
  border:1.5px solid rgba(120,210,170,.5);
  border-radius:16px;
  padding:8px 14px;
  font-size:12px;font-weight:600;
  color:#0d3d28;
  box-shadow:0 3px 12px rgba(60,150,110,.15);
  max-width:280px;width:max-content;text-align:center;white-space:nowrap;
  position:relative;z-index:1;
  animation:bubbleIn .4s cubic-bezier(.34,1.56,.64,1);
  margin-bottom:8px;
}
[data-theme="dark"] .bao-bubble{background:rgba(31,33,35,.95);color:#a8d8c0;border-color:rgba(62,207,158,.3)}
@keyframes bubbleIn{from{opacity:0;transform:scale(.8) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}

/* ── STAT CARD ANIMATION ── */
.scard{transition:transform .2s,box-shadow .2s}
.scard:active{transform:scale(.97)}

/* ── BADGE PULSE (notification) ── */
.pulse-dot{
  width:8px;height:8px;border-radius:50%;
  background:#ef4444;
  animation:pulse-ring 1.5s ease infinite;
}
@keyframes pulse-ring{
  0%{box-shadow:0 0 0 0 rgba(239,68,68,.4)}
  70%{box-shadow:0 0 0 8px rgba(239,68,68,0)}
  100%{box-shadow:0 0 0 0 rgba(239,68,68,0)}
}

/* ── SKELETON LOADING ── */
.skeleton{
  background:linear-gradient(90deg,rgba(168,232,212,.3) 25%,rgba(168,232,212,.6) 50%,rgba(168,232,212,.3) 75%);
  background-size:200% 100%;
  animation:skeleton-wave 1.5s ease infinite;
  border-radius:8px;
}
[data-theme="dark"] .skeleton{
  background:linear-gradient(90deg,rgba(44,46,48,.4) 25%,rgba(40,80,56,.6) 50%,rgba(44,46,48,.4) 75%);
  background-size:200% 100%;
}
@keyframes skeleton-wave{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ── SWIPE INDICATOR ── */
.swipe-hint{font-size:10px;color:var(--text-faint);text-align:center;padding:4px 0 8px;display:none}
@media(max-width:767px){.swipe-hint{display:block}}

/* ── CONFIRM MODAL ── */
#confirm-modal-bg{align-items:center;justify-content:center;padding:20px}
#confirm-modal-bg .modal{animation:confirmPop .3s cubic-bezier(.34,1.56,.64,1)}
@keyframes celebPop {
  0% { transform: scale(.6); opacity: 0; }
  60% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(1); opacity: 1; }
}
@keyframes bounce {
  0%, 100% { transform: translateY(0); }
  30% { transform: translateY(-10px); }
  60% { transform: translateY(-5px); }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes confirmPop{from{opacity:0;transform:scale(.85) translateY(16px)}to{opacity:1;transform:scale(1) translateY(0)}}
#confirm-ok-btn:hover{transform:scale(1.04);box-shadow:0 4px 16px rgba(239,68,68,.4)}
#confirm-ok-btn:active{transform:scale(.97)}
#confirm-modal-bg.danger-confirm #confirm-ok-btn{background:linear-gradient(135deg,#ef4444,#b91c1c)}

/* ════════════════════════════════════
   TYPOGRAPHY SYSTEM — consistent scale
   ════════════════════════════════════ */

/* Scale: 10 11 12 13 14 15 17 21 */
/* Weight: 400=normal 600=semi 700=bold 800=heavy 900=black */

/* Section headers */
.sh{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.st{font-size:14px;font-weight:600;color:var(--text-main);letter-spacing:-.2px}
.sb{font-size:11px;font-weight:600;color:var(--mint6);background:rgba(78,205,196,.1);padding:2px 8px;border-radius:99px}

/* Labels */
.fl{font-size:12px;font-weight:600;color:var(--mint6);margin-bottom:5px;display:block;letter-spacing:.1px}

/* Input hints */
.fh{font-size:11px;color:var(--text-muted);margin-top:3px;line-height:1.5}

/* Ingredient card */
.ic-name{font-size:13px;font-weight:600;color:var(--text-main)}
.ic-price{font-size:11px;color:var(--text-muted);margin-top:2px}

/* Stock card */
.sn{font-size:14px;font-weight:600;color:var(--text-main);line-height:1.3}
.sd{font-size:11px;color:var(--text-faint);margin-top:2px}
.sp{font-size:13px;font-weight:600;color:var(--mint6);white-space:nowrap}

/* Menu row */
.mr-name{font-size:14px;font-weight:600;color:var(--text-main)}
.mr-sub{font-size:11px;color:var(--text-faint);margin-top:2px;line-height:1.5}
.mr-badge{font-size:11px;font-weight:600;padding:3px 9px;border-radius:99px;white-space:nowrap}

/* Dashboard */
.s-val{font-size:22px;font-weight:600;line-height:1.1;margin:4px 0}
.s-lbl{font-size:11px;font-weight:600;color:var(--text-faint)}
.s-sub{font-size:11px;color:var(--text-faint);margin-top:2px}

/* Live summary */
.ll{font-size:13px;font-weight:600;color:var(--mint6);margin-bottom:8px;letter-spacing:-.2px}
/* lcl removed - see lsum section */

/* lcs removed - see lsum section */

/* Buttons — consistent height */
.bp,.bg,.bw{height:46px;display:flex;align-items:center;justify-content:center;font-size:14px}
.bsm{height:36px;font-size:13px}

/* Quick action */
.q-lbl{font-size:13px;font-weight:600;color:var(--text-main);margin-top:6px;line-height:1.3}
.q-sub{font-size:11px;color:var(--text-faint);margin-top:2px}

/* Modal */
.modal-title{font-size:16px;font-weight:600;color:var(--text-main);letter-spacing:-.3px;line-height:1.5}

/* Form section title */
.form-sec{font-size:13px;font-weight:600;color:var(--text-main);margin-bottom:10px;display:flex;align-items:center;gap:6px}

/* Hint text */
.hint{font-size:11px;color:var(--text-faint);line-height:1.6}

/* Price display */
.price-main{font-size:16px;font-weight:600;color:var(--mint6)}
.price-sub{font-size:11px;color:var(--text-faint)}

/* Category pill */

.pill.on{font-size:12px;font-weight:600}

/* Auth */
.atit{font-size:22px;font-weight:600;letter-spacing:-.5px;line-height:1.25}
.asub{font-size:13px;line-height:1.7;font-weight:500}
.afl{font-size:12px;font-weight:600;display:block;margin-bottom:5px}
.afi{font-size:14px}

/* Offline badge */
.offline-badge{font-size:12px;font-weight:600}

/* Nav labels */
.ni-lbl{font-size:11px;font-weight:600}

/* Header */
.hdr-name{font-size:15px;font-weight:600;letter-spacing:-.3px}
.hdr-sub{font-size:10px;font-weight:600;opacity:.7}

.emoji-pick-btn{
  width:36px;height:36px;border-radius:8px;font-size:18px;
  background:var(--bg-card);border:1.5px solid var(--border-card);
  cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;
}
.emoji-pick-btn:hover{transform:scale(1.15);border-color:var(--mint4)}
.emoji-pick-btn.selected{border-color:var(--mint4);background:rgba(78,205,196,.15);transform:scale(1.1)}
.size-pick-btn.selected{border-color:#f59e0b !important;background:rgba(245,158,11,.12) !important;color:#b45309 !important}

@media print {
  .bnav,.hdr,.bao-bubble,.scroll-top,#scroll-top,
  .abtns,.acard .ambar,button:not(.no-print-hide){display:none!important}
  body{background:#fff!important}
  .print-card{display:block!important}
  
  
}
.print-card{display:none}

/* ── CALC SECTION GROUPS ── */
.csec{
  background:#ffffff;
  border-radius:16px;
  padding:16px;
  margin-bottom:12px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  border:1.5px solid rgba(168,232,212,.5);
  overflow:hidden;
  box-sizing:border-box;
  width:100%;
}
.csec-hdr{
  display:flex;align-items:center;gap:6px;
  margin-bottom:8px;
}
.csec-icon{font-size:16px}
.csec-title{font-size:13px;font-weight:600;color:var(--text-main);letter-spacing:-.2px}
.csec-badge{font-size:12px;font-weight:600;color:var(--mint5);margin-left:auto}
[data-theme="dark"] .csec{background:rgba(19,20,22,.9) !important}
[data-theme="dark"] .csec-title{color:#d4ede5}

/* ── INNER SUB-CARD (inside csec) ── */
.sub-box{
  background:rgba(240,253,249,.8);
  border:1.5px solid rgba(168,232,212,.5);
  border-radius:12px;
  padding:11px 12px;
  margin-bottom:10px;
}
.sub-box-title{font-size:11px;color:var(--mint6);margin-bottom:8px;font-weight:600;display:flex;align-items:center;gap:4px}
[data-theme="dark"] .sub-box{background:rgba(24,26,28,.7) !important;border-color:rgba(58,181,130,.25) !important}

/* ══════════════════════════════════════════
   UNIFIED DESIGN SYSTEM — consistent all pages
   ══════════════════════════════════════════ */

/* ── Root tokens (override ที่นี่) ── */
:root {
  --card-bg: #ffffff;
  --card-border: rgba(168,232,212,.5);
  --card-radius: 16px;
  --card-shadow: 0 2px 12px rgba(0,0,0,.06);
  --card-pad: 16px;
  --input-bg: #f0fdf9;
  --input-border: rgba(168,232,212,.6);
  --input-radius: 10px;
}
[data-theme="dark"] {
  --card-bg: rgba(19,20,22,.92);
  --card-border: rgba(58,181,130,.2);
  --card-shadow: 0 2px 12px rgba(0,0,0,.3);
  --input-bg: rgba(28,31,35,.95);
  --input-border: rgba(58,181,130,.28);
}

/* ── Universal card — applies to ALL pages ── */
.csec, .gc, .scard, .pc, .qbtn,
#p-inv .sc, #p-settings .gc {
  background: var(--card-bg) !important;
  border: 1.5px solid var(--card-border) !important;
  border-radius: var(--card-radius) !important;
  box-shadow: var(--card-shadow) !important;
  overflow: hidden;
  box-sizing: border-box;
}
.csec, .gc { padding: 12px !important; margin-bottom: 8px; }

/* การ์ดปลดล็อกใช้งานตลอดชีพ — ให้เงาลอยเด่นกว่าการ์ดอื่น ต้อง !important และ specificity
   สูงกว่า "#p-settings .gc" ด้านบน (ID+class) ซึ่งบังคับ box-shadow ของทุกการ์ดไว้แล้ว */
#p-settings #upgrade-card.gc { box-shadow: 0 0 0 1.5px rgba(46,160,67,.35), 0 14px 34px rgba(46,160,67,.28), 0 4px 10px rgba(0,0,0,.08) !important; }
/* บนพื้นหลังมืด เงาสีดำมองแทบไม่เห็น ใช้ขอบเรืองแสงสีมิ้นท์แทนให้เด่นจริง */
[data-theme="dark"] #p-settings #upgrade-card.gc { box-shadow: 0 0 0 1.5px rgba(62,207,158,.5), 0 12px 40px rgba(62,207,158,.25) !important; }
/* อนิเมชั่นตอนกดปุ่ม/ช่องต่างๆ ในการ์ดปลดล็อกใช้งานตลอดชีพ (ยกเว้นปุ่มที่ disabled อยู่) */
#upgrade-card button:not(:disabled):active,
#upgrade-card label:active { transform: scale(.97); }
/* ปุ่มแนบสลิป — เส้นประ ต้อง !important เพราะ Universal button rule (.bw) บังคับ
   border แบบ solid ไว้แล้ว */
#upgrade-card label[for="slip-upload-input"] { border-style: dashed !important; }

/* ── Universal input ── */
.fi, .fsel, .afi {
  background: var(--input-bg) !important;
  border: 1.5px solid var(--input-border) !important;
  border-radius: var(--input-radius) !important;
  color: var(--text-main) !important;
}
.fi:focus, .fsel:focus { 
  border-color: var(--mint4) !important; 
  box-shadow: 0 0 0 3px rgba(78,205,196,.15) !important;
  outline: none !important;
}

/* ── Stock card ── */
#p-inv .sc {
  padding: 11px 13px;
  margin-bottom: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/* ── Dashboard stat card ── */
.scard {
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/* ── Quick action btn ── */
.qbtn {
  padding: 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  text-align: center;
  border: none;
}
.qbtn:active { transform: scale(.97); }

/* ── Section header ── */
.sh { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.st { font-size: 14px; font-weight:600; color: var(--text-main); letter-spacing: -.2px; }
.sb { font-size: 12px; font-weight:600; color: var(--mint5); }

/* ── Page padding consistent ── */
#p-calc .cbody,
#p-inv .ibody,
#p-settings > div {
  padding: 12px 14px 20px;
  box-sizing: border-box;
}

/* ── Nav active indicator ── */
.ni.on .ni-lbl { color: var(--mint5) !important; font-weight:600; }
.ni.on .ni-ico { filter: none; }

/* ══════════════════════════════
   CALC PAGE UI IMPROVEMENTS
   ══════════════════════════════ */

/* ── Input ใหญ่ขึ้น ── */
#p-calc .fi, #p-calc .fsel {
  padding: 13px 14px !important;
  font-size: 14px !important;
  border-radius: 12px !important;
}

/* ── Section header ── */
.csec-hdr {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1.5px solid rgba(168,232,212,.4);
}
.csec-icon { font-size: 18px; }
.csec-title { font-size: 14px; font-weight:600; color: var(--text-main); }
.csec-badge { font-size: 13px; font-weight:600; color: var(--mint5); margin-left: auto; }

[data-theme="dark"] .csec-hdr { border-color: rgba(58,181,130,.2); }
[data-theme="dark"] .csec-title { color: #d4ede5; }

/* ── Label ── */
#p-calc .fl {
  font-size: 13px !important;
  font-weight:600 !important;
  margin-bottom: 6px !important;
  display: block;
  color: var(--mint6);
}

/* ── g2 grid gap ── */
#p-calc .g2 { gap: 10px !important; }
#p-calc .g3 { gap: 8px !important; }

/* ── fw field ── */
#p-calc .fw { margin-bottom: 12px !important; }

/* ── Add ingredient buttons ── */
.aib {
  padding: 12px !important;
  font-size: 13px !important;
  font-weight:600 !important;
  border-radius: 12px !important;
}

/* ── ic card ── */
.ic {
  padding: 13px !important;
  border-radius: 16px !important;
  margin-bottom: 10px !important;
}
.ic.linked {
  background: rgba(232,252,244,.8) !important;
  border-color: rgba(78,205,196,.5) !important;
  box-shadow: 0 2px 10px rgba(78,205,196,.18) !important;
}
[data-theme="dark"] .ic.linked {
  background: rgba(23,25,27,.95) !important;
  border-color: rgba(62,207,158,.35) !important;
}

/* ── sub-box ── */
.sub-box {
  background: rgba(240,253,249,.8) !important;
  border: 1.5px solid rgba(168,232,212,.5) !important;
  border-radius: 12px !important;
  padding: 12px 13px !important;
  margin-bottom: 12px !important;
}
.sub-box-title {
  font-size: 12px;
  font-weight:600;
  color: var(--mint6);
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 5px;
}
[data-theme="dark"] .sub-box {
  background: rgba(24,26,28,.7) !important;
  border-color: rgba(58,181,130,.25) !important;
}

/* ══════════════════════════════
   DESKTOP FIX — proper layout
   ══════════════════════════════ */


.ir1-row2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:6px}

/* ══ FONT: Modern Sans-Serif ══ */


:root {
  --font-main: -apple-system, 'Noto Sans Thai', 'Helvetica Neue', Arial, sans-serif;
}
*, *::before, *::after, body, input, select, textarea, button {
  font-family: -apple-system, 'Noto Sans Thai', 'Helvetica Neue', Arial, sans-serif !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ══ CARD STYLE — solid white เหมือนภาพ ══ */
.csec, .gc {
  background: #ffffff !important;
  border: 1.5px solid rgba(168,232,212,.55) !important;
  border-radius: 18px !important;
  box-shadow: 0 2px 12px rgba(0,0,0,.05) !important;
  backdrop-filter: none !important;
}
.scard, .qbtn {
  background: #ffffff !important;
  border: 1.5px solid rgba(168,232,212,.55) !important;
  border-radius: 16px !important;
  box-shadow: 0 1px 8px rgba(0,0,0,.05) !important;
  backdrop-filter: none !important;
}
.mrow {
  background: #ffffff !important;
  border: 1.5px solid rgba(168,232,212,.4) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
#p-inv .sc {
  background: #ffffff !important;
  border: 1.5px solid rgba(168,232,212,.4) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
}
.ic {
  background: #f8fffe !important;
  border: 1.5px solid rgba(168,232,212,.5) !important;
  border-radius: 16px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.06) !important;
  backdrop-filter: none !important;
}
.ic.linked {
  background: rgba(224,252,244,.8) !important;
  border-color: rgba(78,205,196,.5) !important;
  border-radius: 16px !important;
  box-shadow: 0 2px 10px rgba(78,205,196,.18) !important;
}
/* dark mode */
[data-theme="dark"] .csec, [data-theme="dark"] .gc {
  background: rgba(19,20,22,.95) !important;
  border-color: rgba(58,181,130,.2) !important;
}
[data-theme="dark"] .scard, [data-theme="dark"] .qbtn {
  background: rgba(19,20,22,.95) !important;
  border-color: rgba(120,130,135,.18) !important;
}
[data-theme="dark"] .mrow, [data-theme="dark"] #p-inv .sc {
  background: rgba(19,20,22,.92) !important;
  border-color: rgba(58,181,130,.15) !important;
}
[data-theme="dark"] .ic { background: rgba(10,11,12,.8) !important; }
[data-theme="dark"] .ic.linked { background: rgba(23,25,27,.9) !important; }

/* ══ INPUT solid ══ */
.fi, .fsel {
  background: #f0fdf9 !important;
  border: 1.5px solid rgba(168,232,212,.6) !important;
  backdrop-filter: none !important;
}
.fi:focus, .fsel:focus {
  background: #ffffff !important;
  border-color: var(--mint4) !important;
  box-shadow: 0 0 0 3px rgba(78,205,196,.12) !important;
}
[data-theme="dark"] .fi, [data-theme="dark"] .fsel {
  background: rgba(28,31,35,.95) !important;
  border-color: rgba(140,145,150,.35) !important;
}
/* Header */
.hdr {
  background: rgba(255,255,255,.96) !important;
  backdrop-filter: blur(12px) !important;
  border-bottom: 1px solid rgba(168,232,212,.35) !important;
}
[data-theme="dark"] .hdr:not(.hdr-hero-mode) {
  background: rgba(10,11,12,.97) !important;
}
/* Nav */
.bnav {
  background: rgba(255,255,255,.96) !important;
  border-top: 1px solid rgba(168,232,212,.35) !important;
}
[data-theme="dark"] .bnav {
  background: rgba(10,11,12,.97) !important;
}

/* ══ PROMPT FONT OVERRIDE ══ */
:root { --font: 'Prompt', sans-serif !important; }
html, body, * {
  font-family: 'Prompt', sans-serif !important;
}

/* cbody padding รอบนอก */
.cbody, .ibody, #p-settings > div {
  padding: 12px 16px 20px !important;
}

/* ══ CARD WHITE — ทุกหน้า ══ */
.gc, .csec {
  background: #ffffff !important;
  border: 1.5px solid rgba(168,232,212,.5) !important;
  border-radius: 16px !important;
  padding: 16px !important;
  margin-bottom: 12px !important;
  box-shadow: 0 2px 10px rgba(0,0,0,.05) !important;
  overflow: hidden !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
[data-theme="dark"] .gc,
[data-theme="dark"] .csec {
  background: rgba(19,20,22,.95) !important;
  border-color: rgba(58,181,130,.2) !important;
  box-shadow: none !important;
}

/* ════════════════════════════════════════
   BAOHWIW CLEAN UI — final design system
   ════════════════════════════════════════ */

/* ── Page background ── */
.shell, #p-dash, #p-calc, #p-inv, #p-settings {
  background: linear-gradient(180deg,#d3f7d3 0%,#c2e8b5 100%) !important;
}

/* ── Card: ขาว shadow เบา ไม่มีเส้น ── */
.gc, .csec, .scard, .qbtn {
  background: #ffffff !important;
  border: none !important;
  border-radius: 16px !important;
  box-shadow: 0 2px 12px rgba(0,120,80,.08) !important;
  padding: 16px !important;
  margin-bottom: 12px !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
  width: 100% !important;
}
/* การ์ดสถิติหน้าแรก (.dash-stat) อยู่ใน .sgrid grid อยู่แล้ว ไม่ต้องการ margin-bottom
   แยกของตัวเอง เพราะจะทำให้ 2 คอลัมน์เตี้ย/สูงไม่เท่ากัน (ไม่บาลานซ์) — ให้ row-gap ของ grid
   จัดระยะห่างแทน และคง padding แบบกะทัดรัดของ .dash-stat ไว้ ไม่ให้ถูกทับเป็น 16px */
.sgrid .scard.dash-stat {
  padding: 12px !important;
  margin-bottom: 0 !important;
}
/* การ์ดวัตถุดิบ (หน้าคำนวณต้นทุน) — คงพื้นหลังไล่สีมิ้นท์ไว้ ไม่ให้ถูกกฎด้านบนทับเป็นสีขาวล้วน */
.ing-card {
  background: linear-gradient(135deg,rgba(78,205,196,.14),rgba(78,205,196,.04)) !important;
}
[data-theme="dark"] .ing-card {
  background: linear-gradient(135deg,rgba(78,205,196,.16),rgba(19,20,22,.95)) !important;
}
/* ชื่อวัตถุดิบต้องเด่น อ่านง่าย ไม่ใช่สีจางแบบ label ทั่วไปของ .s-lbl */
[data-theme="dark"] .ing-card .s-lbl {
  color: #eafaf5 !important;
}

/* ── Input: มินต์อ่อน ── */
.fi, .fsel, .afi {
  background: #e8faf4 !important;
  border: none !important;
  border-radius: 10px !important;
  padding: 12px 14px !important;
  font-size: 14px !important;
  color: #1a3a2a !important;
  box-shadow: none !important;
}
.fi:focus, .fsel:focus {
  background: #d4f5ec !important;
  outline: none !important;
}

/* ── Label ── */
.fl {
  font-size: 13px !important;
  font-weight:600 !important;
  color: #2ab5a8 !important;
  margin-bottom: 6px !important;
  display: block !important;
}

/* ── Section header ── */
.csec-hdr, .sh {
  margin-bottom: 12px !important;
  padding-bottom: 8px !important;
  border-bottom: 1.5px solid #e8faf4 !important;
}
.csec-title, .st {
  font-size: 14px !important;
  font-weight:600 !important;
  color: #1a3a2a !important;
}

/* ── sub-box: มินต์อ่อน ── */
.sub-box {
  background: #f0fdf9 !important;
  border: none !important;
  border-radius: 12px !important;
  padding: 12px !important;
  margin-bottom: 10px !important;
}
.sub-box-title {
  font-size: 12px !important;
  font-weight:600 !important;
  color: #2ab5a8 !important;
  margin-bottom: 8px !important;
}

/* ── ic (ingredient card) ── */
.ic {
  background: #f8fffe !important;
  border: 1.5px solid rgba(168,232,212,.5) !important;
  border-radius: 16px !important;
  padding: 12px !important;
  margin-bottom: 8px !important;
  box-shadow: 0 2px 8px rgba(0,120,80,.08) !important;
}
.ic.linked {
  background: #e8faf4 !important;
  border-color: rgba(78,205,196,.5) !important;
  box-shadow: 0 2px 10px rgba(78,205,196,.18) !important;
}

/* ── Buttons ── */
.bp {
  background: linear-gradient(135deg,#f59e0b,#d97706) !important;
  border: none !important;
  border-radius: 14px !important;
  color: #fff !important;
  font-weight:600 !important;
  font-size: 15px !important;
  box-shadow: 0 4px 14px rgba(217,119,6,.3) !important;
}
.bw {
  background: #ffffff !important;
  border: 1.5px solid #d4f5ec !important;
  border-radius: 14px !important;
  color: #1e9688 !important;
  font-weight:600 !important;
}
.bg {
  background: transparent !important;
  border: 1.5px solid #d4f5ec !important;
  border-radius: 14px !important;
  color: #2ab5a8 !important;
  font-weight:600 !important;
}

/* ── Menu row ── */
.mrow {
  background: #ffffff !important;
  border: none !important;
  border-radius: 14px !important;
  box-shadow: 0 5px 0 #a8cea0 !important;
  padding: 10px 13px !important;
  margin-bottom: 10px !important;
  transition: transform .1s ease, box-shadow .1s ease !important;
}
.mrow:active {
  transform: translateY(5px);
  box-shadow: 0 0 0 #a8cea0 !important;
}

/* ── Stock card ── */
#p-inv .sc {
  background: #ffffff !important;
  border: none !important;
  border-radius: 14px !important;
  box-shadow: 0 2px 8px rgba(0,120,80,.07) !important;
  padding: 12px 14px !important;
  margin-bottom: 8px !important;
  backdrop-filter: none !important;
}

/* ── Header ── */
.hdr {
  background: rgba(255,255,255,.97) !important;
  border-bottom: 1px solid #e8faf4 !important;
  box-shadow: 0 1px 8px rgba(0,120,80,.06) !important;
}

/* ── Nav ── */
.bnav {
  background: #ffffff !important;
  border-top: none !important;
  box-shadow: 0 10px 30px rgba(78,205,196,.28), 0 4px 40px rgba(78,205,196,.22), 0 0 60px rgba(78,205,196,.14) !important;
}

/* ── pill / mcatbtn ── */
.pill, .mcatbtn {
  background: #e8faf4 !important;
  border: none !important;
  border-radius: 99px !important;
  color: #1e9688 !important;
  font-weight:600 !important;
}
.pill.on, .mcatbtn.on {
  background: #2ab5a8 !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

/* ══ DARK MODE ══ */
[data-theme="dark"] .shell,
[data-theme="dark"] #p-dash,
[data-theme="dark"] #p-calc,
[data-theme="dark"] #p-inv,
[data-theme="dark"] #p-settings {
  background: linear-gradient(175deg,#0d0e0f,#08090a) !important;
}
[data-theme="dark"] .gc,
[data-theme="dark"] .csec,
[data-theme="dark"] .scard,
[data-theme="dark"] .qbtn {
  background: rgba(19,20,22,.95) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,.25) !important;
}
/* การ์ดวัตถุดิบต้องมีมิติแบบกดได้ แม้ในโหมดมืด ไม่ให้ถูกเงาแบนของ .scard ทับ */
[data-theme="dark"] .ing-card {
  box-shadow: 0 3px 0 rgba(78,205,196,.25), 0 4px 10px rgba(0,0,0,.3) !important;
  border-color: rgba(78,205,196,.35) !important;
}
[data-theme="dark"] .ing-card:active {
  box-shadow: 0 1px 0 rgba(78,205,196,.25), 0 2px 6px rgba(0,0,0,.3) !important;
}
[data-theme="dark"] .fi,
[data-theme="dark"] .fsel,
[data-theme="dark"] .afi {
  background: rgba(28,31,35,.95) !important;
  color: #d4ede5 !important;
}
[data-theme="dark"] .fi:focus,
[data-theme="dark"] .fsel:focus {
  background: rgba(38,42,46,.95) !important;
}
[data-theme="dark"] .sub-box {
  background: rgba(10,11,12,.8) !important;
}
[data-theme="dark"] .ic { background: rgba(10,11,12,.7) !important; }
[data-theme="dark"] .ic.linked { background: rgba(23,25,27,.85) !important; }
[data-theme="dark"] .mrow,
[data-theme="dark"] #p-inv .sc {
  background: rgba(19,20,22,.95) !important;
  border: none !important;
  box-shadow: 0 2px 12px rgba(0,0,0,.25) !important;
  backdrop-filter: none !important;
}
[data-theme="dark"] .hdr:not(.hdr-hero-mode) {
  border-color: rgba(58,181,130,.15) !important;
}
[data-theme="dark"] .bnav {
  background: rgba(10,11,12,1) !important;
  border-color: rgba(120,130,135,.15) !important;
}
[data-theme="dark"] .csec-hdr,
[data-theme="dark"] .sh {
  border-bottom-color: rgba(58,181,130,.15) !important;
}
[data-theme="dark"] .csec-title,
[data-theme="dark"] .st { color: #c8e8d8 !important; }
[data-theme="dark"] .fl { color: #3ecf9e !important; }
[data-theme="dark"] .pill,
[data-theme="dark"] .mcatbtn {
  background: rgba(19,20,22,.9) !important;
  color: #3ecf9e !important;
}
[data-theme="dark"] .pill.on,
[data-theme="dark"] .mcatbtn.on {
  background: #2ab5a8 !important;
  color: #fff !important;
}
[data-theme="dark"] .bw {
  background: rgba(19,20,22,.9) !important;
  border-color: rgba(58,181,130,.3) !important;
  color: #3ecf9e !important;
}

/* ══ CALC & SETTINGS — section cards only ══ */

/* เฉพาะ section card หลัก */
#p-calc .csec,
#p-calc .gc,
#p-settings .gc {
  background: #ffffff !important;
  border: none !important;
  border-radius: 16px !important;
  box-shadow: 0 2px 10px rgba(0,120,80,.08) !important;
  padding: 18px !important;
  margin-bottom: 14px !important;
}

/* input ใน calc — ไม่มี card ซ้อน */
#p-calc .fi,
#p-calc .fsel {
  background: #f0fdf9 !important;
  border: 1.5px solid transparent !important;
  border-radius: 10px !important;
  padding: 12px 14px !important;
}
[data-theme="dark"] #p-calc .fi,
[data-theme="dark"] #p-calc .fsel {
  background: rgba(28,31,35,.95) !important;
  border-color: transparent !important;
  color: var(--text-main) !important;
}

/* sub-box ใน calc — แค่ bg อ่อน ไม่มีเส้น */
#p-calc .sub-box {
  background: #f0fdf9 !important;
  border: none !important;
  border-radius: 10px !important;
  padding: 12px !important;
  margin-bottom: 10px !important;
  box-shadow: none !important;
}

/* ic (ingredient) — flat ไม่มี card */
#p-calc .ic {
  background: #f8fffe !important;
  border-radius: 10px !important;
  padding: 12px !important;
  box-shadow: none !important;
  border: none !important;
}
#p-calc .ic.linked {
  background: #e8faf4 !important;
}

/* section header — เส้นใต้ชื่อ */
#p-calc .csec-hdr,
#p-settings .sh {
  border-bottom: 1.5px solid #e8faf4 !important;
  padding-bottom: 10px !important;
  margin-bottom: 14px !important;
}

/* settings input */
#p-settings .fi {
  background: #f0fdf9 !important;
  border: 1.5px solid rgba(168,232,212,.6) !important;
  border-radius: 10px !important;
}
[data-theme="dark"] #p-settings .fi {
  background: rgba(28,31,35,.95) !important;
  border-color: rgba(140,145,150,.35) !important;
  color: #d4ede5 !important;
}

/* dark mode */
[data-theme="dark"] #p-calc .csec,
[data-theme="dark"] #p-calc .gc,
[data-theme="dark"] #p-settings .gc {
  background: rgba(19,20,22,.95) !important;
  box-shadow: 0 2px 10px rgba(0,0,0,.2) !important;
}
[data-theme="dark"] #p-calc .sub-box {
  background: rgba(10,11,12,.6) !important;
}
[data-theme="dark"] #p-calc .ic { background: rgba(10,11,12,.5) !important; }
[data-theme="dark"] #p-calc .ic.linked { background: rgba(23,25,27,.7) !important; }

/* ══ FOOD COST GUIDE ══ */
.fc-guide-wrap {
  margin: 0 14px 10px;
  background: var(--bg-card);
  border: 1.5px solid rgba(168,232,212,.4);
  border-radius: 16px;
  box-shadow: var(--sh-sm);
  overflow: hidden;
}
.fc-guide-hdr {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 16px;
  cursor: pointer;
  user-select: none;
}
.fc-guide-body {
  padding: 0 16px 14px;
  display: none;
}
.fc-guide-body.open { display: block; }

.fc-my-stat {
  background: #f0fdf9;
  border-radius: 10px;
  padding: 10px 12px;
  margin-bottom: 12px;
  font-size: 13px;
  font-weight: 600;
  color: var(--mint6);
}

.fc-rows { display: flex; flex-direction: column; gap: 10px; margin-bottom: 12px; }
.fc-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}
.fc-row-left { display: flex; align-items: center; gap: 10px; flex: 1; }
.fc-icon { font-size: 22px; flex-shrink: 0; }
.fc-row-name { font-size: 13px; font-weight:600; color: var(--text-main); }
.fc-row-note { font-size: 11px; color: var(--text-faint); margin-top: 2px; }
.fc-badge {
  font-size: 12px;
  font-weight:600;
  padding: 4px 10px;
  border-radius: 99px;
  white-space: nowrap;
  flex-shrink: 0;
}
.fc-great { background: #dcfce7; color: #16a34a; }
.fc-good  { background: #d1fae5; color: #059669; }
.fc-warn  { background: #fef9c3; color: #ca8a04; }
.fc-bad   { background: #fee2e2; color: #dc2626; }

.fc-tip {
  background: linear-gradient(135deg,rgba(78,205,196,.08),rgba(78,205,196,.04));
  border-left: 3px solid var(--mint4);
  border-radius: 8px;
  padding: 10px 12px;
}
.fc-tip-title { font-size: 12px; font-weight:600; color: var(--mint6); margin-bottom: 5px; }
.fc-tip-body { font-size: 12px; color: var(--text-muted); line-height: 1.7; }

[data-theme="dark"] .fc-guide-wrap {
  background: rgba(19,20,22,.95);
}
[data-theme="dark"] .fc-my-stat {
  background: rgba(10,11,12,.6);
}
[data-theme="dark"] .fc-tip {
  background: rgba(78,205,196,.06);
}
[data-theme="dark"] .fc-row-name { color: #c8e8d8; }

/* ══ BEGINNER GUIDE PAGE ══ */
.guide-ch-badge {
  display:inline-block;
  background:var(--mint3);
  color:var(--mint7);
  font-size:11px;font-weight:600;
  padding:3px 10px;border-radius:99px;
  margin-bottom:8px;
}
.guide-ch-title {
  font-size:20px;font-weight:600;
  color:var(--text-main);
  margin-bottom:16px;line-height:1.3;
}
.guide-story {
  font-size:14px;line-height:1.8;
  color:var(--text-muted);
  margin-bottom:16px;
}
.guide-story p { margin:0 0 6px; }
.guide-reveal {
  background:#f0fdf9;
  border-radius:14px;
  padding:14px;
  margin-bottom:14px;
}
.guide-reveal-title {
  font-size:12px;font-weight:600;
  color:var(--mint6);margin-bottom:10px;
}
.guide-cost-item {
  display:flex;justify-content:space-between;
  align-items:center;
  font-size:13px;padding:5px 0;
  color:var(--text-muted);
}
.guide-cost-num { font-weight:600; }
.guide-cost-num.red { color:#ef4444; }
.guide-cost-num.orange { color:#f59e0b; }
.guide-cost-num.purple { color:#a855f7; }
.guide-cost-num.green { color:#10b981; }
.guide-cost-divider {
  height:1px;background:rgba(168,232,212,.4);
  margin:6px 0;
}
.guide-tip {
  background:linear-gradient(135deg,rgba(78,205,196,.1),rgba(78,205,196,.05));
  border-left:3px solid var(--mint4);
  border-radius:8px;
  padding:10px 12px;
  font-size:13px;
  color:var(--text-muted);
  line-height:1.7;
  margin-bottom:16px;
}
.guide-formula {
  display:flex;align-items:center;gap:10px;
  background:#f0fdf9;border-radius:12px;
  padding:14px;margin-bottom:14px;
  font-size:13px;font-weight:600;
  color:var(--text-main);
  justify-content:center;
}
.guide-formula-text { color:var(--mint6); }
.guide-formula-top { text-align:center;padding-bottom:3px; }
.guide-formula-line { height:2px;background:var(--mint5);border-radius:99px; }
.guide-formula-bot { text-align:center;padding-top:3px;color:var(--mint5); }
.guide-example {
  background:#fff;
  border:1.5px solid rgba(168,232,212,.5);
  border-radius:12px;padding:12px;
  margin-bottom:14px;
}
.guide-example-title {
  font-size:12px;font-weight:600;
  color:var(--mint6);margin-bottom:8px;
}
.guide-target {
  background:#f0fdf9;border-radius:12px;
  padding:12px;margin-bottom:14px;
}
.guide-target-title {
  font-size:12px;font-weight:600;
  color:var(--mint6);margin-bottom:8px;
}
.guide-target-row {
  display:flex;justify-content:space-between;
  align-items:center;
  font-size:13px;color:var(--text-muted);
  padding:4px 0;
}
.guide-breakdown {
  background:#f0fdf9;border-radius:14px;
  padding:14px;margin-bottom:14px;
  display:flex;flex-direction:column;gap:10px;
}
.guide-bk-row {
  display:grid;
  grid-template-columns:1fr 70px 40px;
  align-items:center;gap:8px;
}
.guide-bk-label {
  display:flex;align-items:center;gap:8px;
  font-size:12px;color:var(--text-muted);
}
.guide-bk-icon { font-size:18px;flex-shrink:0; }
.guide-bk-note { font-size:10px;color:var(--text-faint);margin-top:1px; }
.guide-bk-bar-wrap {
  height:7px;background:rgba(168,232,212,.3);
  border-radius:99px;overflow:hidden;
}
.guide-bk-bar { height:100%;border-radius:99px; }
.guide-bk-pct { font-size:11px;font-weight:600;text-align:right; }
.guide-bk-divider {
  height:1.5px;background:rgba(168,232,212,.4);
  margin:2px 0;
  grid-column:1/-1;
}
.guide-next-btn {
  width:100%;padding:14px;
  background:linear-gradient(135deg,#2ab5a8,#1e9688);
  color:#fff;border:none;border-radius:14px;
  font-size:14px;font-weight:600;
  cursor:pointer;margin-bottom:8px;
  box-shadow:0 4px 14px rgba(42,181,168,.3);
}
.guide-back-btn {
  background:none;border:none;
  color:var(--text-faint);font-size:13px;
  cursor:pointer;padding:8px 0;
}
.guide-dot {
  width:8px;height:8px;border-radius:50%;
  background:rgba(168,232,212,.4);
  transition:all .3s;
}
.guide-dot.active {
  width:24px;border-radius:99px;
  background:var(--mint4);
}
.guide-cta-wrap {
  background:linear-gradient(135deg,rgba(42,181,168,.08),rgba(42,181,168,.04));
  border-radius:16px;padding:16px;
  margin-top:8px;
}
[data-theme="dark"] .guide-reveal,
[data-theme="dark"] .guide-target,
[data-theme="dark"] .guide-breakdown,
[data-theme="dark"] .guide-formula {
  background:rgba(10,11,12,.7) !important;
}
[data-theme="dark"] .guide-example {
  background:rgba(19,20,22,.9) !important;
  border-color:rgba(58,181,130,.2) !important;
}
[data-theme="dark"] .guide-ch-title,
[data-theme="dark"] .guide-bk-note { color:#c8e8d8 !important; }

/* ══════════════════════════════════════════════════════
   DESKTOP LAYOUT — Complete responsive design
   ══════════════════════════════════════════════════════ */
@media(min-width:768px){

  /* ── Shell = full-width grid ── */
  .shell{
    max-width:100% !important;
    width:100% !important;
    display:grid !important;
    grid-template-columns:132px 1fr !important;
    grid-template-rows:64px 1fr !important;
    min-height:100dvh !important;
    background:var(--bg-body) !important;
  }

  /* ── Header full width ── */
  .hdr{
    grid-column:1/3 !important;
    grid-row:1 !important;
    position:sticky !important;
    top:0 !important;
    z-index:100 !important;
    width:100% !important;
    height:64px !important;
    padding:0 28px !important;
    border-radius:0 !important;
    border-bottom:1px solid rgba(168,232,212,.3) !important;
    display:flex !important;
    align-items:center !important;
  }
  .hdr-inner{
    width:100% !important;
    max-width:1400px !important;
    margin:0 auto !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
  }
  .hdr-name{font-size:18px !important}

  /* เดสก์ท็อป: header หน้าแรก (hero mode) ใช้พื้นหลังดาร์กโหมดปกติแทนไล่สีพาสเทลมิ้นต์-เหลือง
     เฉพาะเวอร์ชันเดสก์ท็อปเท่านั้น มือถือยังคงไล่สีเดิมไว้ */
  [data-theme="dark"] .hdr.hdr-hero-mode{
    background:var(--bg-body) !important;
  }
  [data-theme="dark"] .hdr.hdr-hero-mode::before{
    background:transparent !important;
  }
  /* เดสก์ท็อป โหมด light: header หน้าแรกกลับไปโปร่งใสเหมือนเดิม เฉพาะเวอร์ชันเดสก์ท็อป
     มือถือยังคงไล่สีมิ้นต์-เหลืองไว้ (ต้อง :not([data-theme="dark"]) กันไม่ให้ทับ rule มืดด้านบน) */
  html:not([data-theme="dark"]) .hdr.hdr-hero-mode{
    background:transparent !important;
  }
  html:not([data-theme="dark"]) .hdr.hdr-hero-mode::before{
    background:transparent !important;
  }

  /* ── Sidebar nav — แคปซูลลอยตัวแนวตั้ง เรียวและนูนขึ้น แต่ละปุ่มเป็นไอคอนบน+ชื่อล่าง จัดกึ่งกลาง
     เหมือนแท็บ bottom nav บนมือถือ แทนที่จะเป็นแถวไอคอน+ชื่อเรียงข้างกันแบบเดิม ── */
  .bnav{
    grid-column:1 !important;
    grid-row:2 !important;
    position:sticky !important;
    top:calc(64px + 14px) !important;
    height:calc(100dvh - 64px - 28px) !important;
    width:104px !important;
    max-width:104px !important;
    margin:14px 0 14px 14px !important;
    flex-direction:column !important;
    align-items:stretch !important;
    border:none !important;
    border-radius:999px !important;
    padding:10px !important;
    gap:10px !important;
    transform:none !important;
    left:auto !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    background:#ffffff !important;
    box-shadow: 0 2px 8px rgba(0,120,80,.07) !important;
  }
  /* โหมดมืด — ใช้สไตล์เดียวกับการ์ดสถิติ 4 ใบหน้าแรก (พื้นเขียวเข้ม + เงานูน 3 ชั้น) */
  [data-theme="dark"] .bnav{
    background: rgba(19,20,22,.95) !important;
    box-shadow: 0 1px 0 rgba(255,255,255,.05) inset, 0 4px 10px rgba(0,0,0,.35), 0 1px 3px rgba(0,0,0,.3) !important;
  }
  .bnav::before{
    content:'';
    display:none;
  }
  .ni{
    flex-direction:column !important;
    justify-content:center !important;
    align-items:center !important;
    padding:12px 6px !important;
    border-radius:999px !important;
    gap:5px !important;
    min-width:unset !important;
  }
  .ni:hover{background:rgba(168,232,212,.2) !important}
  .ni.on{
    background:rgba(78,205,196,.14) !important;
    box-shadow: 0 1px 0 rgba(255,255,255,.6) inset, 0 4px 10px rgba(0,0,0,.08), 0 1px 3px rgba(0,0,0,.06) !important;
  }
  [data-theme="dark"] .ni.on{
    background:rgba(78,205,196,.14) !important;
    box-shadow: 0 1px 0 rgba(255,255,255,.05) inset, 0 4px 10px rgba(0,0,0,.35), 0 1px 3px rgba(0,0,0,.3) !important;
  }
  .ni-ico{font-size:20px !important;width:auto !important;text-align:center !important}
  .ni-lbl{font-size:10.5px !important;font-weight:600 !important;color:var(--text-muted) !important;text-align:center !important;line-height:1.2 !important}
  .ni.on .ni-lbl{color:var(--mint5) !important;font-weight:600 !important}

  /* ── Pages = main content ── */
  .page{
    grid-column:2 !important;
    grid-row:2 !important;
    height:calc(100dvh - 64px) !important;
    overflow-y:auto !important;
    display:none !important;
  }
  .page.on{
    display:block !important;
  }

  /* ── Guide page ──
     .page มี flex-direction:column มาจาก rule พื้นฐาน (บรรทัด ~99) ดังนั้นใน flex
     แนวตั้งแบบนี้ justify-content คือแกนหลัก = แนวตั้ง ส่วน align-items คือแกนขวาง =
     แนวนอน แก้ผิดรอบก่อน (ใช้ justify-content:center) ทำให้ยังเจอปัญหาเดิม: เนื้อหาสูง
     กว่าจอโดน center แนวตั้ง ดันหัวข้อบนสุดพ้นขอบบนของพื้นที่ scroll ที่ถูกต้องคือ
     center แนวนอนด้วย align-items เท่านั้น ปล่อยแนวตั้ง (justify-content) เป็นค่าเริ่มต้น
     (flex-start) เพื่อให้เนื้อหาเริ่มจากบนเสมอและ scroll ลงได้ตามปกติ */
  #p-guide.on{
    display:flex !important;
    align-items:center !important;
  }
  #p-guide > div{
    max-width:1200px !important;
    width:100% !important;
  }

  /* ── Dashboard ── */
  .dash-hero{
    padding:24px 40px 0 !important;
    max-width:1200px !important;
    margin:0 auto !important;
    margin-top:0 !important;
    width:100% !important;
  }
  .dash-mascot{width:90px !important}
  .sgrid{
    grid-template-columns:repeat(4,1fr) !important;
    padding:0 40px !important;
    column-gap:8px !important;
    row-gap:8px !important;
    max-width:1200px !important;
    margin:0 auto !important;
  }
  .qgrid{
    grid-template-columns:repeat(4,1fr) !important;
    padding:0 40px !important;
    gap:14px !important;
    max-width:1200px !important;
    margin:0 auto !important;
  }
  .mlist{
    padding:0 40px !important;
    max-width:1200px !important;
    margin:0 auto !important;
  }
  /* หัวข้อ "เมนูที่บันทึก" + แถบเลือกหมวดหมู่ — ไม่เคยได้ max-width:1200px + จัดกึ่งกลาง + padding
     เหมือน .mlist ด้านบน ทำให้หลุดแถว/ดูไม่ตรงแนวกับรายการเมนูด้านล่างบนจอกว้าง เพิ่มให้ตรงกัน */
  #dash-menu-hdr-row,
  #dash-menu-cat-row{
    max-width:1200px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:40px !important;
    padding-right:40px !important;
    box-sizing:border-box !important;
  }
  #p-dash > *{ padding-left:40px !important; padding-right:40px !important; }
  #p-dash .sgrid,
  #p-dash .qgrid,
  #p-dash .mlist{ padding-left:40px !important; padding-right:40px !important; }
  .fc-guide-wrap{ max-width:1200px !important; margin:0 auto !important; }

  /* กล่อง Food Cost ร้านคุณเฉลี่ย (#fc-my-stat) ไม่เคยได้ max-width:1200px + margin:0 auto
     เหมือน .sgrid/.mlist ด้านบน เลยยาวไม่เท่ากับการ์ดสถิติและรายการเมนูบนจอกว้าง — เพิ่มให้ตรงกัน */
  #p-dash .sgrid{ margin-bottom:16px !important; }
  #p-dash #fc-my-stat{
    max-width:1200px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
  }

  /* ── Calc: 2-column ── */
  
  .calc-left-col{
    display:flex !important;
    flex-direction:column !important;
    min-width:0 !important;
    overflow:hidden !important;
  }
  .calc-right-col{
    position:sticky !important;
    top:24px !important;
    display:flex !important;
    flex-direction:column !important;
    gap:12px !important;
    min-width:0 !important;
  }

  /* ── Inventory: 2-col list ── */
  .ibody{
    max-width:1200px !important;
    margin:0 auto !important;
    padding:24px 40px !important;
    width:100% !important;
    box-sizing:border-box !important;
  }
  #stock-list{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:10px !important;
  }
  #stock-list .sc{margin-bottom:0 !important}
  .inv-search-wrap{max-width:600px !important}

  /* ── Settings: centered ── */
  #p-settings > div{
    max-width:1200px !important;
    margin:0 auto !important;
    padding:24px 40px !important;
    width:100% !important;
    box-sizing:border-box !important;
  }
  .shopping-body{
    max-width:1200px !important;
    margin:0 auto !important;
    padding:24px 40px 100px !important;
    width:100% !important;
    box-sizing:border-box !important;
  }

  /* ── Modals: centered ── */
  .modal{
    max-width:580px !important;
    border-radius:20px !important;
    margin:auto !important;
    max-height:88vh !important;
  }
  .modal-bg{align-items:center !important}
  #del-popup-sheet{
    border-radius:20px !important;
    margin:auto !important;
    max-width:480px !important;
  }

  /* ── Auth ── */
  #auth{align-items:center !important;padding:40px 24px !important}
  .aw{
    max-width:920px !important;
  }
  .acard{
    max-width:920px !important;
    width:100% !important;
    border-radius:28px !important;
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    align-items:stretch !important;
    padding-bottom:0 !important;
    overflow:hidden !important;
  }
  /* ซ้าย: มาสคอต + แบรนด์ — เต็มความสูงคอลัมน์ พื้นหลังไล่สีเด่นแยกจากฝั่งขวา */
  #as-license .ahero{
    grid-column:1 !important;
    grid-row:1/3 !important;
    justify-content:center !important;
    height:100% !important;
    padding:48px 36px !important;
    box-sizing:border-box !important;
  }
  #as-license .amw{margin-bottom:20px !important}
  #as-license .am{width:150px !important}
  #as-license .atit{font-size:28px !important;margin-bottom:10px !important}
  #as-license .asub{font-size:14px !important}
  /* ขวา: ฟีเจอร์ + ปุ่ม login — คอลัมน์ที่สอง จัดกึ่งกลางแนวตั้ง */
  #as-license .auth-feature-grid{
    grid-column:2 !important;
    grid-row:1 !important;
    max-width:none !important;
    align-self:end !important;
    padding:48px 36px 0 !important;
    margin:0 !important;
  }
  #as-license .ain{
    grid-column:2 !important;
    grid-row:2 !important;
    align-self:start !important;
    padding:20px 36px 48px !important;
  }

  /* ── Dark mode desktop ── */
  [data-theme="dark"] .bnav{
    background:rgba(19,20,22,.95) !important;
    box-shadow: 0 1px 0 rgba(255,255,255,.05) inset, 0 4px 10px rgba(0,0,0,.35), 0 1px 3px rgba(0,0,0,.3) !important;
  }
}

/* ── Extra wide (1200px+) ── */
@media(min-width:1200px){
  .shell{ grid-template-columns:132px 1fr !important; }
  .bnav{ width:104px !important; max-width:104px !important; }
  
  .sgrid, .qgrid{ grid-template-columns:repeat(4,1fr) !important; }
}

/* ══ DESKTOP FIXES ══ */
@media(min-width:768px){

  /* ── Dashboard: card ใหญ่ขึ้น ── */
  .scard {
    padding: 20px !important;
    min-height: 130px !important;
  }
  .scard .s-ico { font-size: 36px !important; }
  .scard .s-val { font-size: 28px !important; }
  .scard .s-lbl { font-size: 13px !important; }

  /* หน้าแรก: การ์ดสถิติยังคงเตี้ย/แนวนอนบนเดสก์ท็อปด้วย ไม่ใช่การ์ดสูงใหญ่แบบเดิม */
  .dash-stat {
    padding: 14px !important;
    min-height: 0 !important;
    flex-direction: row !important;
  }
  .dash-stat .s-ico { font-size: 26px !important; margin-bottom: 0 !important; }
  .dash-stat .s-val { font-size: 19px !important; }
  .dash-stat .s-lbl { font-size: 12px !important; }

  /* การ์ดวัตถุดิบ (หน้าคำนวณ) มีแค่ 2 บรรทัด ไม่ใช่การ์ดสถิติ — ไม่บังคับสูง และให้ชื่อใหญ่ขึ้นตามจอ ไม่ใช่เล็กลง */
  .ing-card {
    min-height: 0 !important;
    padding: 16px 18px !important;
  }
  .ing-card .s-lbl {
    font-size: 17px !important;
    line-height: 1.6 !important;
  }

  .qbtn {
    padding: 22px 16px !important;
    min-height: 130px !important;
  }
  .qico { width: 56px !important; height: 56px !important; font-size: 28px !important; }
  .q-lbl { font-size: 14px !important; font-weight:600 !important; }
  .q-sub { font-size: 12px !important; }

  /* sgrid/qgrid แค่ 4 col ── */
  .sgrid { grid-template-columns: repeat(4,1fr) !important; column-gap: 8px !important; row-gap: 8px !important; }
  .qgrid { grid-template-columns: repeat(2,1fr) !important; gap: 16px !important; max-width:700px !important; margin:0 auto !important; }

  /* ── Dashboard: เพิ่ม padding รอบนอก ── */
  #p-dash { padding: 0 !important; }
  #p-dash .sgrid,
  #p-dash .qgrid { padding: 0 40px !important; }
  #p-dash .mlist { padding: 0 40px 40px !important; }
  #p-dash .fc-guide-wrap { margin: 0 40px 16px !important; }
  #p-dash > div { padding-left: 40px !important; padding-right: 40px !important; }

  /* ── คู่มือมือใหม่ใน dashboard ── */
  .fc-guide-wrap { display: block !important; }

  /* ── Calc page: fix scroll ── */
  #p-calc.on {
    display: block !important;
    overflow-y: auto !important;
    height: calc(100dvh - 64px) !important;
  }
  #p-calc 
  #p-calc .calc-left-col {
    overflow: visible !important;
    min-width: 0 !important;
  }
  #p-calc .calc-right-col {
    position: sticky !important;
    top: 24px !important;
    
    
  }

  /* ── Input desktop ── */
  #p-calc .fi,
  #p-calc .fsel {
    font-size: 15px !important;
    padding: 14px 16px !important;
  }
  #p-calc .fl {
    font-size: 13px !important;
    margin-bottom: 8px !important;
  }
  #p-calc .csec-title { font-size: 15px !important; }
  #p-calc .csec { padding: 20px !important; margin-bottom: 16px !important; }

  /* ── Pages ที่ต้องเลื่อนได้ ── */
  
}

/* ══ CALC 2-COLUMN LAYOUT ══ */

/* Mobile */


/* Desktop */




@media(max-width:767px){
  
  
}

/* ══ CBODY: mobile single col, desktop 2-col grid ══ */



/* ══ HIGH SPECIFICITY CALC GRID ══ */



/* ══ iOS SAFARI FIX — click events ══ */
/* iOS ต้องการ cursor:pointer บน non-button elements ถึงจะ fire click */
[onclick] {
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
/* prevent 300ms delay บน iOS */
* {
  touch-action: manipulation;
}
/* ป้องกัน double-tap zoom บน iOS */
button, .bp, .bw, .bg, .bsm, .bic, .ni, .qbtn, .mrow, .sc, .pc {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
/* iOS input zoom fix — font ต้อง >= 16px ถึงไม่ zoom */
input, select, textarea {
  font-size: 16px !important;
}
/* แต่ label/display text ไม่ต้องใหญ่ */
.fl, .s-lbl, .q-sub, .mr-sub {
  font-size: inherit !important;
}
.sd { font-size: 11px !important; }

/* ══ LICENSE SCREEN ══ */
#as-license .afi { font-size: 16px !important; }
#lic-key { text-transform: uppercase; letter-spacing: 3px; }

/* 5 nav items — ลด label */
.bnav .ni { min-width: 0; }
.bnav .ni-lbl { font-size: 10px !important; }
.bnav .ni-ico { font-size: 18px !important; }

/* ══ QUICK ACTION BTN — interactive style ══ */
.qbtn {
  background: #ffffff !important;
  border: none !important;
  border-radius: 16px !important;
  box-shadow: 0 4px 16px rgba(0,120,80,.12), 0 1px 4px rgba(0,0,0,.06) !important;
  padding: 16px !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  cursor: pointer !important;
  transition: transform .2s, box-shadow .2s !important;
  text-align: left !important;
  position: relative !important;
  overflow: hidden !important;
}
.qbtn::after {
  content: '→';
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 16px;
  color: var(--mint4);
  font-weight:600;
  transition: right .2s;
}
.qbtn:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 8px 24px rgba(0,120,80,.18), 0 2px 8px rgba(0,0,0,.08) !important;
}
.qbtn:hover::after { right: 10px; }
.qbtn:active { transform: scale(.97) !important; }

.qico {
  width: 44px !important;
  height: 44px !important;
  border-radius: 12px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 22px !important;
  flex-shrink: 0 !important;
}
.q-lbl {
  font-size: 13px !important;
  font-weight:600 !important;
  color: var(--text-main) !important;
}
.q-sub {
  font-size: 11px !important;
  color: var(--text-faint) !important;
  margin-top: 2px !important;
}

[data-theme="dark"] .qbtn {
  background: rgba(19,20,22,.95) !important;
  box-shadow: 0 4px 16px rgba(0,0,0,.3) !important;
}
[data-theme="dark"] .qbtn::after { color: var(--mint4); }

/* ══ CLEARABLE INPUT ══ */
.input-wrap {
  position: relative;
  width: 100%;
}
.input-wrap .fi,
.input-wrap .inv-search,
.input-wrap .afi {
  padding-right: 36px !important;
  width: 100% !important;
}
.input-clear-btn {
  display: none;
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  background: var(--gray3, #e5e7eb);
  border: none;
  border-radius: 50%;
  width: 20px;
  height: 20px;
  font-size: 11px;
  cursor: pointer;
  color: var(--gray6, #4b5563);
  align-items: center;
  justify-content: center;
  line-height: 1;
  padding: 0;
  flex-shrink: 0;
  z-index: 2;
}
.input-wrap input:not(:placeholder-shown) ~ .input-clear-btn {
  display: flex;
}
[data-theme="dark"] .input-clear-btn {
  background: rgba(58,181,130,.2);
  color: #7addb8;
}

/* g3 align bottom */
.g3 { align-items: end; }

/* ══ HELP TOOLTIP ══ */
.help-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px; height: 16px;
  border-radius: 50%;
  background: var(--bg-card);
  border: 1.5px solid var(--mint4);
  color: var(--mint6);
  font-size: 10px;
  font-weight:600;
  cursor: pointer;
  margin-left: 5px;
  vertical-align: middle;
  flex-shrink: 0;
  transition: background .2s;
  font-style: normal;
}
.help-btn:hover { background: var(--mint1); }

.help-tooltip {
  position: fixed;
  z-index: 5000;
  background: #ffffff;
  border: 1.5px solid var(--mint4);
  border-radius: 14px;
  padding: 14px 16px;
  max-width: 280px;
  max-height: min(70vh, 420px);
  overflow-y: auto;
  box-shadow: 0 8px 32px rgba(0,0,0,.25);
  animation: fadeUp .2s ease;
}
[data-theme="dark"] .help-tooltip {
  background: #1a2e28;
}
.help-tooltip-title {
  font-size: 13px;
  font-weight:600;
  color: var(--mint6);
  margin-bottom: 6px;
}
.help-tooltip-body {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.7;
}
.help-tooltip-example {
  background: var(--mint1);
  border-radius: 8px;
  padding: 8px 10px;
  margin-top: 8px;
  font-size: 12px;
  color: var(--mint6);
  line-height: 1.6;
}
.help-overlay {
  position: fixed;
  inset: 0;
  z-index: 4999;
}

/* ══ iOS SAFARI FIX ══ */
[onclick] {
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
* { touch-action: manipulation; }
button, .bp, .bw, .bg, .bsm, .bic, .ni, .qbtn, .mrow {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
input, select, textarea { font-size: 16px !important; }
.fl, .s-lbl, .q-sub { font-size: inherit !important; }
.sd { font-size: 11px !important; }

/* ══ iOS SAFARI FIX ══ */
[onclick] { cursor:pointer; -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
* { touch-action:manipulation; }
button, .bp, .bw, .bg, .bsm, .bic, .ni, .qbtn { touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
input, select, textarea { font-size:16px !important; }
.fl, .s-lbl, .q-sub { font-size:inherit !important; }
.sd { font-size:11px !important; }

/* ══ INTRO SCREEN ══ */
#intro-screen {
  position: fixed; inset: 0; z-index: 99999;
  background: #f0fdf9;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  transition: opacity .5s ease;
  pointer-events: none;
}
.intro-mascot {
  width: 100px; height: 100px; object-fit: contain;
  filter: drop-shadow(0 6px 20px rgba(0,120,80,.2));
  animation: introFloat 2s ease-in-out infinite;
}
@keyframes introFloat {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
.intro-brand {
  font-family: 'Noto Serif Thai', serif;
  font-size: 40px; font-weight:600;
  color: #0d3d28; letter-spacing: -1px; margin-top: 14px;
}
.intro-slogan {
  font-size: 13px; font-weight: 600;
  color: #2ab5a8; margin-top: 8px; letter-spacing: .5px;
}
.intro-dots { display: flex; gap: 6px; margin-top: 32px; }
.intro-dots span {
  width: 6px; height: 6px; border-radius: 50%;
  background: #2ab5a8; opacity: .3;
  animation: introPulse 1.2s ease infinite;
}
.intro-dots span:nth-child(2) { animation-delay: .2s; }
.intro-dots span:nth-child(3) { animation-delay: .4s; }
@keyframes introPulse {
  0%,100% { opacity: .3; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.4); }
}

/* ══ CROSS-PLATFORM FIXES ══ */
/* Safe area — iPhone notch/home bar */
.shell {
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
nav {
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
/* Smooth scroll iOS */
.page, .modal, .fc-guide-body {
  -webkit-overflow-scrolling: touch;
}
/* Select dropdown iOS */
select {
  -webkit-appearance: none;
  appearance: none;
}

/* scard clickable */
.scard[onclick] { transition: transform .15s, box-shadow .15s; }
.scard[onclick]:active { transform: scale(.97); }

/* ══ BUNDLE GROUP ══ */
.bundle-group { margin-bottom:6px; }
.bundle-group-hdr {
  display:flex; align-items:center; justify-content:space-between;
  padding:8px 12px; background:rgba(42,181,168,.06);
  border:1.5px solid rgba(42,181,168,.2); border-radius:10px;
  cursor:pointer; transition:background .2s;
}
.bundle-group-hdr:active { background:rgba(42,181,168,.12); }
.bundle-group-body { display:none; padding:4px 0 0; }
.bundle-group-body.open { display:block; }
.bundle-group-body .ic, .bundle-group-body .ic.linked {
  font-size:11px; opacity:.75;
  margin-left:8px; border-left:2px solid rgba(42,181,168,.2);
  border-radius:0 8px 8px 0; padding-left:8px;
}
.bundle-line-item {
  display:flex; align-items:center; gap:8px;
  padding:8px 10px; margin-left:8px; margin-bottom:1px;
  border-left:2px solid rgba(42,181,168,.25);
  background:rgba(42,181,168,.03);
  font-size:12.5px;
}
.bundle-line-name {
  flex:1; min-width:0; font-weight:600; color:var(--text-main);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.bundle-line-qty {
  font-size:11px; color:var(--text-faint); flex-shrink:0;
}
.bundle-line-cost {
  font-size:12px; font-weight:600; color:var(--mint6); flex-shrink:0;
}
.bundle-line-item .bic {
  flex-shrink:0; padding:2px 6px; font-size:12px;
}
[data-theme="dark"] .bundle-line-item { background:rgba(42,181,168,.06); }

/* ══ REMOVE BUTTON ══ */
.ic .ir1 .bic {
  flex-shrink: 0;
}

/* fsel min-width fix */
.ir1 .fsel, .ir2 .fsel {
  min-width: 70px;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ── Scrollbar บาง ซ่อนสนิท โผล่เฉพาะตอน hover — ใช้ทั่วทั้งแอป (เดสก์ท็อป) ──
   Firefox: ใช้ scrollbar-width/scrollbar-color, ซ่อน thumb ด้วยสีโปร่งใสตอนไม่ hover
   Chrome/Safari/Edge: ใช้ ::-webkit-scrollbar กำหนด track โปร่งใส + thumb โปร่งใสตอนไม่ hover */
* {
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
}
*:hover {
  scrollbar-color: rgba(78,205,196,.45) transparent;
}
*::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
*::-webkit-scrollbar-track {
  background: transparent;
}
*::-webkit-scrollbar-thumb {
  background-color: transparent;
  border-radius: 99px;
}
*:hover::-webkit-scrollbar-thumb {
  background-color: rgba(78,205,196,.45);
}
*::-webkit-scrollbar-thumb:hover {
  background-color: rgba(78,205,196,.7);
}
[data-theme="dark"] *:hover {
  scrollbar-color: rgba(58,181,172,.4) transparent;
}
[data-theme="dark"] *:hover::-webkit-scrollbar-thumb {
  background-color: rgba(58,181,172,.4);
}
[data-theme="dark"] *::-webkit-scrollbar-thumb:hover {
  background-color: rgba(58,181,172,.65);
}

/* ── การ์ดเมนูที่ตรงกับคำค้นหา — ขยับขึ้นเบาๆ ให้รู้สึกว่าเพิ่งถูกยกมาไว้บนสุด แบบนุ่มนวล ── */
@keyframes mrowPop {
  0%   { transform: translateY(4px); opacity: .55; }
  100% { transform: translateY(0); opacity: 1; }
}
.mrow.mrow-pop {
  animation: mrowPop .28s ease-out;
}

/* ── แท่งอัตรากำไรขั้นต้น กระพริบเตือนตอนกำไรต่ำกว่ามาตรฐาน (55%) ──
   ให้เห็นชัดตั้งแต่ตอนลากแท่ง Food Cost เลย ไม่ต้องรอไปอ่านตัวเลขทีหลัง */
@keyframes marginBarWarn {
  0%, 100% { box-shadow: 0 0 0 0 rgba(226,75,74,.55); }
  50%      { box-shadow: 0 0 10px 2px rgba(226,75,74,.55); }
}
#sum-margin-bar.bf-bad {
  animation: marginBarWarn 1s ease-in-out infinite;
}

/* ── การ์ดวัตถุดิบที่ตรงกับคำค้นหา — ยื่นออกมาเด่นกว่าการ์ดอื่น สว่างขึ้นนิดๆ มีมิติ (เงาลึกขึ้น) ── */
.sc.sc-match,
.sc.sc-match:hover {
  background: var(--bg-card-match, rgba(255,255,255,1));
  border-color: rgba(78,205,196,.55) !important;
  box-shadow: 0 6px 20px rgba(78,205,196,.22), 0 2px 6px rgba(0,0,0,.06) !important;
  transform: translateY(-2px) scale(1.012);
  position: relative;
  z-index: 1;
}
[data-theme="dark"] .sc.sc-match {
  background: rgba(48,50,52,1);
  box-shadow: 0 6px 20px rgba(78,205,196,.28), 0 2px 6px rgba(0,0,0,.25) !important;
}

/* ── การ์ดสถิติ 4 ใบหน้าแรก (เมนู/วัตถุดิบ/ต้นทุน/กำไร) — เปลี่ยนเป็นสีขาว สไตล์เดียวกับ
   การ์ดวัตถุดิบที่หน้าคลังวัตถุดิบ (#p-inv .sc) แทนที่มัสตาร์ดเดิม
   วางเป็น rule สุดท้ายของ stylesheet เพื่อให้ !important ชนะ rule .scard ทั่วไปที่มาก่อนหน้า
   โดยไม่ไปกระทบการ์ดประเภทอื่นที่ใช้ .scard/.gc/.csec/.qbtn ร่วมกันอยู่ ── */
.scard.dash-stat {
  background: #ffffff !important;
  border: none !important;
  border-radius: 14px !important;
  box-shadow: 0 2px 8px rgba(0,120,80,.07) !important;
}
/* โหมดมืด — พื้นหลังการ์ดสถิติ 4 ใบ ใช้สีเดียวกับการ์ดเมนู/การ์ดวัตถุดิบในโหมดมืด
   พร้อมเงา 3 ชั้นให้ดูนูนขึ้น เหมือนกับการ์ดหน้าร้าน/เดลิเวอรี่ในหน้าคำนวณ */
[data-theme="dark"] .scard.dash-stat {
  background: rgba(19,20,22,.95) !important;
  box-shadow: 0 1px 0 rgba(255,255,255,.05) inset, 0 4px 10px rgba(0,0,0,.35), 0 1px 3px rgba(0,0,0,.3) !important;
}
/* ตัวเลขทั้ง 4 การ์ดเป็นสีมินท์เดียวกันหมด แทนที่สีหลากหลายเดิม (มินท์/ทอง/เขียว/ชมพู) */
.scard.dash-stat .s-val,
.scard.dash-stat .sv-mint,
.scard.dash-stat .sv-gold,
.scard.dash-stat .sv-green,
.scard.dash-stat .sv-pink {
  color: var(--mint6) !important;
}
[data-theme="dark"] .scard.dash-stat .s-val,
[data-theme="dark"] .scard.dash-stat .sv-mint,
[data-theme="dark"] .scard.dash-stat .sv-gold,
[data-theme="dark"] .scard.dash-stat .sv-green,
[data-theme="dark"] .scard.dash-stat .sv-pink {
  color: var(--mint6) !important;
}

/* ── การ์ดวัตถุดิบหน้าคำนวณต้นทุน (.ing-card) — เปลี่ยนให้นูนแบบเดียวกับการ์ดสถิติ
   4 ใบหน้าแรก (.scard.dash-stat ด้านบน): พื้นขาว ไม่มีขอบ เงานุ่มแทนขอบเขียวมินท์+เงาขอบล่างเดิม
   วางต่อจาก .scard.dash-stat ทันทีเพื่อรักษาลำดับ !important เดียวกัน (rule หลังสุดชนะ) ── */
.ing-card {
  background: #ffffff !important;
  border: none !important;
  box-shadow: 0 2px 8px rgba(0,120,80,.07) !important;
}
[data-theme="dark"] .ing-card {
  background: rgba(19,20,22,.95) !important;
  box-shadow: 0 1px 0 rgba(255,255,255,.05) inset, 0 4px 10px rgba(0,0,0,.35), 0 1px 3px rgba(0,0,0,.3) !important;
}
@media(hover:hover){
  .ing-card:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 14px rgba(0,120,80,.1) !important;
  }
  [data-theme="dark"] .ing-card:hover {
    box-shadow: 0 1px 0 rgba(255,255,255,.05) inset, 0 6px 16px rgba(0,0,0,.4), 0 1px 3px rgba(0,0,0,.3) !important;
  }
}
.ing-card:active {
  transform: translateY(1px) scale(.98) !important;
  box-shadow: 0 1px 4px rgba(0,120,80,.08) !important;
}

/* ── แถบคาดล่าง (bnav-backdrop) ──
   เลเยอร์แยกต่างหาก อยู่หลังแคปซูลปุ่มเมนู (.bnav) เต็มความกว้างจอ ทำหน้าที่เบลอ/บังเนื้อหา
   ที่เลื่อนผ่านบริเวณด้านล่างจอเท่านั้น ไม่ยุ่งกับตัวแคปซูลเลย — ถ้าเบลอไม่ทำงานบนบางอุปกรณ์
   (เคยเจอปัญหานี้กับ .bnav เอง) จะเห็นแค่แถบทึบจางๆ ไม่ใช่ปุ่มเมนูพังหรือเนื้อหาทะลุออกมาเต็มๆ
   วางเป็น rule สุดท้ายของ stylesheet เพื่อไม่ให้ถูก rule อื่นทับ */
.bnav-backdrop{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  height:86px;
  z-index:49;
  pointer-events:none;
  background:linear-gradient(180deg, rgba(240,253,249,0) 0%, rgba(240,253,249,.55) 55%, rgba(240,253,249,.95) 100%);
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
  /* ── mask แนวตั้งเดียวกับ gradient สี ── ทำให้ตัวเบลอเองก็ค่อยๆ จางหายไปด้วย ไม่ใช่แค่สีพื้นหลัง
     กันไม่ให้เห็นรอยต่อเป็นเส้นตรงระหว่างโซนเบลอกับโซนไม่เบลอที่ขอบบนสุด (เป็นรูปสี่เหลี่ยมธรรมดา
     ไม่ใช่ทรงแคปซูลที่เคยพังตอนใช้ mask กับ .bnav เอง ปลอดภัยกว่ามาก) */
  -webkit-mask-image:linear-gradient(180deg, transparent 0%, #000 55%, #000 100%);
  mask-image:linear-gradient(180deg, transparent 0%, #000 55%, #000 100%);
}
[data-theme="dark"] .bnav-backdrop{
  background:linear-gradient(180deg, rgba(10,11,12,0) 0%, rgba(10,11,12,.55) 55%, rgba(10,11,12,.95) 100%);
}
/* เดสก์ท็อป — ปุ่มเมนูกลายเป็นแถบข้างแนวตั้ง (ไม่ใช่แคปซูลลอยแบบมือถือ) แถบคาดล่างนี้เลยไม่มี
   ความหมายอะไรแล้ว ซ่อนไปเลยบนหน้าจอกว้าง (วางไว้ใกล้ rule เดิมเพื่อให้หาเจอง่ายในอนาคต แทนที่จะ
   ไปฝังอยู่ลึกในกลุ่ม media query เดสก์ท็อปที่มีอยู่แล้วหลายพันบรรทัดก่อนหน้า) */
@media(min-width:768px){
  .bnav-backdrop{ display:none !important; }
}

/* ── แถบคาดบน (hdr-backdrop) ──
   เลเยอร์แยกต่างหาก อยู่ใต้ .hdr (sticky header) เฉพาะตอนอยู่หน้าแรก (hdr-hero-mode) เท่านั้น
   ทำหน้าที่เบลอ/บังการ์ดที่เลื่อนผ่านบริเวณใต้ header เท่านั้น ไม่ยุ่งกับตัว .hdr เอง — คู่กันกับ
   .bnav-backdrop ด้านล่างจอ (rule เดียวกันแค่กลับทิศ) ไล่สีจาก --bg-body (พื้นหลังแอป) ที่ด้านล่าง
   ของแถบ ไปโปร่งใสที่ด้านบน (ติดกับ .hdr) ทำให้การ์ดที่เลื่อนขึ้นมาค่อยๆ จางหายเข้าไปใต้ header
   แทนที่จะโผล่มาแบบขาดตอนชัดๆ ซ่อนอัตโนมัติทุกหน้ายกเว้นหน้าแรก ผ่าน .hdr-hero-mode + selector พี่น้อง */
.hdr-backdrop{
  position:fixed;
  left:0;
  right:0;
  top:0;
  height:76px;
  z-index:39;
  pointer-events:none;
  opacity:0;
  transition:opacity .3s;
  background:linear-gradient(180deg, rgba(211,247,211,.9) 0%, rgba(211,247,211,.9) 70%, rgba(211,247,211,0) 100%);
  -webkit-backdrop-filter:blur(20px);
  backdrop-filter:blur(20px);
  -webkit-mask-image:linear-gradient(180deg, #000 0%, #000 70%, transparent 100%);
  mask-image:linear-gradient(180deg, #000 0%, #000 70%, transparent 100%);
}
[data-theme="dark"] .hdr-backdrop{
  background:linear-gradient(180deg, rgba(214,218,190,.5) 0%, rgba(214,218,190,.5) 60%, rgba(214,218,190,0) 100%);
}
/* เปิดใช้เฉพาะหน้าแรก — .hdr จะมี class .hdr-hero-mode ต่อท้ายเฉพาะตอนอยู่ p-dash (สลับให้อัตโนมัติ
   ใน goPage()) ใช้ selector พี่น้อง (+) เพราะ .hdr-backdrop วางเป็น sibling ถัดจาก .hdr ใน DOM */
.hdr.hdr-hero-mode + .hdr-backdrop{
  opacity:0;
}
@media(min-width:768px){
  .hdr-backdrop{ display:none !important; }
}

/* การ์ด "คำนวณอีเว้นต์" — เอาเส้นขีดใต้หัวข้อออก ลดระยะห่างให้การ์ดกระชับ ไม่กินพื้นที่เกินไป
   (ต้องใช้ !important ชนะ rule .csec-hdr, .sh ที่ตั้ง border-bottom ไว้แบบ !important เหมือนกัน) */
#event-planner-sec .csec-hdr {
  margin-bottom: 4px !important;
  padding-bottom: 0 !important;
  border-bottom: none !important;
}
/* ปุ่ม "เพิ่มทั้งหมดเข้าลิสต์ซื้อของ" — ใช้ตัวหนังสือเขียวเข้มเหมือนกันทั้ง light/dark (สีถูกกำหนดที่ #add-all-bom-btn ด้านบนแล้ว)
   พร้อมเงานูนให้ดูเหมือนปุ่มกดได้จริง ไม่ใช่แค่กรอบเรียบๆ */
#add-all-bom-btn {
  box-shadow: 0 1px 0 rgba(255,255,255,.6) inset, 0 4px 10px rgba(0,0,0,.08), 0 1px 3px rgba(0,0,0,.06) !important;
  transition: transform .12s ease, box-shadow .12s ease !important;
}
#add-all-bom-btn:active {
  transform: translateY(1px);
  box-shadow: 0 1px 0 rgba(255,255,255,.4) inset, 0 1px 3px rgba(0,0,0,.1) !important;
}
[data-theme="dark"] #add-all-bom-btn {
  box-shadow: 0 1px 0 rgba(255,255,255,.05) inset, 0 4px 10px rgba(0,0,0,.35), 0 1px 3px rgba(0,0,0,.3) !important;
}
[data-theme="dark"] #add-all-bom-btn:active {
  box-shadow: 0 1px 0 rgba(255,255,255,.03) inset, 0 1px 3px rgba(0,0,0,.3) !important;
}
.bundle-unit-select { font-size: 11px !important; line-height: 1.6 !important; }
