/* Full text in every table cell -- no "Openserve 50/25 Premium Uncapped Fre..."

   Kabous, 2026-09-30: "make sure that name and stuff does [not] cut itself off
   rather have the full name, that's why I built the column resize ... do this on
   all pages". About 35 rules across ic-theme, splynx-ui and ic-v2 clip cell text
   to one line with an ellipsis (.spx-clip, .v2-clip, .v2-primary, .spx-sub,
   .spx-clamp-text, the internet and cancellations tables...). Rather than edit
   each and miss one, this file loads last on every page and lets cell text wrap.
   Rows get taller where a name is long; the column resize handle
   (column-resize.js) is how to make a column wider instead.

   break-word, not anywhere: in an auto-sized table "anywhere" lowers every
   column's minimum width and names end up wrapping letter by letter.

   Kept on one line on purpose: status pills, labels, badges and buttons. */
body.spx-app .content-wrapper table > tbody > tr > td,
body.spx-app .spx-record-modal-body table > tbody > tr > td {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  clip-path: none !important;
  max-width: none !important;
  overflow-wrap: break-word;
}

body.spx-app .content-wrapper table > tbody > tr > td *:not(.spx-pill):not(.label):not(.badge):not(.btn):not(.fa):not(i):not(svg):not(img):not(input):not(select):not(button):not(.v2-kind-chip),
body.spx-app .spx-record-modal-body table > tbody > tr > td *:not(.spx-pill):not(.label):not(.badge):not(.btn):not(.fa):not(i):not(svg):not(img):not(input):not(select):not(button):not(.v2-kind-chip) {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  max-width: none !important;
  overflow-wrap: break-word;
}

/* Tickets list. A fixed layout plus break-word turned a crushed Age cell
   into "2" / "o" and a customer name into one letter per line. These stay
   whole words. The pane scrolls (crm_tickets/index) rather than shrinking
   the column until a word no longer fits. */
body.spx-app .content-wrapper .spx-tickets-table > tbody > tr > td.spx-time,
body.spx-app .content-wrapper .spx-tickets-table > tbody > tr > td.spx-time * {
  white-space: nowrap !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}
body.spx-app .content-wrapper .spx-tickets-table > tbody > tr > td.spx-customer-cell {
  overflow: hidden !important;
}
body.spx-app .content-wrapper .spx-tickets-table > tbody > tr > td.spx-customer-cell,
body.spx-app .content-wrapper .spx-tickets-table > tbody > tr > td.spx-customer-cell * {
  overflow-wrap: normal !important;
  word-break: normal !important;
  max-width: 100% !important;
}
body.spx-app .content-wrapper .spx-tickets-table .spx-customer-name,
body.spx-app .content-wrapper .spx-tickets-table .spx-customer-name a {
  white-space: normal !important;
}
body.spx-app .content-wrapper .spx-tickets-table > thead > tr > th,
body.spx-app .content-wrapper .spx-tickets-table > thead > tr > th > a {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* A date is one token. The wrap rule above split "2026-08-11 10:00" onto two
   lines on renewals, Plesk and bulk SMS. table-hscroll.js marks the cells. */
body.spx-app .content-wrapper table > tbody > tr > td.spx-nowrap,
body.spx-app .content-wrapper table > tbody > tr > td.spx-nowrap * {
  white-space: nowrap !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

/* Left exactly as they were: cells that are not list text. */
body.spx-app .content-wrapper .spx-msg-body table td,
body.spx-app .content-wrapper .spx-msg-body table td * {
  white-space: revert !important;
  overflow-wrap: revert;
}
