.audio-dialog{
  position:relative;
  overflow:hidden;
  overscroll-behavior:contain;
}
.audio-dialog .audio-source-card,
.audio-dialog .button,
.audio-dialog .text-button,
.audio-dialog .policy-close{
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.audio-dialog .audio-source-card:focus-visible,
.audio-dialog .button:focus-visible,
.audio-dialog .text-button:focus-visible,
.audio-dialog .policy-close:focus-visible,
.audio-dialog textarea:focus-visible,
.audio-dialog input:focus-visible{
  outline:3px solid currentColor;
  outline-offset:3px;
}
.audio-dialog .audio-preview audio{
  display:block;
  width:100%;
}
.audio-dialog .audio-review{
  min-width:0;
}
.audio-dialog .audio-review textarea{
  box-sizing:border-box;
  width:100%;
  resize:vertical;
}
@supports selector(.audio-dialog:has(.audio-review:not(.is-hidden))){
  .audio-dialog:has(.audio-review:not(.is-hidden)) > .audio-source,
  .audio-dialog:has(.audio-review:not(.is-hidden)) > .audio-limit,
  .audio-dialog:has(.audio-review:not(.is-hidden)) > .audio-recorder,
  .audio-dialog:has(.audio-review:not(.is-hidden)) > .audio-preview,
  .audio-dialog:has(.audio-review:not(.is-hidden)) > .audio-progress{
    display:none!important;
  }
  .audio-dialog:has(.audio-review:not(.is-hidden)) > .audio-head > div{
    display:none!important;
  }
  .audio-dialog:has(.audio-review:not(.is-hidden)) > .audio-head{
    min-height:0;
    padding:0;
    border:0;
  }
  .audio-dialog:has(.audio-review:not(.is-hidden)) > .audio-head .policy-close{
    position:absolute;
    top:18px;
    right:18px;
    z-index:3;
  }
  .audio-dialog:has(.audio-review:not(.is-hidden)) > .audio-review{
    display:block;
    animation:tm-audio-enter .22s ease-out both;
  }
  .audio-dialog:has(.audio-progress:not(.is-hidden)) > .audio-source,
  .audio-dialog:has(.audio-progress:not(.is-hidden)) > .audio-limit,
  .audio-dialog:has(.audio-progress:not(.is-hidden)) > .audio-recorder,
  .audio-dialog:has(.audio-progress:not(.is-hidden)) > .audio-preview,
  .audio-dialog:has(.audio-progress:not(.is-hidden)) > .audio-review{
    display:none!important;
  }
}
@keyframes tm-audio-enter{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:translateY(0)}
}
@media (max-width:1180px){
  .audio-dialog{
    box-sizing:border-box;
    display:flex;
    flex-direction:column;
    width:min(760px,calc(100vw - 24px));
    max-width:none;
    max-height:calc(100dvh - 24px);
    padding:clamp(18px,3vw,30px);
    border-radius:28px;
  }
  .audio-dialog > .audio-head{
    flex:0 0 auto;
    gap:16px;
    padding-bottom:18px;
  }
  .audio-dialog > .audio-head h2{
    font-size:clamp(1.45rem,3.4vw,2rem);
    line-height:1.12;
  }
  .audio-dialog > .audio-head p{
    max-width:60ch;
    font-size:clamp(.94rem,2vw,1.05rem);
  }
  .audio-dialog .policy-close{
    flex:0 0 48px;
    width:48px;
    height:48px;
    min-width:48px;
    min-height:48px;
  }
  .audio-dialog .audio-source{
    grid-template-columns:1fr;
    gap:12px;
  }
  .audio-dialog .audio-source-card{
    box-sizing:border-box;
    min-height:88px;
    padding:16px 18px;
    text-align:left;
  }
  .audio-dialog .audio-source-icon{
    width:42px;
    height:42px;
  }
  .audio-dialog .audio-limit{
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
  }
  .audio-dialog .audio-recorder,
  .audio-dialog .audio-preview,
  .audio-dialog .audio-progress,
  .audio-dialog .audio-review{
    min-width:0;
  }
  .audio-dialog .audio-preview-title{
    align-items:flex-start;
    gap:12px;
  }
  .audio-dialog .audio-preview-title > div{
    min-width:0;
  }
  .audio-dialog [data-audio-name]{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .audio-dialog .button{
    min-height:54px;
    padding:14px 18px;
    border-radius:16px;
    font-size:1rem;
  }
  .audio-dialog .audio-transcribe,
  .audio-dialog .audio-confirm-button{
    width:100%;
  }
  .audio-dialog .audio-review{
    flex:1 1 auto;
    overflow-y:auto;
    padding:2px 2px max(4px,env(safe-area-inset-bottom));
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
    -webkit-overflow-scrolling:touch;
  }
  .audio-dialog .audio-review-head{
    align-items:flex-start;
    padding-right:56px;
  }
  .audio-dialog .audio-review textarea{
    min-height:clamp(190px,31dvh,340px);
    padding:16px;
    border-radius:16px;
    font-size:16px;
    line-height:1.5;
  }
  .audio-dialog .audio-confirm{
    align-items:flex-start;
    min-height:48px;
    padding:14px;
    border-radius:16px;
  }
  .audio-dialog .audio-confirm input{
    flex:0 0 22px;
    width:22px;
    height:22px;
    margin-top:1px;
  }
  .audio-dialog .audio-confirm-button{
    position:sticky;
    bottom:0;
    z-index:2;
    margin-top:14px;
    box-shadow:0 -10px 24px rgba(0,0,0,.08);
  }
  .audio-dialog .audio-status{
    flex:0 0 auto;
    margin-bottom:0;
  }
  @supports selector(.audio-dialog:has(.audio-preview:not(.is-hidden))){
    .audio-dialog:has(.audio-recorder:not(.is-hidden)) > .audio-source,
    .audio-dialog:has(.audio-recorder:not(.is-hidden)) > .audio-limit{
      display:none!important;
    }
    .audio-dialog:has(.audio-preview:not(.is-hidden)):not(:has(.audio-progress:not(.is-hidden))):not(:has(.audio-review:not(.is-hidden))) > .audio-source,
    .audio-dialog:has(.audio-preview:not(.is-hidden)):not(:has(.audio-progress:not(.is-hidden))):not(:has(.audio-review:not(.is-hidden))) > .audio-limit,
    .audio-dialog:has(.audio-preview:not(.is-hidden)):not(:has(.audio-progress:not(.is-hidden))):not(:has(.audio-review:not(.is-hidden))) > .audio-recorder{
      display:none!important;
    }
  }
}
@media (max-width:820px){
  .audio-dialog{
    width:100vw;
    height:100dvh;
    max-height:none;
    padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));
    border-radius:0;
  }
  .audio-dialog > .audio-head{
    position:sticky;
    top:0;
    z-index:2;
    margin:-4px -2px 0;
    padding:4px 2px 16px;
  }
  .audio-dialog .audio-source-card{
    min-height:92px;
    border-radius:20px;
  }
  .audio-dialog .audio-preview-title{
    flex-direction:column;
  }
  .audio-dialog .audio-preview-title .text-button{
    min-height:44px;
    margin-left:0;
  }
  .audio-dialog .audio-recorder{
    align-items:stretch;
    flex-direction:column;
  }
  .audio-dialog .audio-recorder .button{
    width:100%;
  }
  .audio-dialog .audio-progress{
    min-height:180px;
    justify-content:center;
  }
  .audio-dialog .audio-review-head{
    flex-direction:column;
    gap:12px;
  }
  .audio-dialog .audio-language{
    align-self:flex-start;
  }
  .audio-dialog .audio-status{
    font-size:.9rem;
    line-height:1.35;
  }
  @supports selector(.audio-dialog:has(.audio-review:not(.is-hidden))){
    .audio-dialog:has(.audio-review:not(.is-hidden)) > .audio-head{
      position:static;
      margin:0;
      padding:0;
    }
    .audio-dialog:has(.audio-review:not(.is-hidden)) > .audio-head .policy-close{
      top:max(14px,env(safe-area-inset-top));
      right:14px;
    }
  }
}
@media (prefers-reduced-motion:reduce){
  .audio-dialog:has(.audio-review:not(.is-hidden)) > .audio-review{
    animation:none;
  }
}

/* TM_AUDIO_MOBILE_CENTER_BEGIN */
@media (max-width:820px){
  .audio-modal[open]{width:min(94vw,680px)!important;max-width:680px!important;height:auto!important;max-height:min(88dvh,760px)!important;margin:auto!important;border-radius:22px!important;overflow:hidden!important}
  .audio-modal[open] .audio-dialog{box-sizing:border-box;width:100%!important;height:auto!important;max-height:min(88dvh,760px)!important;padding:16px!important;border-radius:22px!important;overflow-y:auto!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .audio-modal[open] .audio-head{position:relative!important;top:auto!important;margin:0!important;padding:0 0 14px!important;background:#fff}
  .audio-modal[open] .audio-source{grid-template-columns:1fr}
  .audio-modal[open] .audio-review textarea{min-height:220px;max-height:38dvh}
}
/* TM_AUDIO_MOBILE_CENTER_END */
