/* 메뉴판 번역 (/scan/menu/, 앱 #/menu) 전용 모양. 이름은 tm- 로 시작해요 (style.css의 다른 이름과 겹치지 않게).
   화면 조각: lib/menu-ui.mjs(틀·직원 카드) · lib/menu-render.mjs(음식 카드). 이 화면에서만 불러요.
   휴대폰 점검 규칙(style.css)과 같게: 글자 14px 이상, 누르는 칸 44px, 글자 대비 4.5:1, 화면 높이(vh) 단위 안 씀 (tests/scan-menu.test.mjs가 확인). */
.tm-hero{padding:20px 18px}
.tm-h1{font-size:26px;line-height:1.25;letter-spacing:-.6px;margin:0 0 8px}
.tm-h1 span{display:block;margin-top:4px;font-size:14px;font-weight:700;letter-spacing:0;color:var(--muted)}
.tm-lead{margin:0 0 14px;color:#3d4741;font-size:15px}
.tm-shots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.tm-shot{display:flex;align-items:center;justify-content:center;gap:8px;min-height:56px;padding:10px 12px;border-radius:14px;font-weight:800;font-size:16px;line-height:1.25;text-align:center;cursor:pointer;word-break:keep-all}
.tm-shot svg{flex:none}
.tm-cam{background:var(--ink);color:#fff;box-shadow:0 6px 18px rgba(20,35,27,.22)}
.tm-album{background:#fff;color:var(--ink);border:1.5px solid var(--ink)}
.tm-shot:focus-within{outline:3px solid #2f8f5f;outline-offset:2px}
.tm-busy .tm-shot{opacity:.55;pointer-events:none}
.tm-status{min-height:1.5em;margin:10px 0 0;font-weight:700;color:var(--accent)}
.tm-status:empty{margin:0;min-height:0}
.tm-type{margin-top:8px;border-top:1px solid var(--line)}
.tm-type>summary{display:flex;align-items:center;min-height:46px;cursor:pointer;font-weight:700;font-size:15px}
.tm-type>summary,.tm-limits>summary,.tm-guide-fold>summary{list-style:none}
.tm-type>summary::-webkit-details-marker,.tm-limits>summary::-webkit-details-marker,.tm-guide-fold>summary::-webkit-details-marker{display:none}
.tm-type>summary::after,.tm-limits>summary::after,.tm-guide-fold>summary::after{content:"+";margin-left:auto;padding-left:10px;font-size:20px;font-weight:700;line-height:1;color:var(--muted)}
.tm-type[open]>summary::after,.tm-limits[open]>summary::after,.tm-guide-fold[open]>summary::after{content:"−"}
.tm-form textarea{display:block;width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:16px;line-height:1.5;resize:vertical;background:#fcfdfb}
.tm-form-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}
.tm-form-row .primary{flex:1 1 150px;width:auto;margin:0;min-height:48px}
.tm-form-row .ghost-sm{min-height:44px;font-size:14px}
.tm-privacy{margin:12px 0 0}
.tm-limits>summary{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;min-height:44px;cursor:pointer}
.tm-limsum{font-size:14px;color:var(--muted);font-weight:600}
.tm-limsum.on{color:var(--accent);font-weight:800}
.tm-sub{margin:14px 0 6px;font-size:15px}
.tm-chips{display:flex;flex-wrap:wrap;gap:8px}
.tm-chip{min-height:44px;padding:0 14px;border:1px solid #9aa3ab;border-radius:999px;background:#fff;font-size:14px;font-weight:700;color:var(--ink)}
.tm-chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.tm-chip[aria-pressed="true"]::before{content:"✓ "}
.tm-staffbar{margin:12px 0}
.tm-staffbtn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;border:2px solid var(--accent);border-radius:14px;background:#fff;color:var(--accent);font-size:16px;font-weight:800}
.tm-res{margin-top:4px}
.tm-res:focus{outline:none}
.tm-res-head{margin:14px 0 12px;padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff}
.tm-res-head h2{margin:0 0 2px;font-size:19px;letter-spacing:-.4px}
.tm-res-head>p{margin:0}
.tm-est{margin:10px 0 0!important;padding:10px 12px;border:1px solid #f3d29a;border-radius:10px;background:#fff4e0;color:#6b4100;font-size:14px;font-weight:700;line-height:1.5}
.tm-conf{margin-top:10px;padding:10px 12px;border:1px solid #f5c5c5;border-radius:10px;background:#fdecec;color:#6d1a1a;font-size:14px}
.tm-conf-h{display:flex;align-items:center;gap:6px;margin:0}
.tm-conf ul{margin:6px 0 0;padding-left:18px}
.tm-conf li{min-height:44px;padding:4px 0}
.tm-conf a{color:#8a1f1f;font-weight:800}
.tm-lv{font-size:14px;font-weight:800;border-radius:999px;padding:0 8px;white-space:nowrap}
.tm-lv-no{background:#b42318;color:#fff}
.tm-lv-check{background:#f3d29a;color:#4f3200}
.tm-empty{margin:0 0 12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}
.tm-cards{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.tm-card{position:relative;padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff;overflow-wrap:anywhere;scroll-margin-top:12px}
.tm-hit-no{border:2px solid #d93d42}
.tm-hit-check{border:2px solid #e3a008}
.tm-warn{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin:-16px -16px 12px;padding:10px 16px;border-radius:14px 14px 0 0;font-size:15px;line-height:1.45}
.tm-warn svg{flex:none}
.tm-warn small{font-size:14px}
.tm-warn-no{background:#fdecec;color:#7d1a1a}
.tm-warn-check{background:#fdf1dc;color:#5c3b00}
.tm-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.tm-name{margin:0;font-size:20px;line-height:1.3;letter-spacing:-.4px}
.tm-name small{display:block;margin-top:2px;font-size:14px;font-weight:600;color:var(--muted);letter-spacing:0}
.tm-price{flex:none;padding:2px 10px;border-radius:999px;background:#eef1ed;font-size:15px;font-weight:800;white-space:nowrap}
.tm-roman,.tm-orig,.tm-plus,.tm-read{margin:4px 0 0;font-size:14px;line-height:1.5}
.tm-orig [lang="ko"]{font-size:15px}
.tm-k{margin-right:4px;font-size:14px;font-weight:700;color:var(--muted)}
.tm-plus{color:#3d4741}
.tm-plus small{font-size:14px;color:var(--muted)}
.tm-sec{margin-top:12px}
.tm-sec h4{margin:0 0 5px;font-size:14px;font-weight:800;color:var(--muted)}
.tm-sec>p{margin:0}
.tm-ing{font-size:15px;line-height:1.55}
.tm-als,.tm-marks{display:flex;flex-wrap:wrap;gap:6px}
.tm-als .chip{font-size:14px}
.tm-als .chip small{font-size:14px;font-weight:600}
.chip.tm-maybe{background:#f3f6fb;color:#2f4b70;border:1px dashed #8ea7c9}
.tm-mk{padding:4px 9px;border-radius:8px;background:#eef1ed;color:#33403a;font-size:14px;font-weight:800;line-height:1.35}
.tm-mk small{font-size:14px;font-weight:600}
.tm-mk-pork{background:#fde8e8;color:#8f1a1a}
.tm-mk-meat{background:#fdeedd;color:#743800}
.tm-mk-seafood{background:#e3f0fb;color:#1d4f86}
.tm-mk-jeotgal{background:#e6eef6;color:#264766}
.tm-mk-broth{background:#f3eee6;color:#54411f}
.tm-mk-egg{background:#fff4cc;color:#574400}
.tm-mk-dairy{background:#eeeef8;color:#3c3c6e}
.tm-mk-alcohol,.tm-mk-alc{background:#f3e8f8;color:#5f2579}
.tm-mk-spicy{background:#fde9e1;color:#8f300d}
.tm-mk-soft{background:#e6f4ea;color:#1b5e33}
.tm-vg{list-style:none;display:grid;gap:6px;margin:12px 0 0;padding:10px 12px;border-radius:12px;background:#f6f7f8;font-size:14px;line-height:1.5}
.tm-vg .small{font-size:14px}
.tm-st{padding:0 8px;border-radius:999px;font-size:14px;font-weight:800;white-space:nowrap}
.tm-v-ok .tm-st{background:#e3f5ea;color:#11592f}
.tm-v-check .tm-st{background:#fdf1dc;color:#6b4400}
.tm-v-no .tm-st{background:#fde8e8;color:#9b2424}
.tm-v-none .tm-st,.tm-v-unknown .tm-st{background:#e9ecee;color:#454d55}
.tm-hn{font-size:14px;color:#6b4400;font-weight:700}
.tm-ask{display:flex;align-items:center;justify-content:center;width:100%;min-height:46px;margin-top:12px;border:1.5px solid var(--ink);border-radius:12px;background:#fff;font-weight:800;color:var(--ink)}
.tm-head h3{margin:8px 4px 0;font-size:15px;color:var(--muted)}
.tm-head small{font-size:14px;font-weight:600}
.tm-unk{background:#fbfbfc}
.tm-badge{display:inline-block;margin:0 0 6px;padding:0 9px;border-radius:999px;background:#e9ecee;color:#454d55;font-size:14px;font-weight:800}
.tm-origin .tm-badge{background:#e8f0fb;color:#24508f}
.tm-unk-ko{margin:0;font-size:18px;font-weight:800;line-height:1.4}
.tm-tr{margin:6px 0 2px;font-size:15px}
.tm-unk>p.muted{margin:2px 0 0;font-size:14px}
/* 직원에게 보여 주기 (덮개) */
.tm-staff{position:fixed;inset:0;z-index:90;display:flex;align-items:flex-end;justify-content:center;background:rgba(12,16,14,.62)}
.tm-staff-box{width:100%;max-width:640px;max-height:100%;overflow:auto;padding:18px 18px calc(18px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:#fff}
.tm-staff-h{margin:0;font-size:14px;font-weight:800;color:var(--muted)}
.tm-staff-card{min-height:180px}
.tm-say{margin:12px 0 0;font-size:clamp(28px,8.4vw,44px);line-height:1.32;font-weight:900;letter-spacing:-.6px;color:#111;word-break:keep-all}
.tm-mean{margin:14px 0 0;font-size:17px;line-height:1.5;color:#3d4741}
.tm-count{margin:10px 0 0;font-size:14px}
.tm-staff-nav{display:flex;gap:8px;margin-top:14px}
.tm-staff-nav .ghost-sm{flex:1;justify-content:center;min-height:46px;font-size:15px}
.tm-staff-nav .ghost-sm:disabled{opacity:.4}
.tm-staff-close{margin-top:10px;min-height:50px}
@media (min-width:700px){.tm-staff{align-items:center;padding:24px}.tm-staff-box{border-radius:22px}}
/* 사용법·표시 뜻·놓치기 쉬운 재료 */
.tm-guide h2{font-size:18px}
.tm-steps,.tm-notes{margin:0;padding-left:20px}
.tm-steps li,.tm-notes li{margin:6px 0;line-height:1.55}
.tm-dl{display:grid;gap:12px;margin:0}
.tm-dl dt{font-weight:800}
.tm-dl dd{margin:2px 0 0;color:#3d4741;font-size:15px;line-height:1.6}
.tm-faq details{padding:8px 0;border-top:1px solid var(--line)}
.tm-faq summary{display:flex;align-items:center;min-height:44px;cursor:pointer;font-weight:700}
.tm-faq p{margin:6px 0 0;color:#3d4741}
.tm-guide-fold>summary{display:flex;align-items:center;min-height:44px;cursor:pointer;font-weight:800}
.tm-guide-fold .tm-guide{margin:10px 0 0;padding:0;border:0}
.tm-src{margin:16px 4px;font-size:14px}
@media (max-width:340px){.tm-shots{grid-template-columns:1fr}}
