/* 새판 화면 틀 모양 frame-c — 머리 칸 · 틀 규칙
   지금 판 도쿄 web/shell.css(국내판 tokens.css + app.css 틀 규칙을 뽑은 것)를 그대로 옮겨 600줄 아래로 나눴다(2026-10-14).
   손으로 고칠 때는 국내판 모양과 같은지 먼저 본다 · 새판에만 있는 것은 head-extra.css · parts.css */
.tm-emblem-img[src*="emblem-pick"] { mix-blend-mode: normal; }
.tm-entries.four { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
.tm-entries.four .tm-entry { padding: 4px 2px; letter-spacing: -0.03em; word-break: keep-all; text-align: center; }
.tm-entries.four .tm-entry small { letter-spacing: -0.02em; white-space: nowrap; }
.tm-entries.six { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; }
.tm-entries.six .tm-entry { padding: 4px 2px; letter-spacing: -0.02em; word-break: keep-all; text-align: center; }
.tm-entries.six .tm-entry small { letter-spacing: -0.02em; white-space: nowrap; }
.tm-langrow {
  display: flex;
  gap: 4px;
  margin-top: 4px;
  width: 100%;
}
.tm-langbtn,
.tm-micbtn {
  flex: 1 1 0;
  min-height: 44px;
  padding: 2px 6px;
  border: 1.5px solid var(--tm-gold);
  border-radius: 10px;
  background: var(--tm-surface);
  color: var(--tm-text);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  cursor: pointer;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.tm-langbtn b,
.tm-micbtn b { display: none; }
/* 그림 아래 작은 이름(🌐 한국어 · 🎤 말하기) — 휴대폰에서도 무엇인지 보이게(10-18 대표님) */
.tm-langbtn, .tm-micbtn { flex-direction: column; gap: 1px; }
.tm-langbtn .cap, .tm-micbtn .cap { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; font-weight: 800; line-height: 1.1; }
.tm-member-row2 .tm-langbtn .cap, .tm-member-row2 .tm-micbtn .cap { font-size: 10px; letter-spacing: -.3px; }
.tm-member-row2 .tm-langbtn .ico, .tm-member-row2 .tm-micbtn .ico { font-size: 20px; }
.tm-lang-modal .tm-modal-note { margin: 0 0 10px; font-size: 14px; line-height: 1.45; color: var(--tm-text-weak); }
.tm-langbtn .ico,
.tm-micbtn .ico { font-size: 24px; line-height: 1; }
.tm-micbtn.on {
  background: var(--tm-gold);
  color: #2a1c00;
  animation: tm-mic-pulse 1.1s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .tm-micbtn.on { animation: none; }
}
.tm-lang-toast {
  position: fixed;
  left: 50%;
  top: 42%;
  transform: translate(-50%, -50%);
  z-index: 60;
  max-width: 82vw;
  padding: 18px 22px;
  border-radius: 16px;
  border: 2px solid var(--tm-gold);
  background: rgba(20, 20, 19, .92);
  color: #fff;
  text-align: center;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .35);
}
.tm-lang-toast .big { font-size: 20px; font-weight: 800; }
.tm-lang-toast .ko { margin-top: 6px; font-size: 15px; opacity: .85; }
.tm-lang-modal .tm-modal-box { max-width: 420px; }
.tm-lang-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);   
  gap: 10px;
  margin: 12px 0;
}
.tm-lang-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 64px;
  padding: 8px 4px;
  border: 1.5px solid var(--tm-line);
  border-radius: 12px;
  background: var(--tm-surface);
  color: var(--tm-text);
  cursor: pointer;
}
.tm-lang-item.on { border-color: var(--tm-gold); border-width: 2.5px; }
.tm-lang-item.on { background: var(--tm-gold-soft); }
@media (max-width: 360px) {
  .tm-lang-list { grid-template-columns: repeat(2, 1fr); }
}
html:not([lang="ko"]) .tm-member-btn b { font-size: 14px; letter-spacing: -.3px; }
html:not([lang="ko"]) .tm-member-btn small { font-size: 11px; }
html:not([lang="ko"]) .tm-member-btn { line-height: 1.1; word-break: keep-all; }
html:not([lang="ko"]) .tm-member-cell .tm-member-btn {
  flex-direction: column; align-items: center; gap: 0;
}
html:not([lang="ko"]) .tm-entry b { font-size: 15px; letter-spacing: -.3px; }
html:not([lang="ko"]) .tm-entry small { font-size: 11px; }
html:not([lang="ko"]) .tm-stepnav .prev .tx,
html:not([lang="ko"]) .tm-stepnav .next .tx { font-size: 10px; letter-spacing: -.3px; }
html:not([lang="ko"]) .tm-geo .on,
html:not([lang="ko"]) .tm-geo .off { font-size: 13px; }
.tm-side { display: contents; }
@media (min-width: 700px) and (min-height: 541px) {
  :root { --tm-max-w: 640px; }
}
@media (orientation: landscape) and (max-height: 540px) and (min-width: 560px) {
  :root { --tm-max-w: 1000px; --tm-side-w: clamp(330px, 46vw, 400px); }
  .tm-app { display: grid; grid-template-columns: var(--tm-side-w) minmax(0, 1fr); align-items: start; }
  .tm-app > * { grid-column: 2; }
  .tm-app > .tm-devbar, .tm-app > .tm-viewbar { grid-column: 1 / -1; }
  .tm-app > .tm-side {
    display: block; grid-column: 1; align-self: start;
    position: sticky; top: 0; height: 100vh; height: 100dvh;
    overflow-y: auto; overscroll-behavior: contain;
    border-right: 2px solid var(--tm-frame-gold, #C49A2C);
  }
  .tm-side > .tm-header { position: static; top: auto; }
  .tm-side > .tm-stepnav { position: sticky; top: auto; bottom: 0; z-index: 41; background: var(--tm-surface); border-top: 1px solid var(--tm-line); }
  .tm-side .tm-entries { position: sticky; bottom: var(--tm-stepnav-h, 140px); z-index: 40; box-shadow: 0 -6px 8px -6px rgba(0,0,0,.25); background: var(--tm-surface); }
  .tm-bottom-note, .tm-bottombar {
    left: auto; transform: none; max-width: none;
    right: max(0px, calc(50% - var(--tm-max-w) / 2));
    width: calc(min(100%, var(--tm-max-w)) - var(--tm-side-w));
  }
}
.tm-chip.tm-chip-main { border-width: 2px; border-color: var(--tm-gold); }
.tm-bottom-note b { display: block; color: var(--tm-text); font-size: 16px; }
.tm-bottom-note .tm-bottom-fee { font-size: 15px; }
.tm-guideline {
  position: fixed; inset: 0; z-index: 900; pointer-events: none;
  transition: opacity .35s ease;
}
.tm-guideline.out { opacity: 0; }
.tm-guideline .line {
  fill: none; stroke: var(--tm-frame-gold, var(--tm-gold)); stroke-width: 3.5; stroke-linecap: round;
  stroke-dasharray: 2 9;
  filter: drop-shadow(0 0 2px rgba(255, 255, 255, .95));
  animation: tm-guide-flow .9s linear infinite, tm-guide-in .5s ease-out both;
}
.tm-guideline .start {
  fill: var(--tm-frame-gold, var(--tm-gold)); stroke: #fff; stroke-width: 3;
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, .35));
  transform-box: fill-box; transform-origin: center;
  animation: tm-guide-beat 1.6s ease-in-out infinite;
}
.tm-guideline .count { font: 800 15px/1 var(--tm-font-ui); fill: #fff; }
.tm-guideline .head { fill: var(--tm-frame-gold, var(--tm-gold)); stroke: none; }
.tm-guideline .arrow { fill: none; stroke: var(--tm-frame-gold, var(--tm-gold)); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.tm-guideline .more-bg { fill: #FFF8E6; stroke: var(--tm-frame-gold, var(--tm-gold)); stroke-width: 2; }
.tm-guideline .more {
  font: 700 15px/1 var(--tm-font-ui); fill: #5a4310;
  paint-order: stroke; stroke: #fff; stroke-width: 4px; stroke-linejoin: round;
}
.tm-guide-target { outline: 3px dashed var(--tm-frame-gold, var(--tm-gold)); outline-offset: 3px; border-radius: 10px; }
.tm-guideline.still .line, .tm-guideline.still .start { animation: none; }
@media (prefers-reduced-motion: reduce) {
  .tm-guideline .line, .tm-guideline .start { animation: none; }
}
@media print {
  .tm-guideline { display: none; }
}
.tm-langbtn .ico.tag { font-size: 20px; font-weight: 800; letter-spacing: -.5px; }
.tm-lang-item .own { display: block; font-size: 18px; font-weight: 700; line-height: 1.25; }
.tm-lang-item .ko { display: block; font-size: 15px; color: var(--tm-text-weak); margin-top: 2px; }
.tm-stepnav .now,
.tm-tipshop .say,
.tm-undo .t {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: anywhere;
  text-overflow: clip;
  overflow: hidden;
}
.tm-stepnav .tm-tipshop, .tm-tipblk .tm-tipshop { align-items: center; }
.tm-stepnav .tm-tipshop .say, .tm-tipblk .tm-tipshop .say { line-height: 1.25; }
@media (max-width: 330px) {
  .tm-member-cell .tm-member-btn small { display: block; font-size: 11px; }
  .tm-member-cell .tm-member-btn b { font-size: 16px; }
}
.tm-stepnav .tm-tiprow { flex-wrap: wrap; row-gap: 2px; }
.tm-stepnav .tm-tiprow .tm-tipshop { flex: 1 1 110px; }
.tm-book-cats .tm-chip { margin: 0 6px 6px 0; }
.tm-gm-picks .tm-chip { margin: 6px 6px 0 0; }
.tm-pre-card .tm-btn-primary, .tm-pre-card .tm-chip { margin-top: 8px; }
.tm-gm-day .tm-chip { margin-top: 8px; }
.tm-chip.lockchip { opacity: .75; cursor: default; }
.tm-area-row .tm-chip { margin-top: 8px; }
.tm-fin-card .tm-chip, .tm-tax-card .tm-chip { margin-top: 8px; }
.tm-fin-grant .tm-btn-primary + .tm-chip { margin-left: 6px; }
.tm-train > .tm-chip { margin-top: 10px; }
.tm-train-q .tm-chip { display: block; width: 100%; text-align: left; margin-bottom: 6px; white-space: normal; word-break: keep-all; }
.tm-train-q .tm-chip.bad { border-color: var(--tm-danger-line); background: var(--tm-danger-bg); color: var(--tm-danger); }
.tm-bottom-note {
  display: flex;
  align-items: center;
  gap: 8px;
}
.tm-bottom-note > b { flex: 1 1 auto; min-width: 0; }
.tm-exit {
  flex: 0 0 auto;
  align-self: stretch;
  margin: -4px calc(var(--tm-gap) * -1 + 4px) -4px 0;
  padding: 4px 10px;
  border: 1px solid #8E1F16;
  border-radius: 999px;
  
  background: var(--tm-danger);
  color: #FFFFFF;
  font-size: var(--tm-text-sub);
  font-weight: 800;
  line-height: 1.15;
  white-space: nowrap;
  word-break: keep-all;
  cursor: pointer;
}
.tm-exit:active { background: #8E1F16; }
.tm-bottombar .tm-exit {
  margin: 0; border-radius: 0; border: 0; align-self: auto;
  background: var(--tm-danger); color: #FFFFFF; font-size: var(--tm-text-sub); font-weight: 800;
}
.tm-bye {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  background: rgba(0, 0, 0, .45);
  pointer-events: none;
}
.tm-bye-card {
  padding: 24px 30px;
  border-radius: var(--tm-radius);
  background: var(--tm-surface);
  border: 2px solid var(--tm-gold);
  text-align: center;
  box-shadow: 0 8px 28px rgba(0, 0, 0, .3);
}
.tm-bye-face { font-size: 52px; line-height: 1; display: block; }
.tm-bye-t {
  margin-top: 10px;
  font-size: var(--tm-text-title);
  font-weight: 800;
  color: var(--tm-gold-deep);
}
.tm-bye-s { margin-top: 4px; font-size: var(--tm-text-sub); color: var(--tm-text-weak); }
@media (prefers-reduced-motion: no-preference) {
  .tm-bye-face { animation: tm-wink 1.1s ease-in-out 2; }
}
.tm-app select { max-width: 100%; }
.tm-bottom-note.bare {
  justify-content: flex-end;
  padding: 2px var(--tm-gap);
  background: transparent;          
  border-top: 0;
  line-height: 1;
  pointer-events: none;             
}
.tm-bottom-note.bare .tm-exit {
  pointer-events: auto;
  align-self: auto;
  margin: 0;
  padding: 5px 13px;   
  font-size: 16px;     
  box-shadow: 0 1px 3px rgba(0,0,0,.25);
}
.tm-scrollbar { bottom: 40px; }
html.tm-has-bar .tm-scrollbar { bottom: calc(var(--tm-bottombar-h) + 8px); }
.tm-tipblk { margin-bottom: var(--tm-gap-sm); }
.tm-member-row2 { display: flex; align-items: stretch; gap: 6px; }
.tm-member-row2 > .tm-geo { flex: 1 1 auto; min-width: 0; }
.tm-member-row2 { flex-wrap: wrap; }
.tm-member-row2 > .tm-geo:empty { display: none; }
.tm-member-row2 > .tm-langrow { flex: 0 0 auto; max-width: 100%; }
.tm-entries.six .tm-entry { min-height: 48px; letter-spacing: -0.045em; }
.tm-entries.six { padding-bottom: 2px; }
.tm-entries.six .tm-entry small { display: none; }
.tm-entries.six .tm-entry { padding: 4px 2px; }
.tm-brand-frame .tm-logo-btn { width: 78px; height: 62px; padding: 3px; }
.tm-brand-title { gap: 1px; padding: 2px 6px; }
.tm-brand-title .tm-wordmark { font-size: 30px; }
.tm-brand-sub { grid-template-columns: 78px 1fr; }
.tm-brand-rule { height: 6px; }
.tm-member-btn { min-height: 48px; padding: 2px 4px; }
.tm-member-row2 > .tm-geo, .tm-member-row2 .tm-langbtn, .tm-member-row2 .tm-micbtn { min-height: 44px; }
.tm-adboard { min-height: 0; }
.tm-brand-title { gap: 0; padding: 1px 6px; }
.tm-brand-title .tm-orn { width: 14px; height: 14px; }
.tm-entries.six { gap: 3px; }
.tm-entries.six .tm-entry { min-height: 46px; }
.tm-stepnav-tabs .tm-tab { min-height: 44px; }
.tm-member-btn { white-space: normal; word-break: keep-all; letter-spacing: -0.03em; line-height: 1.15; }
.tm-member-btn > * { white-space: normal; }
.tm-brand-frame .tm-logo-btn { width: 106px; }
.tm-brand-sub { grid-template-columns: 106px 1fr; }
.tm-member-row2 { gap: 3px; }
.tm-member-row2 .tm-micbtn, .tm-member-row2 .tm-langbtn { padding-left: 2px; padding-right: 2px; }
.tm-member-row2 > .tm-geo { gap: 1px; }
.tm-member-row2 .tm-langbtn, .tm-member-row2 .tm-micbtn { min-width: 26px; }
.tm-app { overflow-x: clip; }
.tm-logo-btn picture { display: contents; }
@media print {
  .tm-app::after { display: none !important; }
}
.tm-stepnav.has-ad { padding-top: 4px; padding-bottom: 4px; }
.tm-stepnav.has-ad .tm-menutip {
  min-height: 36px; padding: 2px 10px 2px 6px; gap: 6px;
  border-width: 1.5px; border-radius: 12px; font-size: 16px; line-height: 1.2;
}
.tm-stepnav.has-ad .tm-menutip .say { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tm-stepnav.has-ad .tm-tipshop {
  min-height: 34px; padding: 2px 10px 2px 8px; gap: 4px;
  border: 1.5px dashed var(--tm-logo-rim); border-radius: 12px; background: rgba(255, 255, 255, .92);
  font-size: 16px; line-height: 1.2;
}
.tm-stepnav.has-ad .tm-tipshop .pin { display: inline; font-size: 15px; }
.tm-stepnav.has-ad .tm-tipshop .say { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--tm-text); }
.tm-stepnav.has-ad .prev, .tm-stepnav.has-ad .next { min-height: 74px; }
.tm-stepnav.has-ad .tm-navad { padding-top: 5px; }
.tm-stepnav.has-ad .tm-menutip { position: relative; padding-left: 8px; font-size: 15px; }
.tm-stepnav.has-ad .tm-menutip .ai { position: absolute; top: -7px; left: 10px; padding: 0 5px; font-size: 10px; line-height: 13px; box-shadow: 0 0 0 2px #FFF8E6; }
.tm-stepnav.has-ad .tm-menutip .wx { font-size: 15px; }
.tm-stepnav.has-ad .tm-menutip .em { font-size: 15px; }
.tm-stepnav.has-ad .tm-tipshop { font-size: 15px; padding-left: 6px; }
.tm-stepnav.has-ad .tm-tipshop .go { font-size: 13px; }
.tm-stepnav.has-ad .tm-menutip .say > .em:last-child { display: none; }
.tm-stepnav.has-ad { gap: 3px; padding-left: 4px; padding-right: 4px; }
.tm-stepnav.has-ad .tm-menutip { padding-right: 6px; gap: 4px; }
.tm-foldbar { display: flex; justify-content: center; gap: 8px; padding: 2px 8px 4px; }
.tm-foldbtn {
  min-height: 30px; padding: 0 14px; border: 1.5px solid var(--tm-line-strong); border-radius: 999px;
  background: rgba(255, 255, 255, .92); color: var(--tm-text); font-size: 14px; font-weight: 800; line-height: 1;
}
.tm-foldbtn.open { border-color: var(--tm-gold-deep); color: var(--tm-gold-deep); background: #FFF8E6; }
.tm-foldbtn:active { transform: translateY(1px); }
@media not all and (orientation: landscape) and (max-height: 540px) and (min-width: 560px) {
  .tm-header.fold1 .tm-brand-frame,
  .tm-header.fold2 .tm-brand-frame,
  .tm-header.fold2 .tm-entries { display: none; }
  .tm-header.fold2 .tm-foldbar { padding-top: 4px; }
}
@media (orientation: landscape) and (max-height: 540px) and (min-width: 560px) {
  .tm-foldbar { display: none; }
}
.tm-foldbar { padding: 1px 8px 3px; }
.tm-foldbtn { min-height: 26px; padding: 0 12px; font-size: 13px; }
.tm-off { opacity: .32; filter: grayscale(.85); pointer-events: none; user-select: none; }
.tm-off, .tm-off * { transition: none !important; animation: none !important; }
.tm-focusing .tm-entry[aria-current="true"] { box-shadow: 0 0 0 3px var(--tm-gold, #C49A2C), 0 4px 12px rgba(196, 154, 44, .35); }
.tm-focus-exit {
  display: flex; flex-direction: column; align-items: center; gap: 2px; width: 100%;
  margin: 6px 0 10px; padding: 9px 12px; min-height: 52px;
  border: 2px solid var(--tm-gold, #C49A2C); border-radius: 12px; background: #FFF8E6; color: #5a4310; cursor: pointer;
}
.tm-focus-exit b { font-size: 17px; font-weight: 800; }
.tm-focus-exit small { font-size: 13px; color: var(--tm-text-weak, #6b6255); }
.tm-focus-exit:active { transform: translateY(1px); }
@media print {
  .tm-off { opacity: 1; filter: none; }
  .tm-focus-exit { display: none; }
}
@keyframes tm-led-run {
  from { transform: translateX(0); }
  to { transform: translateX(-100%); }
}
@keyframes tm-lz-pop { from { transform: scale(.6); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@keyframes tm-guide-flow { to { stroke-dashoffset: -11; } }
@keyframes tm-led-loop { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes tm-tip-bob { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-8deg); } }
@keyframes tm-ad-hold {
  0%   { left: 160%; transform: translate(-50%, -50%) rotate(0deg); }
  18%  { left: 50%;  transform: translate(-50%, -50%) rotate(0deg); }
  26%  { left: 50%;  transform: translate(-50%, -52%) rotate(-1.2deg); }
  34%  { left: 50%;  transform: translate(-50%, -48%) rotate(1.2deg); }
  42%  { left: 50%;  transform: translate(-50%, -52%) rotate(-1deg); }
  50%  { left: 50%;  transform: translate(-50%, -48%) rotate(1deg); }
  58%  { left: 50%;  transform: translate(-50%, -52%) rotate(-1.1deg); }
  66%  { left: 50%;  transform: translate(-50%, -48%) rotate(1.1deg); }
  74%  { left: 50%;  transform: translate(-50%, -51%) rotate(-.6deg); }
  82%  { left: 50%;  transform: translate(-50%, -50%) rotate(0deg); }
  100% { left: -60%; transform: translate(-50%, -50%) rotate(0deg); }
}
@keyframes tm-mobile-sway {
  0%, 100% { transform: rotate(-1.4deg); }
  50% { transform: rotate(1.4deg); }
}
@keyframes tm-lz-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes tm-mic-pulse { 50% { opacity: .55; } }
@keyframes tm-guide-beat { 50% { transform: scale(1.18); } }
@keyframes tm-geo-wait { 50% { opacity: .62; } }
@keyframes tm-urgent-edge { 50% { box-shadow: 0 0 0 3px rgba(215,38,46,.55); } }
@keyframes tm-wink {
    0%, 42%, 58%, 100% { transform: rotate(0deg) scale(1); }
    50% { transform: rotate(-8deg) scale(1.15); }
  }
@keyframes tm-tip-poke { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(3px); } }
@keyframes tm-guide-in { from { opacity: 0; } to { opacity: 1; } }
/* 💬 텍스트 소통(위치 켜기 자리 · 10-18) + 둘째 줄 📍 · 🌐 · 🎤 세 칸 */
.tm-talkbtn { flex: 1 1 100%; min-width: 0; min-height: 44px; display: flex; align-items: center; justify-content: center; gap: 2px; padding: 2px 2px; border: 2px solid var(--tm-gold); border-radius: 10px; background: var(--tm-gold-soft); color: var(--tm-text); font-weight: 900; cursor: pointer; }
.tm-talkbtn .ico { flex: none; font-size: 16px; line-height: 1; }
.tm-talkbtn b { min-width: 0; font-size: 13px; line-height: 1.1; letter-spacing: -.3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tm-member-row2 > .tm-langrow.has-geo { flex: 1 1 100%; }
.tm-langrow.has-geo { gap: 3px; }
.tm-langrow.has-geo .tm-langbtn, .tm-langrow.has-geo .tm-micbtn { flex: 1 1 0; min-width: 0; padding: 0; }
.tm-langrow.has-geo .cap { font-size: 9px; letter-spacing: -.6px; }
.tm-langrow.has-geo .ico { font-size: 18px; }
.tm-geobtn.on { border-color: #1f8a42; background: #1f8a42; color: #fff; }
.tm-geobtn.wait { background: #cdebd6; color: #14562a; }
