/* BALELE Phase 8 Step 9D Messages UI based on user provided HTML design. */

  *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
  :root{
    --purple:#6C5CE7;
    --purple-dark:#5A4BD1;
    --purple-light:#A29BFE;
    --purple-pale:#EDE9FE;
    --purple-bg:#F5F3FF;
    --orange:#FF8C42;
    --orange-light:#FFB07A;
    --orange-pale:#FFF3EB;
    --green:#00B894;
    --green-pale:#E6FBF5;
    --red:#FF6B6B;
    --red-pale:#FFE8E8;
    --yellow:#FFD43B;
    --black:#1A1A2E;
    --dark:#2D2D44;
    --gray-800:#4A4A5A;
    --gray-600:#6B6B80;
    --gray-400:#9898A8;
    --gray-200:#D1D1DA;
    --gray-100:#ECECF0;
    --gray-50:#F7F7FA;
    --white:#FFFFFF;
    --radius-xs:6px;
    --radius-sm:10px;
    --radius-md:14px;
    --radius-lg:18px;
    --radius-xl:24px;
    --shadow-sm:0 1px 3px rgba(0,0,0,0.06);
    --shadow-md:0 4px 12px rgba(0,0,0,0.08);
    --shadow-lg:0 8px 24px rgba(0,0,0,0.10);
    --font:'Nunito',sans-serif;
  }
  body{font-family:var(--font);background:var(--gray-50);color:var(--black);min-height:100vh;-webkit-font-smoothing:antialiased}

  /* ── Site Nav ── */
  .site-nav{height:56px;background:var(--white);border-bottom:1px solid var(--gray-100);display:flex;align-items:center;padding:0 24px;gap:16px;position:sticky;top:0;z-index:50}
  .nav-logo{font-size:20px;font-weight:700;color:var(--purple);letter-spacing:1.5px;text-transform:uppercase}
  .nav-spacer{flex:1}
  .nav-icon-btn{width:36px;height:36px;border-radius:50%;background:var(--gray-50);display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;font-size:16px;transition:background .12s}
  .nav-icon-btn:hover{background:var(--gray-100)}

  /* ── Page Shell ── */
  .page-shell{max-width:1200px;margin:0 auto;padding:20px 24px 80px}

  /* ── Page Header ── */
  .page-head{margin-bottom:20px}
  .page-title{font-size:22px;font-weight:700;color:var(--black);display:flex;align-items:center;gap:10px}
  .page-title-icon{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--purple);color:var(--white);display:flex;align-items:center;justify-content:center;font-size:18px}
  .page-desc{font-size:13px;color:var(--gray-600);margin-top:4px}

  /* ── Filter Chips ── */
  .filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
  .chip{padding:6px 16px;border-radius:20px;border:1px solid var(--gray-200);background:var(--white);color:var(--gray-600);font-family:var(--font);font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s;user-select:none}
  .chip:hover{border-color:var(--purple-light);color:var(--purple)}
  .chip.active{background:var(--purple);border-color:var(--purple);color:var(--white)}
  .chip-count{display:inline-flex;align-items:center;justify-content:center;background:var(--red);color:var(--white);font-size:10px;font-weight:700;border-radius:10px;min-width:16px;height:16px;padding:0 5px;margin-left:5px}
  .chip.active .chip-count{background:rgba(255,255,255,0.35)}

  /* ── Two-column layout ── */
  .msg-layout{display:flex;gap:20px;min-height:calc(100vh - 200px)}

  /* ── Left Panel: Thread List ── */
  .thread-panel{width:340px;flex-shrink:0;background:var(--white);border-radius:var(--radius-md);border:1px solid var(--gray-100);display:flex;flex-direction:column;box-shadow:var(--shadow-sm);overflow:hidden}
  .thread-head{padding:14px 16px;border-bottom:1px solid var(--gray-100);display:flex;align-items:center;justify-content:space-between}
  .thread-head-title{font-size:11px;font-weight:700;color:var(--gray-400);text-transform:uppercase;letter-spacing:1.2px}
  .thread-count{font-size:11px;font-weight:600;color:var(--purple);background:var(--purple-pale);padding:2px 8px;border-radius:10px}
  .thread-list{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--gray-200) transparent}
  .t-card{padding:14px 16px;border-bottom:1px solid var(--gray-50);cursor:pointer;display:flex;gap:12px;align-items:flex-start;transition:background .1s}
  .t-card:hover{background:var(--gray-50)}
  .t-card.active{background:var(--purple-bg);border-left:3px solid var(--purple)}
  .t-card:last-child{border-bottom:none}
  .t-icon{width:42px;height:42px;border-radius:var(--radius-sm);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:19px}
  .t-icon.order{background:var(--purple-pale)}
  .t-icon.pin{background:var(--orange-pale)}
  .t-icon.general{background:var(--gray-100)}
  .t-body{flex:1;min-width:0}
  .t-top{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;margin-bottom:4px}
  .t-name{font-size:13px;font-weight:600;color:var(--black);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
  .t-time{font-size:11px;color:var(--gray-400);white-space:nowrap;flex-shrink:0}
  .t-badges{display:flex;align-items:center;gap:5px;margin-bottom:5px}
  .badge-type{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}
  .badge-type.order{background:var(--purple-pale);color:var(--purple)}
  .badge-type.pin{background:var(--orange-pale);color:var(--orange)}
  .badge-type.general{background:var(--gray-100);color:var(--gray-600)}
  .badge-status{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px}
  .badge-status.open{background:var(--green-pale);color:var(--green)}
  .badge-status.replied{background:var(--purple-bg);color:var(--purple)}
  .badge-status.closed{background:var(--gray-100);color:var(--gray-600)}
  .t-preview-row{display:flex;align-items:center;justify-content:space-between;gap:6px}
  .t-preview{font-size:12px;color:var(--gray-400);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;line-height:1.4}
  .t-unread{flex-shrink:0;min-width:18px;height:18px;background:var(--red);border-radius:9px;font-size:10px;font-weight:700;color:var(--white);display:flex;align-items:center;justify-content:center;padding:0 5px}

  /* ── Right Panel: Detail ── */
  .detail-panel{flex:1;min-width:0;background:var(--white);border-radius:var(--radius-md);border:1px solid var(--gray-100);display:flex;flex-direction:column;box-shadow:var(--shadow-sm);overflow:hidden}

  /* Conv header */
  .conv-head{padding:16px 20px;border-bottom:1px solid var(--gray-100);display:flex;align-items:center;gap:14px;background:var(--white)}
  .conv-head-body{flex:1;min-width:0}
  .conv-type{font-size:10px;font-weight:700;color:var(--purple);text-transform:uppercase;letter-spacing:1.2px;margin-bottom:2px}
  .conv-title{font-size:15px;font-weight:700;color:var(--black);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .conv-meta{display:flex;align-items:center;gap:8px;margin-top:3px}
  .conv-time{font-size:11px;color:var(--gray-400)}
  .conv-btn{padding:6px 14px;border-radius:var(--radius-sm);border:1px solid var(--purple);background:transparent;color:var(--purple);font-family:var(--font);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}
  .conv-btn:hover{background:var(--purple);color:var(--white)}

  /* Related card */
  .related{margin:14px 20px 0;padding:12px 16px;border-radius:var(--radius-sm);background:var(--gray-50);border:1px solid var(--gray-100);display:flex;gap:12px;align-items:center}
  .related-icon{width:50px;height:50px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
  .related-icon.order-icon{background:var(--purple-pale)}
  .related-icon.pin-icon{background:var(--orange-pale)}
  .related-icon.gen-icon{background:var(--gray-100)}
  .related-body{flex:1;min-width:0}
  .related-name{font-size:13px;font-weight:700;color:var(--black);margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .related-info{font-size:12px;color:var(--gray-600);margin-bottom:6px}
  .related-info span{font-weight:600}
  .related-info .hl-purple{color:var(--purple)}
  .related-info .hl-orange{color:var(--orange)}
  .related-info .hl-green{color:var(--green)}
  .related-btns{display:flex;gap:8px;flex-wrap:wrap}
  .r-btn{padding:5px 12px;border-radius:var(--radius-xs);border:1px solid var(--gray-200);background:var(--white);color:var(--gray-600);font-family:var(--font);font-size:11px;font-weight:600;cursor:pointer;transition:all .15s}
  .r-btn:hover{border-color:var(--purple);color:var(--purple)}
  .r-btn.primary{background:var(--purple);border-color:var(--purple);color:var(--white)}
  .r-btn.primary:hover{background:var(--purple-dark)}

  /* Messages */
  .msg-scroll{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin;scrollbar-color:var(--gray-200) transparent}
  .sys-note{text-align:center;font-size:11px;color:var(--gray-400);background:var(--gray-50);border-radius:20px;padding:5px 14px;align-self:center;max-width:80%;border:1px solid var(--gray-100)}
  .msg-row{display:flex;gap:8px;align-items:flex-end}
  .msg-row.me{flex-direction:row-reverse}
  .msg-av{width:30px;height:30px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
  .msg-av.balele{background:var(--purple);color:var(--white)}
  .msg-av.me{background:var(--gray-100);color:var(--gray-600)}
  .msg-group{display:flex;flex-direction:column;gap:2px;max-width:68%}
  .msg-group.me{align-items:flex-end}
  .msg-who{font-size:11px;color:var(--gray-400);font-weight:600;padding:0 4px}
  .msg-bubble{padding:10px 14px;border-radius:16px;font-size:13px;line-height:1.55;word-break:break-word}
  .msg-bubble.balele{background:var(--gray-50);color:var(--black);border:1px solid var(--gray-100);border-bottom-left-radius:4px}
  .msg-bubble.me{background:var(--purple);color:var(--white);border-bottom-right-radius:4px}
  .msg-bubble.me strong{color:#E0DBFF}
  .msg-ts{font-size:10px;color:var(--gray-400);padding:0 4px}

  /* Composer */
  .composer{border-top:1px solid var(--gray-100);padding:14px 20px;background:var(--white)}
  .comp-textarea{width:100%;min-height:72px;max-height:140px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-sm);color:var(--black);font-family:var(--font);font-size:13px;padding:10px 14px;resize:vertical;outline:none;transition:border-color .15s;line-height:1.5}
  .comp-textarea::placeholder{color:var(--gray-400)}
  .comp-textarea:focus{border-color:var(--purple)}
  .comp-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px;gap:12px}
  .comp-hint{font-size:11px;color:var(--gray-400);line-height:1.4}
  .comp-send{padding:8px 22px;border-radius:var(--radius-sm);border:none;background:var(--purple);color:var(--white);font-family:var(--font);font-size:13px;font-weight:700;cursor:pointer;transition:background .15s;white-space:nowrap;flex-shrink:0}
  .comp-send:hover{background:var(--purple-dark)}

  /* ── Empty State ── */
  .empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px;text-align:center}
  .empty-icon{width:56px;height:56px;border-radius:50%;background:var(--gray-100);display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--gray-400);margin-bottom:8px}
  .empty-title{font-size:15px;font-weight:700;color:var(--dark)}
  .empty-body{font-size:13px;color:var(--gray-400);max-width:260px;line-height:1.55}
  .empty-btn{margin-top:10px;padding:8px 22px;border-radius:var(--radius-sm);border:1px solid var(--purple);background:transparent;color:var(--purple);font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}
  .empty-btn:hover{background:var(--purple);color:var(--white)}

  /* ── Mobile Bottom Tab ── */
  .mob-tabs{display:none;position:fixed;bottom:0;left:0;right:0;height:60px;background:var(--white);border-top:1px solid var(--gray-100);align-items:center;justify-content:space-around;z-index:100;padding-bottom:env(safe-area-inset-bottom)}
  .mob-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;color:var(--gray-400);font-size:10px;font-weight:600;transition:color .12s;padding:6px 0;user-select:none}
  .mob-tab.active{color:var(--purple)}
  .mob-tab svg{width:22px;height:22px}
  .mob-tab-dot{width:16px;height:16px;background:var(--red);border-radius:50%;color:var(--white);font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;position:absolute;margin-top:-22px;margin-left:10px}

  /* ── Mobile Conv Screen ── */
  .mob-conv{display:none;flex-direction:column;position:fixed;inset:0;background:var(--gray-50);z-index:200}
  .mob-conv-bar{height:56px;background:var(--white);border-bottom:1px solid var(--gray-100);display:flex;align-items:center;padding:0 14px;gap:10px;flex-shrink:0}
  .mob-back{width:34px;height:34px;border-radius:50%;background:var(--gray-50);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;font-size:18px;color:var(--dark)}
  .mob-back:hover{background:var(--gray-100)}
  .mob-bar-info{flex:1;min-width:0}
  .mob-bar-title{font-size:14px;font-weight:700;color:var(--black);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mob-bar-sub{font-size:11px;color:var(--gray-400);display:flex;align-items:center;gap:5px}
  .mob-related{margin:12px 14px 0;padding:10px 14px;border-radius:var(--radius-sm);background:var(--white);border:1px solid var(--gray-100);display:flex;gap:10px;align-items:center;flex-shrink:0;box-shadow:var(--shadow-sm)}
  .mob-rel-icon{width:38px;height:38px;border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}
  .mob-rel-icon.order-icon{background:var(--purple-pale)}
  .mob-rel-icon.pin-icon{background:var(--orange-pale)}
  .mob-rel-body{flex:1;min-width:0}
  .mob-rel-name{font-size:12px;font-weight:700;color:var(--black);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mob-rel-status{font-size:11px;color:var(--gray-400);margin-top:1px}
  .mob-rel-status span{font-weight:600}
  .mob-rel-btn{padding:5px 12px;border-radius:var(--radius-xs);border:1px solid var(--purple);background:transparent;color:var(--purple);font-family:var(--font);font-size:11px;font-weight:600;cursor:pointer;flex-shrink:0;white-space:nowrap}
  .mob-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
  .mob-reply{flex-shrink:0;border-top:1px solid var(--gray-100);padding:10px 14px;background:var(--white);display:flex;gap:10px;align-items:flex-end;padding-bottom:calc(10px + env(safe-area-inset-bottom))}
  .mob-input{flex:1;min-height:38px;max-height:100px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:20px;color:var(--black);font-family:var(--font);font-size:13px;padding:9px 16px;resize:none;outline:none;transition:border-color .15s;line-height:1.4}
  .mob-input::placeholder{color:var(--gray-400)}
  .mob-input:focus{border-color:var(--purple)}
  .mob-send{width:38px;height:38px;border-radius:50%;border:none;background:var(--purple);color:var(--white);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-weight:700;transition:background .15s}
  .mob-send:hover{background:var(--purple-dark)}

  /* ── Responsive ── */
  @media(max-width:768px){
    .site-nav{padding:0 16px}
    .page-shell{padding:14px 14px 72px}
    .page-title{font-size:18px}
    .page-title-icon{width:30px;height:30px;font-size:15px}
    .filters{gap:6px}
    .chip{padding:5px 12px;font-size:11.5px}
    .msg-layout{flex-direction:column;gap:0;min-height:auto}
    .thread-panel{width:100%;border-radius:var(--radius-md);box-shadow:none}
    .detail-panel{display:none}
    .mob-tabs{display:flex}
  }

/* WordPress integration adjustments */
.balele-messages-v2-shell .site-nav,.balele-messages-v2-shell .mob-tabs{display:none!important}
.balele-messages-v2-shell .page-shell{padding-top:20px}
.balele-messages-v2-shell .related-icon img,.balele-messages-v2-shell .mob-rel-icon img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.balele-messages-v2-shell .detail-panel{min-height:650px}
.balele-messages-v2-shell .msg-scroll{max-height:calc(100vh - 390px)}
.balele-messages-v2-shell .thread-panel{min-height:650px}
.balele-messages-v2-shell .t-card.is-hidden{display:none}
@media(max-width:768px){.balele-messages-v2-shell .detail-panel{display:none}.balele-messages-v2-shell .thread-panel{min-height:auto}.balele-messages-v2-shell .page-shell{padding-bottom:84px}.balele-messages-v2-shell .mob-conv{display:none}.balele-messages-v2-shell .mob-conv.is-open{display:flex}}

/* BALELE Phase 8 Step 9D1: Messages dual-layout stabilization.
   Desktop and mobile share the same API/data, but the layout rules are separated. */
body.balele-messages-page-active{
  overflow-y:auto !important;
  background:#F7F7FA !important;
}
.balele-messages-v2-shell{
  min-height:calc(100vh - 56px);
  background:#F7F7FA;
  color:var(--black);
  overflow:visible;
}
.balele-messages-v2-shell .page-shell{
  width:100%;
  max-width:1360px;
  margin-left:auto;
  margin-right:auto;
}
.balele-messages-v2-shell .t-icon,
.balele-messages-v2-shell .related-icon,
.balele-messages-v2-shell .mob-rel-icon{
  overflow:hidden;
}
.balele-messages-v2-shell .t-icon img,
.balele-messages-v2-shell .related-icon img,
.balele-messages-v2-shell .mob-rel-icon img{
  display:block;
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:cover;
  border-radius:inherit;
}
.balele-messages-v2-shell .msg-bubble{
  white-space:pre-wrap;
}

@media (min-width:769px){
  body.balele-messages-page-active{
    min-height:100vh;
  }
  .balele-messages-v2-shell .page-shell{
    padding:28px 32px 72px;
  }
  .balele-messages-v2-shell .msg-layout{
    display:flex;
    align-items:stretch;
    gap:22px;
    min-height:0;
  }
  .balele-messages-v2-shell .thread-panel{
    width:372px;
    min-height:680px;
    max-height:none;
    overflow:hidden;
  }
  .balele-messages-v2-shell .thread-list{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  .balele-messages-v2-shell .detail-panel{
    min-height:680px;
    max-height:none;
    overflow:hidden;
  }
  .balele-messages-v2-shell .msg-scroll{
    max-height:none;
    min-height:360px;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  .balele-messages-v2-shell .t-card{
    min-height:78px;
  }
  .balele-messages-v2-shell .t-icon{
    width:48px;
    height:48px;
  }
}

@media (max-width:768px){
  body.balele-messages-page-active{
    height:auto !important;
    min-height:100dvh;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch;
  }
  .balele-messages-v2-shell{
    min-height:100dvh;
    overflow:visible;
  }
  .balele-messages-v2-shell .page-shell{
    padding:18px 14px 110px;
    max-width:none;
  }
  .balele-messages-v2-shell .filters{
    display:flex;
    flex-wrap:nowrap;
    overflow-x:auto;
    overflow-y:hidden;
    gap:8px;
    padding-bottom:8px;
    margin-bottom:14px;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .balele-messages-v2-shell .filters::-webkit-scrollbar{display:none}
  .balele-messages-v2-shell .chip{
    flex:0 0 auto;
    white-space:nowrap;
  }
  .balele-messages-v2-shell .msg-layout{
    display:block;
    min-height:0;
  }
  .balele-messages-v2-shell .thread-panel{
    width:100%;
    min-height:0;
    border-radius:18px;
    overflow:visible;
  }
  .balele-messages-v2-shell .thread-list{
    display:block;
    overflow:visible;
  }
  .balele-messages-v2-shell .t-card{
    min-height:86px;
    align-items:flex-start;
  }
  .balele-messages-v2-shell .t-icon{
    width:56px;
    height:56px;
  }
  .balele-messages-v2-shell .t-name{
    white-space:normal;
    line-height:1.25;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
  }
  .balele-messages-v2-shell .t-time{
    max-width:120px;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .balele-messages-v2-shell .mob-conv.is-open{
    display:flex;
    height:100dvh;
    overflow:hidden;
  }
  .balele-messages-v2-shell .mob-msgs{
    min-height:0;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  .balele-messages-v2-shell .mob-related img,
  .balele-messages-v2-shell .mob-msgs img{
    max-width:100%;
    height:auto;
  }
}

.t-icon.offer,.related-icon.offer-icon,.mob-rel-icon.offer-icon{background:linear-gradient(135deg,#ede9fe,#fff7ed);color:#7c3aed;border:1px solid rgba(124,58,237,.18)}


/* =========================================================
   BALELE v3 Phase 8 Step 10B3A
   Mobile Messages scroll/input fix + clickable payment links
   Scope: Messages page UI only. Does not change Orders, Offers,
   PayPal, Pin Wall, Market Wall, REST, or database logic.
   ========================================================= */
.balele-messages-v2-shell .msg-link{
  color:var(--purple);
  text-decoration:underline;
  text-underline-offset:2px;
  word-break:break-all;
}
.balele-messages-v2-shell .msg-bubble.me .msg-link{
  color:#fff;
  font-weight:800;
}
.balele-messages-v2-shell .msg-bubble.balele .msg-link{
  color:var(--purple-dark);
  font-weight:800;
}

@media (max-width:768px){
  body.balele-ui-v56.balele-message-conv-open{
    overflow:hidden !important;
    height:100dvh !important;
    padding-bottom:0 !important;
  }
  body.balele-ui-v56.balele-message-conv-open .balele-mobile-tabbar,
  body.balele-ui-v56.balele-message-conv-open .mob-tabs{
    display:none !important;
    opacity:0 !important;
    pointer-events:none !important;
  }
  .balele-messages-v2-shell .mob-conv.is-open{
    position:fixed !important;
    inset:0 !important;
    display:flex !important;
    flex-direction:column !important;
    height:100dvh !important;
    max-height:100dvh !important;
    min-height:0 !important;
    overflow:hidden !important;
    z-index:calc(var(--ba-z-modal, 1000) + 500) !important;
    background:var(--gray-50) !important;
  }
  .balele-messages-v2-shell .mob-conv-bar,
  .balele-messages-v2-shell .mob-related,
  .balele-messages-v2-shell .mob-reply{
    flex:0 0 auto !important;
  }
  .balele-messages-v2-shell .mob-msgs{
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch !important;
    overscroll-behavior:contain;
    padding-bottom:18px !important;
  }
  .balele-messages-v2-shell .mob-reply{
    position:relative !important;
    z-index:2 !important;
    padding:10px 14px calc(14px + env(safe-area-inset-bottom)) !important;
    box-shadow:0 -10px 24px rgba(31,41,55,.08);
  }
  .balele-messages-v2-shell .mob-input{
    max-height:92px !important;
  }
}

/* =========================================================
   BALELE v3 Phase 8 Step 10D1C
   Messages height containment + independent scrollbars
   Scope: Messages page CSS only. Prevents the desktop chat area
   from growing endlessly with the conversation list and keeps the
   mobile list/conversation scrollable inside the viewport.
   ========================================================= */
@media (min-width:769px){
  body.balele-messages-page-active{
    overflow-y:auto !important;
  }
  .balele-messages-v2-shell .msg-layout{
    height:clamp(640px, calc(100vh - 172px), 820px) !important;
    min-height:0 !important;
    max-height:calc(100vh - 132px) !important;
    align-items:stretch !important;
  }
  .balele-messages-v2-shell .thread-panel,
  .balele-messages-v2-shell .detail-panel{
    height:100% !important;
    min-height:0 !important;
    max-height:100% !important;
    overflow:hidden !important;
  }
  .balele-messages-v2-shell .thread-list{
    flex:1 1 auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow-y:auto !important;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    scrollbar-color:rgba(108,92,231,.28) transparent;
  }
  .balele-messages-v2-shell .thread-list::-webkit-scrollbar,
  .balele-messages-v2-shell .msg-scroll::-webkit-scrollbar{
    width:8px;
  }
  .balele-messages-v2-shell .thread-list::-webkit-scrollbar-thumb,
  .balele-messages-v2-shell .msg-scroll::-webkit-scrollbar-thumb{
    background:rgba(108,92,231,.24);
    border-radius:999px;
  }
  .balele-messages-v2-shell .thread-list::-webkit-scrollbar-track,
  .balele-messages-v2-shell .msg-scroll::-webkit-scrollbar-track{
    background:transparent;
  }
  .balele-messages-v2-shell .conv-head,
  .balele-messages-v2-shell .related,
  .balele-messages-v2-shell .composer{
    flex:0 0 auto !important;
  }
  .balele-messages-v2-shell .msg-scroll{
    flex:1 1 auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow-y:auto !important;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    scrollbar-color:rgba(108,92,231,.28) transparent;
  }
}

@media (max-width:768px){
  body.balele-messages-page-active:not(.balele-message-conv-open){
    overflow:hidden !important;
    height:100dvh !important;
  }
  .balele-messages-v2-shell:not(:has(.mob-conv.is-open)){
    height:100dvh !important;
    max-height:100dvh !important;
    overflow:hidden !important;
  }
  .balele-messages-v2-shell .page-shell{
    display:flex !important;
    flex-direction:column !important;
    height:100dvh !important;
    max-height:100dvh !important;
    min-height:0 !important;
    overflow:hidden !important;
    padding-bottom:calc(90px + env(safe-area-inset-bottom)) !important;
  }
  .balele-messages-v2-shell .page-head,
  .balele-messages-v2-shell .filters{
    flex:0 0 auto !important;
  }
  .balele-messages-v2-shell .msg-layout{
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow:hidden !important;
  }
  .balele-messages-v2-shell .thread-panel{
    display:flex !important;
    flex-direction:column !important;
    max-height:100% !important;
    min-height:0 !important;
    overflow:hidden !important;
  }
  .balele-messages-v2-shell .thread-list{
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch !important;
    overscroll-behavior:contain;
    padding-bottom:8px;
  }
}

/* =========================================================
   BALELE v3 Mobile UI Rebuild Step M7
   Messages mobile UI rebuild based on user's Message.jpg.
   Mobile only. PC Messages layout and business APIs remain unchanged.
   ========================================================= */
.balele-mobile-message-head{display:none}
@media (max-width:768px){
  html,body{max-width:100%;overflow-x:hidden}
  body.balele-mobile-ui-v2.balele-page-messages{
    background:#fff!important;
    color:#151922;
    overflow:hidden!important;
    height:100dvh!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages:not(.balele-message-conv-open) .site-header,
  body.balele-mobile-ui-v2.balele-page-messages:not(.balele-message-conv-open) header.site-header,
  body.balele-mobile-ui-v2.balele-page-messages:not(.balele-message-conv-open) .balele-header,
  body.balele-mobile-ui-v2.balele-page-messages:not(.balele-message-conv-open) .page-title,
  body.balele-mobile-ui-v2.balele-page-messages:not(.balele-message-conv-open) .page-desc,
  body.balele-mobile-ui-v2.balele-page-messages:not(.balele-message-conv-open) .filters,
  body.balele-mobile-ui-v2.balele-page-messages:not(.balele-message-conv-open) .thread-head{
    display:none!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell{
    width:100vw!important;
    max-width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    min-height:100dvh!important;
    overflow:hidden!important;
    background:#fff!important;
    font-family:inherit!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .page-shell{
    width:100%!important;
    max-width:100%!important;
    height:100dvh!important;
    max-height:100dvh!important;
    padding:30px 0 calc(82px + env(safe-area-inset-bottom))!important;
    margin:0!important;
    background:#fff!important;
    overflow:hidden!important;
    display:flex!important;
    flex-direction:column!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .page-head{
    flex:0 0 auto!important;
    margin:0!important;
    padding:0 18px 10px!important;
    background:#fff!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-mobile-message-head{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:14px!important;
    width:100%!important;
    height:54px!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-mobile-message-title{
    margin:0!important;
    color:#151922!important;
    font-size:29px!important;
    line-height:1!important;
    font-weight:500!important;
    letter-spacing:-.7px!important;
    white-space:nowrap!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-mobile-message-count{
    display:inline-block!important;
    margin-left:4px!important;
    color:#151922!important;
    font-size:16px!important;
    line-height:1!important;
    font-weight:500!important;
    vertical-align:baseline!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-mobile-mark-read{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:5px!important;
    border:0!important;
    height:26px!important;
    padding:0 9px!important;
    border-radius:3px!important;
    background:#f3f4f6!important;
    color:#777d86!important;
    font-size:12px!important;
    font-weight:500!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-mobile-mark-read:disabled{
    opacity:.55!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-mobile-mark-icon{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:16px!important;
    height:16px!important;
    color:#7d838c!important;
    font-size:14px!important;
    line-height:1!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .msg-layout{
    flex:1 1 auto!important;
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    overflow:hidden!important;
    display:block!important;
    background:#fff!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .thread-panel{
    width:100%!important;
    height:100%!important;
    max-height:100%!important;
    min-height:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    background:#fff!important;
    overflow:hidden!important;
    display:flex!important;
    flex-direction:column!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .thread-list{
    flex:1 1 auto!important;
    min-height:0!important;
    height:auto!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    padding:0 0 8px!important;
    background:#fff!important;
    overscroll-behavior:contain!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .t-card{
    position:relative!important;
    width:100%!important;
    min-height:118px!important;
    padding:15px 14px 15px 18px!important;
    margin:0!important;
    border:0!important;
    border-bottom:1px solid #f0f1f3!important;
    border-radius:0!important;
    background:#fff!important;
    box-shadow:none!important;
    display:flex!important;
    gap:14px!important;
    align-items:flex-start!important;
    overflow:hidden!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .t-card.active,
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .t-card:hover{
    background:#fff!important;
    border-left:0!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .t-icon{
    width:68px!important;
    height:68px!important;
    flex:0 0 68px!important;
    border-radius:12px!important;
    margin-top:3px!important;
    font-size:23px!important;
    background:#f2efff!important;
    color:#8067d8!important;
    border:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:hidden!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .t-icon.order{background:#f2efff!important}
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .t-icon.offer{background:linear-gradient(135deg,#f5f0ff,#fff9f2)!important;color:#7c59d7!important;border:1px solid #eadfff!important}
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .t-icon.pin{background:#fff2ea!important}
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .t-icon img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    border-radius:12px!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .t-body{
    flex:1 1 auto!important;
    min-width:0!important;
    padding-right:0!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .t-top{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:start!important;
    gap:10px!important;
    margin:0 0 8px!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .t-name{
    display:-webkit-box!important;
    -webkit-line-clamp:2!important;
    -webkit-box-orient:vertical!important;
    white-space:normal!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    color:#151922!important;
    font-size:18px!important;
    line-height:1.18!important;
    font-weight:800!important;
    letter-spacing:.3px!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .t-time{
    max-width:150px!important;
    color:#8c929b!important;
    font-size:14px!important;
    line-height:1.2!important;
    font-weight:400!important;
    text-align:right!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .t-badges{
    display:flex!important;
    align-items:center!important;
    gap:8px!important;
    margin:0 0 9px!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .badge-type,
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .badge-status{
    height:22px!important;
    padding:0 12px!important;
    border-radius:4px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:13px!important;
    line-height:1!important;
    font-weight:700!important;
    letter-spacing:1.7px!important;
    text-transform:uppercase!important;
    white-space:nowrap!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .badge-status{
    letter-spacing:.2px!important;
    text-transform:none!important;
    font-weight:600!important;
    color:#7d67d7!important;
    background:#f6f2ff!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .badge-type.order{background:#f2efff!important;color:#7561d7!important}
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .badge-type.offer{background:transparent!important;color:#151922!important;padding-left:0!important;letter-spacing:2.4px!important}
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .badge-type.pin{background:#fff2ea!important;color:#f04b12!important}
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .t-preview-row{
    display:flex!important;
    align-items:center!important;
    gap:8px!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .t-preview{
    color:#9a9fa8!important;
    font-size:16px!important;
    line-height:1.25!important;
    font-weight:400!important;
    letter-spacing:1px!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    min-width:0!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .t-unread{
    min-width:18px!important;
    height:18px!important;
    padding:0 5px!important;
    border-radius:9px!important;
    background:#ff4b00!important;
    color:#fff!important;
    font-size:10px!important;
    font-weight:800!important;
    flex:0 0 auto!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .empty{
    padding:42px 22px!important;
    min-height:280px!important;
    background:#fff!important;
    border:0!important;
    border-radius:0!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages.balele-message-conv-open{
    height:100dvh!important;
    overflow:hidden!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .mob-conv.is-open{
    background:#fff!important;
    color:#151922!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .mob-conv-bar{
    height:64px!important;
    background:#fff!important;
    border-bottom:1px solid #f0f1f3!important;
    padding:10px 16px!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .mob-back{
    width:34px!important;
    height:34px!important;
    border-radius:0!important;
    background:#fff!important;
    color:#151922!important;
    font-size:28px!important;
    font-weight:300!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .mob-bar-title{
    font-size:16px!important;
    font-weight:800!important;
    color:#151922!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .mob-bar-sub{
    font-size:11px!important;
    color:#9a9fa8!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .mob-related{
    margin:10px 14px 0!important;
    border-radius:12px!important;
    background:#f8f9fb!important;
    border:0!important;
    box-shadow:none!important;
    padding:10px!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .mob-msgs{
    background:#fff!important;
    padding:14px 14px 16px!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .msg-bubble{
    font-size:13px!important;
    line-height:1.5!important;
    border-radius:14px!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .msg-bubble.me{
    background:#ff4b00!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .mob-reply{
    background:#fff!important;
    border-top:1px solid #f0f1f3!important;
  }
  body.balele-mobile-ui-v2.balele-page-messages .balele-messages-v2-shell .mob-send{
    background:#ff4b00!important;
  }
}
