:root{--navy:#1b2a6b;--navy2:#0f1b4d;--gold:#c9a24a;--gold2:#e8c76f;--ink:#1a1f33;--mute:#5b6180;--line:#dfe3ee;--bg:#e9edf5;--card:#fff;--me:#1b2a6b;--ok:#1f9d55}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:"Prompt","Leelawadee UI",sans-serif;background:var(--bg);color:var(--ink);display:flex;flex-direction:column;height:100dvh;overflow:hidden}
.hd{display:flex;align-items:center;gap:.6rem;padding:.55rem .8rem;background:var(--navy);color:#fff;flex:none;padding-top:max(.55rem,env(safe-area-inset-top))}
.hd img{width:40px;height:40px;border-radius:50%;background:#fff;padding:2px}
.hd-t{flex:1;line-height:1.15}.hd-t small{display:block;font-size:.72rem;color:#c9cee6;font-family:"Sarabun",sans-serif}
.hd-call{text-decoration:none;font-size:1.3rem;background:var(--gold);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center}
.log{flex:1;overflow-y:auto;padding:.8rem .7rem;display:flex;flex-direction:column;gap:.5rem;-webkit-overflow-scrolling:touch}
.log>*{flex:none}   /* กันการ์ด/ข้อความถูกบีบเมื่อห้องยาวกว่าจอ (บั๊ก 19 ต.ค.) */
.msg{max-width:88%;padding:.6rem .8rem;border-radius:16px;font-size:.95rem;line-height:1.45;white-space:pre-wrap;font-family:"Sarabun",sans-serif;background:var(--card);align-self:flex-start;border-bottom-left-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.msg.me{align-self:flex-end;background:var(--me);color:#fff;border-bottom-left-radius:16px;border-bottom-right-radius:4px}
.msg.sys{align-self:center;background:transparent;box-shadow:none;color:var(--mute);font-size:.78rem;padding:.2rem}
.card{align-self:flex-start;width:min(88%,360px);background:var(--card);border-radius:16px;border-bottom-left-radius:4px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.card img{width:100%;max-height:210px;object-fit:contain;display:block;background:#fff}
.card .cb{padding:.7rem .8rem}
.card h4{font-size:1rem;color:var(--navy);margin-bottom:.2rem}
.card p{font-family:"Sarabun",sans-serif;font-size:.9rem;color:var(--ink);margin-bottom:.3rem}
.card .muted{color:var(--mute);font-size:.82rem}
.card .acts{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}
.card .acts a,.card .acts button{border:1px solid var(--navy);background:#fff;color:var(--navy);border-radius:999px;padding:.35rem .8rem;font:inherit;font-size:.85rem;text-decoration:none;cursor:pointer}
.card .acts .pri{background:var(--navy);color:#fff}
.card .acts .gold{background:var(--gold);border-color:var(--gold);color:var(--navy2)}
.card .row{display:flex;justify-content:space-between;gap:.5rem;padding:.3rem 0;border-top:1px dashed var(--line);font-family:"Sarabun",sans-serif;font-size:.9rem}
.card .row b{color:var(--navy)}
.card .big{font-size:1.2rem;font-weight:700;color:var(--navy);letter-spacing:.03em}
.quick{display:flex;gap:.4rem;padding:.3rem .7rem;overflow-x:auto;flex:none;scrollbar-width:none}
.quick::-webkit-scrollbar{display:none}
.quick button{flex:none;border:1px solid var(--navy);background:#fff;color:var(--navy);border-radius:999px;padding:.35rem .8rem;font:inherit;font-size:.82rem;cursor:pointer}
.quick:empty{display:none}
.bar{display:flex;gap:.4rem;padding:.45rem .7rem;background:var(--card);border-top:1px solid var(--line);flex:none}
.bar input{flex:1;min-width:0;padding:.65rem .9rem;border:1px solid var(--line);border-radius:999px;font:inherit;font-size:1rem;background:var(--bg)}
.bar button{border:0;border-radius:50%;width:42px;height:42px;background:var(--navy);color:#fff;font-size:1.1rem;cursor:pointer}
.menu{display:grid;grid-template-columns:repeat(3,1fr);background:var(--navy2);flex:none;padding-bottom:env(safe-area-inset-bottom)}
.menu button{border:0;border-right:1px solid rgba(255,255,255,.08);border-top:1px solid rgba(255,255,255,.08);background:transparent;color:#fff;font:inherit;font-size:.82rem;font-weight:500;padding:.55rem .2rem .5rem;display:flex;flex-direction:column;align-items:center;gap:.1rem;cursor:pointer}
.menu button span{font-size:1.35rem}
.menu button:active{background:rgba(255,255,255,.12)}
.typing{align-self:flex-start;color:var(--mute);font-size:.8rem;padding:.2rem .6rem}
.map{height:190px;background:#dfe3ee url("../img/map-yard.jpg?v=1") center/cover}
@media (min-width:700px){ body{max-width:480px;margin:0 auto;box-shadow:0 0 40px rgba(0,0,0,.25)} }
