/* Shared tables: calm surfaces, clear data and contained mobile scrolling. */
.ph-page-content {
    --ph-table-row-hover: var(--ph-primary-soft);
    --ph-table-heading: var(--ph-surface-alt);
}
.ph-page-content :is(table.table, table.ph-data-table) {
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
    margin: 0;
    color: var(--ph-ink);
    font-size: 13px;
    text-align: start;
}
.ph-page-content :is(table.table, table.ph-data-table) > :is(thead, tbody, tfoot) > tr > :is(th, td) {
    padding: 17px 18px;
    border: 0;
    border-bottom: 1px solid var(--ph-line);
    background: var(--ph-surface);
    vertical-align: middle;
    line-height: 1.9;
    height: auto;
    font-size: 13px;
}
.ph-page-content :is(table.table, table.ph-data-table) > thead > tr > :is(th, td),
.ph-page-content :is(table.table, table.ph-data-table) > tbody > tr > th {
    padding-block: 14px;
    color: var(--ph-muted);
    background: var(--ph-table-heading);
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
    text-align: start;
}
.ph-page-content :is(table.table, table.ph-data-table) > tbody > tr {
    height: auto;
    background: transparent;
}
.ph-page-content :is(table.table, table.ph-data-table) > tbody > tr:last-child > :is(td, th) { border-bottom: 0; }
.ph-page-content :is(table.table, table.ph-data-table) > tbody > tr:nth-child(even) > td,
.ph-page-content :is(table.table, table.ph-data-table) > tbody > tr:nth-child(odd) > td { background: var(--ph-surface); }
.ph-page-content :is(table.table, table.ph-data-table) > tbody > tr:hover > td,
.ph-page-content :is(table.table, table.ph-data-table) > tbody > tr:focus-within > td { background: var(--ph-table-row-hover); }
.ph-page-content :is(table.table, table.ph-data-table) :is(td, th).text-center { text-align: center; }
.ph-page-content :is(table.table, table.ph-data-table) small { color: var(--ph-muted); font-size: 11px; }
.ph-page-content :is(table.table, table.ph-data-table) td { overflow-wrap: anywhere; }
.ph-page-content :is(.ph-table-scroll, .table-responsive) {
    border: 1px solid var(--ph-line);
    border-radius: 14px;
    background: var(--ph-surface);
}
.ph-page-content .table-container { overflow: visible; border-radius: 0; }
.ph-page-content .dataTables_wrapper {
    width: 100%;
    max-width: 100%;
    border: 1px solid var(--ph-line);
    border-radius: 15px;
    background: var(--ph-surface);
    overflow: hidden;
    isolation: isolate;
}
.ph-page-content .whiteboard:has(.dataTables_wrapper, .ph-table-scroll, .table-responsive) {
    border: 0;
    box-shadow: none;
    background: transparent;
    padding-inline: 0;
}
.ph-page-content > .whiteboard:nth-child(1 of .whiteboard):has(.table-list, .dataTables_wrapper, .ph-table-scroll, .table-responsive) {
    padding-top: 0;
}
.ph-page-content .whiteboard:has(.dataTables_wrapper, .ph-table-scroll, .table-responsive) > :is(h1,h2,h3,.header-lined) {
    margin-inline: 0;
}
.ph-page-content .dataTables_wrapper table.table-list { margin: 0 !important; }
.ph-page-content table.dataTable :is(td,th) { box-sizing: border-box; }
.ph-page-content .dataTables_wrapper .listtable {
    border-radius: 0;
    margin: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
    scrollbar-color: var(--ph-muted) var(--ph-surface-alt);
    -webkit-overflow-scrolling: touch;
}
.ph-page-content :is(.listtable, .ph-table-scroll, .table-responsive)::-webkit-scrollbar { height: 7px; width: 7px; }
.ph-page-content :is(.listtable, .ph-table-scroll, .table-responsive)::-webkit-scrollbar-thumb { background: var(--ph-line); border-radius: 8px; }
.ph-page-content :is(.listtable, .ph-table-scroll, .table-responsive):focus-visible { outline-offset: -3px; }
.ph-page-content .ph-table-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 16px 18px;
    border-bottom: 1px solid var(--ph-line);
}
.ph-page-content .ph-table-toolbar:empty { display: none; }
.ph-page-content .dataTables_wrapper :is(.dataTables_filter, .dataTables_length) {
    float: none !important;
    width: auto;
    height: auto;
    padding: 0;
    margin: 0;
    color: var(--ph-muted);
    background: transparent;
    text-align: start !important;
}
.ph-page-content .dataTables_wrapper :is(.dataTables_filter, .dataTables_length) label {
    display: flex;
    align-items: center;
    gap: 8px;
    float: none;
    margin: 0;
    padding: 0;
    font-size: 11px;
    font-weight: 400;
    color: var(--ph-muted);
}
.ph-page-content .dataTables_wrapper .dataTables_filter { flex: 0 1 290px; min-width: 0; }
.ph-page-content .dataTables_wrapper .dataTables_filter label { position: relative; }
.ph-page-content .dataTables_wrapper .dataTables_filter label::before {
    content: '';
    position: absolute;
    inset-inline-start: 15px;
    width: 12px;
    height: 12px;
    border: 1.5px solid var(--ph-muted);
    border-radius: 50%;
    pointer-events: none;
}
.ph-page-content .dataTables_wrapper .dataTables_filter label::after {
    content: '';
    position: absolute;
    inset-inline-start: 26px;
    top: 27px;
    width: 5px;
    border-top: 1.5px solid var(--ph-muted);
    transform: rotate(45deg);
    pointer-events: none;
}
.ph-page-content .dataTables_wrapper .dataTables_filter label .form-control {
    position: static;
    width: 100%;
    min-width: 0;
    min-height: 42px;
    margin: 0;
    padding: 9px 13px 9px 13px !important;
    padding-inline-start: 40px !important;
    border: 1px solid var(--ph-line);
    border-radius: 10px;
    color: var(--ph-ink);
    background: var(--ph-surface-alt);
    font-size: 12px;
}
.ph-page-content .dataTables_wrapper .dataTables_length select.form-control {
    min-height: 38px;
    width: auto;
    min-width: 64px;
    padding: 6px 9px;
    margin: 0;
    border: 1px solid var(--ph-line);
    border-radius: 9px;
    background: var(--ph-surface-alt);
    font-size: 12px;
}
.ph-page-content .ph-table-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 15px 18px;
    border-top: 1px solid var(--ph-line);
    background: var(--ph-surface) !important;
    color: var(--ph-muted);
}
.ph-page-content .dataTables_wrapper .ph-table-footer :is(.dataTables_info, .dataTables_length, .dataTables_paginate) { background: transparent !important; }
.ph-page-content .ph-table-footer:empty { display: none; }
.ph-page-content .dataTables_wrapper .dataTables_info {
    display: block;
    float: none;
    padding: 0 !important;
    margin: 0;
    color: var(--ph-muted);
    font-size: 11px;
    font-weight: 400;
    white-space: normal;
}
.ph-page-content .dataTables_wrapper .dataTables_paginate { float: none; padding: 0; margin: 0; }
.ph-page-content .dataTables_wrapper .pagination { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; padding: 0; }
.ph-page-content .dataTables_wrapper .pagination > li > :is(a, span) {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    min-height: 34px;
    margin: 0;
    padding: 6px 10px;
    border: 1px solid transparent;
    border-radius: 9px;
    color: var(--ph-muted);
    background: transparent;
    font-size: 12px;
    line-height: 1.5;
    opacity: 1;
}
.ph-page-content .dataTables_wrapper .pagination > li:not(.disabled) > a:hover,
.ph-page-content .dataTables_wrapper .pagination > .active > :is(a, span) {
    border-color: var(--ph-line);
    background: var(--ph-primary-soft);
    color: var(--ph-primary);
}
.ph-page-content .dataTables_wrapper .pagination > .disabled > :is(a, span) { opacity: .45; cursor: default; }
.ph-page-content .dataTables_wrapper table.dataTable > thead > tr > th {
    width: auto;
    border-bottom: 1px solid var(--ph-line);
    background: var(--ph-table-heading);
    color: var(--ph-muted);
    font-weight: 500;
}
.ph-page-content .dataTables_wrapper table.dataTable > thead > tr > th:is(.sorting, .sorting_asc, .sorting_desc) { padding-inline-end: 34px; }
.ph-page-content .dataTables_wrapper table.dataTable > thead > tr > th:is(.sorting_asc, .sorting_desc) { color: var(--ph-primary); }
.ph-page-content .dataTables_wrapper table.dataTable > thead > tr > th:is(.sorting, .sorting_asc, .sorting_desc)::after {
    content: '↕';
    position: absolute;
    top: 50% !important;
    right: auto !important;
    left: 14px !important;
    transform: translateY(-50%);
    color: currentColor;
    font-family: inherit;
    font-size: 14px;
    opacity: .45;
}
.ph-page-content .dataTables_wrapper table.dataTable > thead > tr > th.sorting_asc::after { content: '↑'; opacity: 1; }
.ph-page-content .dataTables_wrapper table.dataTable > thead > tr > th.sorting_desc::after { content: '↓'; opacity: 1; }
.ph-page-content table :is(.label.status, .ph-table-status) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: auto;
    max-width: 100%;
    min-height: 27px;
    padding: 3px 10px;
    border: 1px solid transparent;
    border-radius: 999px;
    line-height: 1.8;
    font-size: 11px;
    font-weight: 500;
    white-space: nowrap;
    background: var(--ph-surface-alt);
    color: var(--ph-muted);
}
.ph-page-content table .label.status::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: currentColor; flex: 0 0 5px; }
.ph-page-content table .label.status:is(.status-active, .status-paid, .status-accepted, .status-completed) { color: var(--ph-success); background: var(--ph-success-soft); }
.ph-page-content table .label.status:is(.status-pending, .status-pending-transfer, .status-unpaid, .status-draft) { color: var(--ph-warning); background: var(--ph-warning-soft); }
.ph-page-content table .label.status:is(.status-suspended, .status-overdue, .status-expired, .status-fraud) { color: var(--ph-danger); background: var(--ph-danger-soft); }
.ph-page-content table .label.status:is(.status-open, .status-answered, .status-customer-reply, .status-delivered) { color: var(--ph-primary); background: var(--ph-primary-soft); }
.ph-page-content table .label.status-custom { border-color: currentColor; background: var(--ph-surface-alt); }
.ph-page-content table .ph-table-primary {
    color: var(--ph-ink);
    font-weight: 600;
    font-size: 13px;
    text-decoration: none;
    text-underline-offset: 4px;
}
.ph-page-content table .ph-table-primary:hover { color: var(--ph-primary); text-decoration: underline !important; }
.ph-page-content .ph-table-identity { display: flex; align-items: center; gap: 12px; min-width: 0; }
.ph-page-content .ph-table-identity > div { min-width: 0; }
.ph-page-content .ph-table-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 36px; width: 36px; height: 36px; border: 1px solid var(--ph-line); border-radius: 11px; background: var(--ph-surface-alt); color: var(--ph-primary); font-size: 18px; }
.ph-page-content .ph-table-domain { display: inline-block; direction: ltr; text-align: left; unicode-bidi: isolate; max-width: 270px; overflow-wrap: anywhere; }
.ph-page-content table .ph-service-domain { max-width: 280px; margin-top: 3px; font-size: 11px; }
.ph-page-content table .ph-table-actions { width: 1%; white-space: nowrap; text-align: center; }
.ph-page-content table .ph-table-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 34px;
    padding: 6px 10px;
    border: 1px solid var(--ph-line);
    border-radius: 9px;
    background: var(--ph-surface);
    color: var(--ph-muted);
    font-size: 11px;
    white-space: nowrap;
}
.ph-page-content table .ph-table-action:hover { color: var(--ph-primary); border-color: var(--ph-primary); background: var(--ph-primary-soft); }
.ph-page-content table .ph-table-action i { font-size: 15px; color: inherit; }
.ph-page-content #tableDomainsList .ssl-info { width: 50px; padding-inline: 14px; text-align: center; }
.ph-page-content #tableDomainsList .ssl-info img { width: 23px; max-width: 23px; }
.ph-page-content #tableDomainsList .ssl-info .ph-table-icon { width: 30px; height: 30px; border-radius: 9px; font-size: 16px; }
.ph-page-content #tableDomainsList { min-width: 740px !important; }
.ph-page-content #tableServicesList { min-width: 700px !important; }
.ph-page-content #tableServicesList > :is(thead,tbody) > tr > :is(th,td):first-child { min-width: 260px; }
.ph-page-content #tableServicesList > :is(thead,tbody) > tr > :is(th,td):nth-child(2) { min-width: 125px; }
.ph-page-content #tableServicesList > :is(thead,tbody) > tr > :is(th,td):nth-child(3) { min-width: 135px; white-space: nowrap; }
.ph-page-content #tableDomainsList > :is(thead,tbody) > tr > :is(th,td):nth-child(2) { min-width: 235px; }
.ph-page-content table.ph-table-wide { min-width: 620px; }
.ph-page-content table :is(input[type="text"], input[type="email"], select).form-control { min-width: 115px; font-size: 12px; }
.ph-page-content table td.dataTables_empty {
    position: relative;
    padding: 38px 18px !important;
    color: var(--ph-muted);
    background: var(--ph-surface) !important;
    font-size: 13px;
    white-space: normal;
    text-align: center;
}
.ph-page-content table td.dataTables_empty::before {
    content: '';
    display: block;
    position: static;
    width: 35px;
    height: 29px;
    margin: 0 auto 12px;
    border: 1.5px solid var(--ph-line);
    border-radius: 7px;
    background: linear-gradient(var(--ph-line),var(--ph-line)) center 8px/17px 1.5px no-repeat, linear-gradient(var(--ph-line),var(--ph-line)) center 16px/17px 1.5px no-repeat;
    transform: none;
}
.ph-page-content .ph-table-empty .listtable :is(table.dataTable,#tableDomainsList,#tableServicesList) { min-width: 0 !important; width: 100% !important; }
.ph-page-content .ph-table-empty #tableServicesList > tbody > tr > td.dataTables_empty { min-width: 0; }
.ph-page-content .ph-table-hint { display: flex; align-items: center; gap: 7px; margin: 0; padding: 10px 16px; color: var(--ph-muted); background: var(--ph-surface-alt); border-top: 1px solid var(--ph-line); font-size: 10px; line-height: 1.8; }
.ph-page-content .ph-table-hint[hidden] { display: none; }
.ph-page-content .ph-table-hint::before { content: '↔'; font-size: 16px; }
.ph-page-content .dataTables_wrapper .ph-table-hint { border-top: 0; border-bottom: 1px solid var(--ph-line); }
.ph-page-content :is(.ph-table-scroll,.table-responsive) + .ph-table-hint { margin-top: -20px; margin-bottom: 20px; border: 1px solid var(--ph-line); border-top: 0; border-radius: 0 0 12px 12px; }
.ph-page-content .dataTables_wrapper .ph-table-scroll { border: 0; border-radius: 0; margin: 0; }
.ph-page-content #tableLoading { padding: 28px 12px; color: var(--ph-muted); font-size: 12px; }
@media (max-width: 768px) {
    .ph-page-content .ph-table-empty .listtable thead { display: none; }
    .ph-page-content .ph-table-toolbar { padding: 14px; gap: 12px; }
    .ph-page-content .dataTables_wrapper .dataTables_filter { flex-basis: 100%; }
    .ph-page-content .ph-table-footer { padding: 14px; justify-content: center; }
    .ph-page-content .dataTables_wrapper .dataTables_info { width: 100%; text-align: center; }
    .ph-page-content :is(table.table,table.ph-data-table) > :is(thead,tbody,tfoot) > tr > :is(th,td) { padding: 14px; }
    .ph-page-content .ph-table-identity { gap: 9px; }
    .ph-page-content .ph-table-domain { max-width: 210px; }
    .ph-page-content .dataTables_wrapper .pagination > li > :is(a,span) { min-height: 38px; min-width: 32px; padding-inline: 8px; }
}
@media print {
    .ph-page-content :is(.ph-table-toolbar,.ph-table-footer,.ph-table-hint) { display: none !important; }
    .ph-page-content :is(.dataTables_wrapper,.table-container,.listtable,.table-responsive,.ph-table-scroll) { overflow: visible !important; border-color: #ddd; }
    .ph-page-content :is(table.table,table.ph-data-table,table.dataTable,#tableDomainsList,#tableServicesList) { min-width: 0 !important; font-size: 11px; }
    .ph-page-content :is(#tableDomainsList,#tableServicesList) > :is(thead,tbody) > tr > :is(th,td) { min-width: 0 !important; }
    .ph-page-content :is(table.table,table.ph-data-table) > :is(thead,tbody,tfoot) > tr > :is(th,td) { padding: 8px; background: #fff !important; color: #111; }
    .ph-page-content table .label.status { background: #fff; color: #111; border-color: #ddd; }
}
