/* Product and domain portfolios. All data and actions remain native Hostware output. */
.hw-portal-shell .hw-portal-list { margin-top:2px; }
.hw-portal-list [hidden] { display:none !important; }
.hw-portal-shell .hw-portal-list-toolbar { display:flex; align-items:flex-end; gap:16px; margin-bottom:14px; }
.hw-portal-list-search { flex:1 1 360px; min-width:0; }
.hw-portal-list-filter { flex:0 1 245px; min-width:160px; }
.hw-portal-list-toolbar label { display:block; margin:0 0 7px; font-size:12px; font-weight:500; color:var(--fg-muted); }
.hw-portal-list-search-field { position:relative; }
.hw-portal-list-search-field > i { position:absolute; left:14px; top:50%; transform:translateY(-50%); font-size:15px; color:var(--fg-muted); pointer-events:none; }
.hw-portal-shell .hw-portal-list-toolbar :is(.form-control,.form-select) { min-height:44px; height:44px; border-radius:8px; font-size:14px; border:1px solid var(--portal-border); background:var(--portal-surface); color:var(--fg-strong); padding:10px 14px; }
.hw-portal-shell .hw-portal-list-search .form-control { padding-left:40px; }
.hw-portal-shell .hw-portal-list-toolbar .btn { height:44px; }
.hw-portal-list-count { margin:0 0 15px; font-size:12px; color:var(--fg-muted); }
.hw-portal-shell .hw-portal-list .card-table { border-radius:12px; box-shadow:var(--portal-shadow); }
.hw-portal-shell .hw-portal-list .table { width:100%; }
.hw-portal-shell .hw-portal-list .table th { padding:14px 20px; font-size:11px; letter-spacing:.02em; color:var(--fg-muted); background:var(--portal-surface); border-bottom:1px solid var(--portal-border); white-space:nowrap; }
.hw-portal-shell .hw-portal-list .table td { padding:22px 20px; vertical-align:middle; font-size:13px; line-height:1.65; }
.hw-portal-shell .hw-portal-list .table tr:last-child td { border-bottom:0; }
.hw-portal-shell .hw-portal-list .table td:first-child { width:36%; }
.hw-portal-list-name { display:flex; align-items:flex-start; gap:13px; min-width:0; }
.hw-portal-list-name > div { min-width:0; }
.hw-portal-list-icon { display:grid; place-items:center; width:42px; height:42px; flex:0 0 42px; border-radius:10px; color:var(--list-tone,var(--portal-blue)); background:color-mix(in srgb,var(--list-tone,var(--portal-blue)) 9%,var(--portal-surface)); font-size:18px; }
.hw-portal-list [data-list-tone=blue] { --list-tone:var(--portal-blue); }
.hw-portal-list [data-list-tone=violet] { --list-tone:var(--portal-violet); }
.hw-portal-list [data-list-tone=teal] { --list-tone:var(--portal-teal); }
.hw-portal-list [data-list-tone=amber] { --list-tone:var(--portal-amber); }
.hw-portal-shell .hw-portal-list-title { display:block; font-size:14px; font-weight:600; line-height:1.5; color:var(--fg-strong); text-decoration:none; overflow-wrap:anywhere; }
.hw-portal-shell a.hw-portal-list-title:hover { color:var(--portal-blue); text-decoration:underline; text-underline-offset:3px; }
.hw-portal-list-type { display:block; color:var(--fg); font-size:12px; line-height:1.5; margin-top:3px; }
.hw-portal-list-reference { display:block; color:var(--fg-muted); font-size:11px; margin-top:4px; }
.hw-portal-list-description { margin-top:8px; font-size:12px; color:var(--fg-muted); }
.hw-portal-list-description > :last-child { margin-bottom:0; }
.hw-portal-shell .hw-portal-list .badge { border-radius:5px; padding:5px 8px; font-size:11px; line-height:1.5; white-space:normal; font-weight:500; }
.hw-portal-shell .hw-portal-list .table td:last-child { width:1%; min-width:146px; white-space:nowrap; text-align:right; }
.hw-portal-shell .hw-portal-list .btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:36px; border-radius:7px; padding:7px 12px; font-size:12px; font-weight:600; line-height:1.4; text-decoration:none; box-shadow:none; white-space:normal; }
.hw-portal-shell .hw-portal-list .table td:last-child .btn + .btn { margin-left:6px; }
.hw-portal-shell .hw-portal-list .table td:last-child .btn { white-space:nowrap; }
.hw-portal-shell .hw-portal-list .btn i { margin:0 !important; }
.hw-portal-list.is-empty .card-table { display:none; }
.hw-portal-shell .hw-portal-list-empty { padding:48px 24px; text-align:center; background:var(--portal-surface); border:1px solid var(--portal-border); border-radius:12px; }
.hw-portal-list-empty > i { color:var(--fg-muted); font-size:24px; margin-bottom:16px; }
.hw-portal-list-empty h2 { font-size:18px; margin:0 0 8px; }
.hw-portal-list-empty p { font-size:14px; color:var(--fg-muted); margin:0 0 20px; }
@media (max-width:1100px) and (min-width:601px) {
 .hw-portal-shell .hw-portal-list .table :is(th,td) { padding-inline:13px; }
 .hw-portal-shell .hw-portal-list .table td:last-child { white-space:normal; min-width:130px; }
 .hw-portal-shell .hw-portal-list .table td:last-child .btn { margin:3px 0; }
 .hw-portal-list-icon { width:34px; height:34px; flex-basis:34px; font-size:15px; }
}
@media (max-width:900px) {
 .hw-portal-shell .hw-portal-list .btn { min-height:44px; }
}
@media (max-width:600px) {
 .hw-portal-shell .hw-portal-list-toolbar { flex-wrap:wrap; gap:12px; }
 .hw-portal-list-search { flex-basis:100%; }
 .hw-portal-list-filter { flex:1 1 180px; min-width:0; }
 .hw-portal-shell .hw-portal-list-toolbar :is(.form-control,.form-select) { font-size:16px; }
 .hw-portal-shell .hw-portal-list .hw-mobile-table > tbody > tr { gap:18px 14px; padding:20px 16px; }
 .hw-portal-shell .hw-portal-list .hw-mobile-table > tbody > tr > td { padding:0; width:auto; font-size:13px; }
 .hw-portal-shell .hw-portal-list--products .hw-mobile-table > tbody > tr > td:nth-child(3) { grid-column:auto; }
 .hw-portal-shell .hw-portal-list .hw-mobile-table > tbody > tr > td:first-child,
 .hw-portal-shell .hw-portal-list--domains .hw-mobile-table > tbody > tr > td:nth-child(4) { grid-column:1 / -1; }
 .hw-portal-shell .hw-portal-list .table td:first-child { width:auto; }
 .hw-portal-list-identity > .hw-mobile-cell-label { display:none !important; }
 .hw-portal-shell .hw-portal-list .table td:last-child { width:auto; min-width:0; white-space:normal; text-align:left; }
 .hw-portal-shell .hw-portal-list .btn { min-height:44px; padding:10px 14px; font-size:13px; }
 .hw-portal-shell .hw-portal-list .table td:last-child .btn { margin:0 8px 0 0; }
 .hw-portal-list .hw-mobile-table .hw-mobile-cell-label { font-size:11px; }
}
/* Ticket overview: same identity/status/action hierarchy as the product lists. */
.hw-portal-shell .hw-portal-list--tickets .hw-portal-ticket-table { overflow-x:auto; border-radius:inherit; }
.hw-portal-shell .hw-portal-list--tickets .table td:first-child { width:38%; }
.hw-portal-shell .hw-portal-list--tickets .hw-portal-ticket-product { max-width:280px; overflow-wrap:anywhere; }
.hw-portal-shell .hw-portal-list--tickets .hw-portal-ticket-updated { white-space:nowrap; color:var(--fg-muted); font-size:12px; }
.hw-portal-shell .hw-portal-list--tickets .hw-portal-list-empty > p:last-child { margin-bottom:0; }
@media (max-width:600px) {
 .hw-portal-shell .hw-portal-list--tickets .hw-mobile-table > tbody > tr > td:first-child { width:auto; }
 .hw-portal-shell .hw-portal-list--tickets .hw-mobile-table > tbody > tr > td:nth-child(2) { grid-column:1 / -1; max-width:none; }
 .hw-portal-shell .hw-portal-list--tickets .hw-portal-ticket-updated { white-space:normal; }
}
/* Native record lists share the visual rhythm, without portfolio column assumptions. */
.hw-portal-shell :is(.hw-portal-list,.hw-portal-record-list,.hw-portal-detail) .table > thead,
.hw-portal-shell :is(.hw-portal-list,.hw-portal-record-list,.hw-portal-detail) .table > thead > tr { border-bottom:0; }
.hw-portal-shell :is(.hw-portal-list,.hw-portal-record-list,.hw-portal-detail) .table > thead > tr > th { border-bottom:1px solid var(--portal-border); }
.hw-portal-shell :is(.hw-portal-list,.hw-portal-record-list,.hw-portal-detail) .table > thead + tbody { border-top:0; }
.hw-portal-shell .hw-portal-record-list { margin-top:2px; min-width:0; }
.hw-portal-shell .hw-portal-record-list .card-table { border-radius:12px; box-shadow:var(--portal-shadow); }
.hw-portal-shell .hw-portal-record-list .card-table > :is(.table-responsive,div[style*="overflow-x"]):first-child { border-radius:inherit; }
.hw-portal-shell .hw-portal-record-list .table { width:100%; margin-bottom:0; }
.hw-portal-shell .hw-portal-record-list .table > thead > tr > th { padding:14px 20px; font-size:11px; letter-spacing:.02em; color:var(--fg-muted); background:var(--portal-surface); border-bottom:1px solid var(--portal-border); white-space:nowrap; }
.hw-portal-shell .hw-portal-record-list .table > tbody > tr > td { padding:22px 20px; vertical-align:middle; font-size:13px; line-height:1.65; overflow-wrap:anywhere; }
.hw-portal-shell .hw-portal-record-list .table > tbody > tr:last-child > td { border-bottom:0; }
.hw-portal-shell .hw-portal-record-list .table .badge { border-radius:5px; padding:5px 8px; font-size:11px; line-height:1.5; white-space:normal; font-weight:500; }
.hw-portal-shell .hw-portal-record-list .table .btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:36px; border-radius:7px; padding:7px 12px; font-size:12px; font-weight:600; line-height:1.4; text-decoration:none; box-shadow:none; white-space:nowrap; }
.hw-portal-shell .hw-portal-record-list .table .btn i { margin:0 !important; }
.hw-portal-shell .hw-portal-record-list .table td > .btn + .btn { margin-left:6px; }
.hw-portal-shell .hw-portal-record-list .card-footer { padding:16px 20px; background:var(--portal-surface); border-top:1px solid var(--portal-border); }
.hw-portal-shell .hw-portal-record-list--empty .table > thead { display:none; }
.hw-portal-shell .hw-portal-record-list--empty .table > tbody > tr > td[colspan] { padding:48px 24px; color:var(--fg-muted); font-size:14px; text-align:center; }
.hw-portal-shell :is(.hw-portal-record-list--orders,.hw-portal-record-list--invoices,.hw-portal-record-list--documents,.hw-portal-record-list--access,.hw-portal-record-list--roles) .table > tbody > tr > td:first-child:not([colspan]) { font-weight:600; color:var(--fg-strong); }
.hw-portal-shell .hw-portal-record-list--orders .table ul { margin:0; padding-left:18px; }
.hw-portal-shell .hw-portal-record-list--invoices .table > tbody > tr > td:first-child > .badge { display:table; margin-top:6px; }
.hw-portal-shell :is(.hw-portal-record-list--invoices,.hw-portal-record-list--documents,.hw-portal-record-list--access,.hw-portal-record-list--roles) .table > tbody > tr > td:last-child:not([colspan]) { white-space:nowrap; text-align:right; }
/* Groupware has row headings and keeps its native horizontal-scroll layout. */
.hw-portal-shell .gw-account.hw-portal-record-list .table > thead > tr > th { padding:14px 20px !important; }
.hw-portal-shell .gw-account.hw-portal-record-list .table > tbody > tr > :is(th,td) { padding:22px 20px !important; font-size:13px; line-height:1.65; }
.hw-portal-shell .gw-account.hw-portal-record-list .table > tbody > tr:last-child > th { border-bottom:0; }
@media (max-width:1100px) and (min-width:601px) {
 .hw-portal-shell .hw-portal-record-list .table > :is(thead,tbody) > tr > :is(th,td) { padding-inline:13px; }
}
@media (max-width:900px) {
 .hw-portal-shell .hw-portal-record-list .table .btn { min-height:44px; }
}
@media (max-width:600px) {
 .hw-portal-shell .hw-portal-record-list .hw-mobile-table > tbody > tr { gap:18px 14px; padding:20px 16px; }
 .hw-portal-shell .hw-portal-record-list .hw-mobile-table > tbody > tr > td { padding:0; width:auto; min-width:0; font-size:13px; }
 .hw-portal-shell :is(.hw-portal-record-list--orders,.hw-portal-record-list--invoices,.hw-portal-record-list--documents,.hw-portal-record-list--access,.hw-portal-record-list--roles) .hw-mobile-table > tbody > tr > td:first-child,
 .hw-portal-shell .hw-portal-record-list--orders .hw-mobile-table > tbody > tr > td:nth-child(3) { grid-column:1 / -1; }
 .hw-portal-shell :is(.hw-portal-record-list--invoices,.hw-portal-record-list--documents,.hw-portal-record-list--access,.hw-portal-record-list--roles) .hw-mobile-table > tbody > tr > td:last-child:not([colspan]) { white-space:normal; text-align:left; }
 .hw-portal-shell .hw-portal-record-list .table .btn { min-height:44px; padding:10px 14px; font-size:13px; margin:0 8px 6px 0; white-space:normal; }
 .hw-portal-shell .hw-portal-record-list .table td > .btn + .btn { margin-left:0; }
 .hw-portal-shell .hw-portal-record-list .hw-mobile-table .hw-mobile-cell-label { font-size:11px; font-weight:400; }
 .hw-portal-shell .hw-portal-record-list--empty .table > tbody > tr > td[colspan] { padding:32px 20px; }
}

/* The native card selector resets header border colors with higher specificity. */
.hw-portal-shell :is(.hw-portal-list,.hw-portal-record-list,.hw-portal-detail) .card.card-table .table > thead > tr > th { border-bottom-color:var(--portal-border); }
/* Contact comparison keeps its roles, aligned selects and own mobile layout. */
.hw-portal-shell .hw-domain-contacts .hw-dc-table { color:var(--fg); font-size:13px; line-height:1.65; }
.hw-portal-shell .hw-domain-contacts .hw-dc-table :is(th,td) { border-color:var(--portal-border); }
.hw-portal-shell .hw-domain-contacts .hw-dc-table thead th { font-size:11px; font-weight:600; letter-spacing:.02em; color:var(--fg-muted); background:var(--portal-surface); padding:14px 20px; }
@media(min-width:801px) {
 .hw-portal-shell .hw-domain-contacts .hw-dc-table { border-collapse:separate; border-spacing:0; border:1px solid var(--portal-border); border-radius:12px; background:var(--portal-surface); }
 .hw-portal-shell .hw-domain-contacts .hw-dc-table thead th:first-child { border-top-left-radius:11px; }
 .hw-portal-shell .hw-domain-contacts .hw-dc-table thead th:last-child { border-top-right-radius:11px; }
 .hw-portal-shell .hw-domain-contacts .hw-dc-table tbody tr:last-child > :is(th,td) { border-bottom:0; }
 .hw-portal-shell .hw-domain-contacts .hw-dc-table tbody tr:last-child > :first-child { border-bottom-left-radius:11px; }
 .hw-portal-shell .hw-domain-contacts .hw-dc-table tbody tr:last-child > :last-child { border-bottom-right-radius:11px; }
}
@media(max-width:800px) {
 .hw-portal-shell .hw-domain-contacts .hw-dc-select { font-size:16px; }
 .hw-portal-shell .hw-domain-contacts .hw-dc-table tr { border-color:var(--portal-border); border-radius:12px; background:var(--portal-surface); }
}
