@media (max-width:640px){
  .ppt-dialog[open]{
    top:calc(var(--p2-ticket-vv-top,0px) + 4px);
    right:4px;
    bottom:auto;
    left:4px;
    width:auto;
    max-width:none;
    height:calc(var(--p2-ticket-vv-height,100dvh) - 8px);
    max-height:calc(var(--p2-ticket-vv-height,100dvh) - 8px);
    margin:0;
  }
  .ppt-dialog[open] .ppt-shell{height:100%;min-height:0}

  .ppt-dialog[open] .ppt-head{flex:0 0 auto;padding:8px 10px;gap:8px;min-height:0}
  .ppt-dialog[open] .ppt-head>div>span{display:none}
  .ppt-dialog[open] .ppt-head h2{margin:0;font-size:20px;line-height:1.05}
  .ppt-dialog[open] .ppt-close{font-size:24px;line-height:1;padding:2px 4px}

  .ppt-dialog[open] .ppt-body:has(.ppt-detail){overflow:hidden;padding:6px 10px 4px;box-sizing:border-box}
  .ppt-dialog[open] .ppt-detail{height:100%;min-height:0;display:flex;flex-direction:column;box-sizing:border-box}
  .ppt-dialog[open] .ppt-detail>.ppt-back,.ppt-dialog[open] .ppt-detail>.ppt-ticket-head{flex:0 0 auto}

  .ppt-dialog[open] .ppt-detail>.ppt-back{margin:0 0 3px;padding:2px 0;font-size:12px;line-height:1.2}
  .ppt-dialog[open] .ppt-ticket-head{align-items:center;gap:7px;padding:2px 0 5px}
  .ppt-dialog[open] .ppt-ticket-head>div{min-width:0;flex:1}
  .ppt-dialog[open] .ppt-ticket-head>div>span{display:block;font-size:9px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ppt-dialog[open] .ppt-ticket-head h3{display:none}
  .ppt-dialog[open] .ppt-ticket-head small{display:none}
  .ppt-dialog[open] .ppt-ticket-head>.ppt-status{min-height:21px;padding:2px 7px;font-size:9px;line-height:1;flex:0 0 auto}

  .ppt-dialog[open] .ppt-thread{flex:1 1 auto;min-height:72px;max-height:none;overflow-y:auto;overscroll-behavior:contain;padding:7px 2px 5px;gap:7px;align-content:start;grid-auto-rows:max-content}
  .ppt-dialog[open] .ppt-message{padding:8px 10px;border-radius:11px;align-self:start;height:auto;min-height:0}
  .ppt-dialog[open] .ppt-message header{margin-bottom:3px;gap:8px}
  .ppt-dialog[open] .ppt-message header b{font-size:11px}
  .ppt-dialog[open] .ppt-message header small{font-size:9px}
  .ppt-dialog[open] .ppt-message p{font-size:12px;line-height:1.35}

  .ppt-dialog[open] .ppt-reply{flex:0 0 auto;position:relative;margin:0 -2px;padding:6px 2px calc(3px + env(safe-area-inset-bottom));border-top:1px solid #dce4df;background:#f7f6f1;z-index:4}
  .ppt-dialog[open] .ppt-reply label{gap:3px}
  .ppt-dialog[open] .ppt-reply label>span{font-size:11px;line-height:1.2}
  .ppt-dialog[open] .ppt-reply textarea{min-height:50px;max-height:64px;resize:none;overflow-y:auto;padding:8px 9px;line-height:1.3}
  .ppt-dialog[open] .ppt-reply>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center;margin-top:4px}
  .ppt-dialog[open] .ppt-reply>div .ppt-primary{width:auto;min-width:118px;min-height:36px;padding:7px 11px}
  .ppt-dialog[open] .ppt-reply p{min-height:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

  /* One visual viewport, one layout: do not subtract keyboard height twice. */
  .ppt-dialog[open] .ppt-new input,.ppt-dialog[open] .ppt-new select,.ppt-dialog[open] .ppt-new textarea,.ppt-dialog[open] .ppt-reply textarea{font-size:16px}
  .ppt-dialog[open] .ppt-new textarea{height:112px;min-height:80px;max-height:180px;resize:none}
  .ppt-dialog[open] .ppt-body{overscroll-behavior:contain;scroll-padding:12px}
  .ppt-dialog[open].ppt-keyboard-open .ppt-head{padding-block:6px}
  .ppt-dialog[open].ppt-keyboard-open .ppt-body:has(.ppt-detail){padding:4px 10px}
  .ppt-dialog[open].ppt-keyboard-open .ppt-detail>.ppt-back{min-height:30px}
  .ppt-dialog[open].ppt-keyboard-open .ppt-ticket-head{display:none}
  .ppt-dialog[open].ppt-keyboard-open .ppt-thread{min-height:0;padding-top:4px}
  .ppt-dialog[open].ppt-keyboard-open .ppt-reply{position:relative;flex:0 1 auto;min-height:0;max-height:max(96px,calc(var(--p2-ticket-vv-height,100dvh) - 100px));overflow-y:auto;gap:4px;padding-bottom:4px;margin:0}
  .ppt-dialog[open].ppt-keyboard-open .ppt-reply textarea{height:60px;min-height:44px;max-height:72px}
  .ppt-dialog[open].ppt-keyboard-open .ppt-new .ppt-section-head{margin-bottom:8px}
  .ppt-dialog[open].ppt-keyboard-open .ppt-new form{gap:8px}
  .ppt-dialog[open].ppt-keyboard-open .ppt-new textarea{height:96px}
  .ppt-dialog[open].ppt-keyboard-open .ppt-reply>div{grid-template-columns:minmax(0,1fr) auto}
  .ppt-dialog[open].ppt-keyboard-open .ppt-reply .p2-ticket-file-chips{max-height:64px;overflow-y:auto}
}
@media (max-width:390px){
 .ppt-dialog[open] .ppt-head h2{font-size:18px}
 .ppt-dialog[open] .ppt-reply>div{grid-template-columns:minmax(0,1fr) auto}
 .ppt-dialog[open] .ppt-reply>div .ppt-primary{width:auto;min-width:108px}
}
