/* LegisConnect mobile safety layer v1.1: no print/document export changes. */
@media screen and (max-width: 900px) {
  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  body { max-width: 100%; }
  *, *::before, *::after { box-sizing: border-box; }
  :is(.content,.panel,.card,.dashboard-card,.page-content,.main-content,.lc-main,main,section,article) { min-width: 0; }
  :is(h1,h2,h3,h4,p,li,td,th,.panel,.card,.header-title,.page-title) { overflow-wrap: break-word; }
  :is(img,video,canvas,svg) { max-width: 100%; }
  :is(iframe,embed,object) { max-width: 100%; }
  :is(.grid,.cards,.dashboard-grid,.stats-grid,.form-grid,.two-col,.three-col) > * { min-width: 0; }
  :is(.table-wrap,.table-responsive,.table-container,.responsive-table) { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  :is(input,select,textarea) { min-width: 0; max-width: 100%; }
  :is(.modal,.modal-content,[role="dialog"]) { max-width: calc(100vw - 24px); }
  .official-sheet { max-width: 100%; }
}
@media screen and (max-width: 600px) {
  :is(.content,.page-content,.main-content) { min-width: 0; }
  :is(.panel,.card) { max-width: 100%; }
  :is(.panel h1,.panel h2,.panel h3,.card h1,.card h2,.card h3) { line-height: 1.3; }
  #lc-chatbot { right: 10px!important; bottom: 12px!important; width: 52px!important; height: 52px!important; }
  #lc-chatbot .lc-chat-launch { width: 52px!important; height: 52px!important; }
  #lc-chatbot .lc-chat-greeting { display: none!important; }
  #lc-chatbot .lc-chat-panel { width: min(350px,calc(100vw - 20px))!important; max-height: calc(100dvh - 95px)!important; bottom: 62px!important; }
  /* Only the referral summary becomes cards on narrow screens. Official print remains a table. */
  .official-sheet { padding: 14px!important; }
  .official-sheet .official-top { display: flex!important; flex-direction: column!important; align-items: center!important; gap: 10px!important; min-height: 0!important; font-size: clamp(12px,3.5vw,16px)!important; line-height: 1.35!important; }
  .official-sheet .official-top img { position: static!important; width: 72px!important; height: 72px!important; flex: none!important; }
  .official-sheet .official-top > div { min-width: 0!important; width: 100%!important; overflow-wrap: break-word!important; text-align: center!important; }
  .official-sheet h3 { font-size: clamp(14px,4vw,18px)!important; line-height: 1.4!important; }
  .official-sheet .official-table { display: block!important; width: 100%!important; table-layout: auto!important; border: 0!important; }
  .official-sheet .official-table thead { display: none!important; }
  .official-sheet .official-table tbody { display: block!important; }
  .official-sheet .official-table tr { display: block!important; margin: 0 0 14px!important; padding: 6px 10px!important; border: 1px solid #cbd5e1!important; border-radius: 12px!important; background: #fff!important; box-shadow: 0 2px 8px #102b2010!important; }
  .official-sheet .official-table td:not([colspan]) { display: grid!important; grid-template-columns: minmax(90px,34%) minmax(0,1fr)!important; gap: 8px!important; width: 100%!important; border: 0!important; border-bottom: 1px solid #e5ebe8!important; padding: 10px 3px!important; text-align: left!important; font-size: 13px!important; overflow-wrap: anywhere!important; }
  .official-sheet .official-table td:last-child { border-bottom: 0!important; }
  .official-sheet .official-table td:not([colspan])::before { content: attr(data-label); color: #166534; font-weight: 700; font-size: 11px; letter-spacing: .01em; }
  .official-sheet .official-table td[colspan] { display: block!important; width:100%!important; }
  .official-sheet .official-table td[colspan]::before { content: none; }
  .official-sheet .official-table td:not([colspan]) > * { min-width: 0; }
  .official-sheet .official-table td:not([colspan]) { word-break: normal!important; overflow-wrap: break-word!important; }
  .official-sheet .official-top strong, .official-sheet .official-top i { display: inline; }
}
@media print {
  /* Keep official printed reports intact; card conversion is screen-only. */
  #lc-chatbot { display: none!important; }
}

/* Mobile-only guards: preserve desktop and printed document formatting. */
@media screen and (max-width: 600px) {
  .official-sheet { width: 100%!important; min-width: 0!important; overflow: hidden; }
  .official-sheet .official-table tbody, .official-sheet .official-table tr { width:100%!important; }
  .official-sheet .official-table td:not([colspan]) { grid-template-columns: minmax(0, 36%) minmax(0, 1fr)!important; }
  .official-sheet .official-table td:not([colspan])::before { white-space: normal; overflow-wrap: break-word; }
}
