/* Shared product and domain workspaces. No provider state or action visibility is changed. */
.hw-portal-shell .hw-header-section:has(.hw-portal-detail-heading) { padding:22px 0 18px; background:none; }
.hw-portal-detail-heading { min-width:0; }
.hw-portal-detail-back { display:inline-flex; align-items:center; gap:8px; min-height:36px; margin-bottom:12px; color:var(--fg-muted); font-size:12px; text-decoration:none; }
.hw-portal-detail-back:hover { color:var(--fg-strong); text-decoration:none; }
/* Keep one direct way back: sidebar on desktop, content above the product on mobile. */
@media(min-width:901px) {
 .hw-portal-shell:has(.hw-portal-sidebar--context) .hw-portal-detail-back { display:none; }
}
@media(max-width:900px) {
 .hw-portal-shell:has(.hw-portal-detail-back) .hw-portal-context-back { display:none; }
}
.hw-portal-detail-hero { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px 28px; padding:24px; border:1px solid var(--portal-border); border-radius:10px; background:var(--portal-surface); }
.hw-portal-detail-identity { display:flex; align-items:center; gap:16px; min-width:0; flex:1 1 280px; }
.hw-portal-detail-icon { display:grid; place-items:center; flex:0 0 48px; width:48px; height:48px; border:1px solid var(--portal-border); border-radius:9px; background:var(--portal-canvas); color:var(--fg-strong); font-size:21px; }
.hw-portal-detail-name { min-width:0; }
.hw-portal-detail-kind { margin:0 0 5px; color:var(--fg-muted); font-size:12px; font-weight:500; }
.hw-portal-detail-titleline { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; min-width:0; }
.hw-portal-detail-titleline h1 { margin:0; color:var(--fg-strong); font-size:clamp(22px,2vw,28px); font-weight:650; letter-spacing:-.025em; line-height:1.25; overflow-wrap:anywhere; }
.hw-portal-detail-meta { display:flex; align-items:center; flex-wrap:wrap; gap:7px; margin:7px 0 0; color:var(--fg-muted); font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.hw-portal-detail-status { display:inline-flex; align-items:center; }
.hw-portal-detail-status .badge { border-radius:5px; padding:5px 8px; font-size:11px; font-weight:500; line-height:1.3; white-space:normal; }
.hw-portal-detail-actions,.hw-portal-detail-operations { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.hw-portal-detail-actions { justify-content:flex-end; }
.hw-portal-detail-sso { margin:0; }
.hw-portal-shell .hw-portal-detail-actions .btn,
.hw-portal-shell .hw-portal-detail .btn,
.hw-portal-shell .hw-main:has(.hw-portal-detail) .modal .btn { min-height:36px; padding:7px 12px; border-radius:7px; font-family:var(--font-sans); font-size:13px; font-weight:500; line-height:1.45; box-shadow:none; }
.hw-portal-detail-actions .btn { display:inline-flex; align-items:center; justify-content:center; gap:7px; white-space:normal; }
.hw-portal-shell .hw-portal-detail-actions :is(.btn-primary,.btn-success),
.hw-portal-shell .hw-portal-detail .btn-primary { background:var(--accent); border-color:var(--accent); color:var(--accent-fg); }
.hw-portal-shell .hw-portal-detail-actions :is(.btn-primary,.btn-success):hover,
.hw-portal-shell .hw-portal-detail .btn-primary:hover { background:var(--accent-hover); border-color:var(--accent-hover); color:var(--accent-fg); }
.hw-portal-detail-menu { position:relative; }
.hw-portal-detail-menu > summary { display:flex; align-items:center; justify-content:center; gap:8px; min-height:36px; padding:7px 11px; border:1px solid var(--border-strong); border-radius:7px; background:var(--portal-surface); color:var(--fg-strong); font-size:13px; font-weight:500; line-height:1.45; list-style:none; cursor:pointer; }
.hw-portal-detail-menu > summary::-webkit-details-marker { display:none; }
.hw-portal-detail-menu > summary:hover,.hw-portal-detail-menu[open] > summary { background:var(--portal-canvas); }
.hw-portal-detail-menu > summary > .fa-angle-down { margin-left:6px; font-size:11px; }
.hw-portal-detail-menu[open] > summary > .fa-angle-down { transform:rotate(180deg); }
.hw-portal-detail-menu-items { position:absolute; right:0; top:calc(100% + 8px); z-index:30; display:grid; gap:3px; width:max-content; min-width:220px; max-width:min(320px,calc(100vw - 48px)); padding:7px; border:1px solid var(--portal-border); border-radius:9px; background:var(--portal-surface); box-shadow:0 12px 32px rgb(0 0 0 / .12); }
.hw-portal-shell .hw-portal-detail-menu-items .btn { display:flex; align-items:center; justify-content:flex-start; width:100%; gap:9px; padding:10px 11px; border:0; border-radius:5px; background:transparent; color:var(--fg-strong); text-align:left; text-decoration:none; }
.hw-portal-shell .hw-portal-detail-menu-items .btn:hover { background:var(--portal-canvas); color:var(--fg-strong); }
.hw-portal-detail { min-width:0; padding-bottom:24px; }
.hw-portal-detail-workspace { min-width:0; }
.hw-portal-shell .hw-portal-detail :is(.card,.hw-vps-panel-link) { border:1px solid var(--portal-border); border-radius:10px; background:var(--portal-surface); box-shadow:none; }
.hw-portal-shell .hw-portal-detail .card-header { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:17px 20px; border-bottom:1px solid var(--portal-border); background:transparent; }
.hw-portal-shell .hw-portal-detail .card-header :is(h2,h3,h4,h5,h6) { margin:0; color:var(--fg-strong); font-size:16px; font-weight:600; line-height:1.45; }
.hw-portal-shell .hw-portal-detail .card-header :is(h2,h3,h4,h5,h6) i { margin-right:7px; font-size:15px; }
.hw-portal-shell .hw-portal-detail .card-body { padding:20px; }
.hw-portal-shell .hw-portal-detail .card-footer { padding:14px 20px; border-top:1px solid var(--portal-border); background:var(--portal-surface); }
.hw-portal-detail .module-content { font-size:14px; line-height:1.6; min-width:0; }
.hw-portal-shell .hw-portal-module-content > .btn,.hw-portal-shell .hw-vps-panel-link > .btn { gap:6px; }
.hw-portal-detail .module-content > .row { --bs-gutter-x:18px; --bs-gutter-y:18px; }
.hw-portal-detail .module-content > .row > [class*="col"] { min-width:0; }
.hw-portal-shell .hw-portal-detail .hw-summary-wrapper { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr)); gap:0; }
.hw-portal-shell .hw-portal-detail .hw-portal-domain-overview .hw-summary-wrapper { grid-template-columns:repeat(3,minmax(0,1fr)); }
.hw-portal-shell .hw-portal-detail .hw-summary-wrapper > article { display:block; width:auto; min-width:0; padding:16px; border:0; border-bottom:1px solid var(--portal-border); background:transparent; }
.hw-portal-shell .hw-portal-detail .hw-summary-wrapper > article > :is(label,div) { width:auto; max-width:none; min-width:0; }
.hw-portal-shell .hw-portal-detail .hw-summary-wrapper > article > label { display:block; margin-bottom:7px; color:var(--fg-muted); font-size:12px; font-weight:500; line-height:1.45; }
.hw-portal-shell .hw-portal-detail .hw-summary-wrapper > article > div { color:var(--fg-strong); font-size:14px; overflow-wrap:anywhere; }
.hw-portal-shell .hw-portal-detail .hw-summary-wrapper strong { font-size:15px; font-weight:600; line-height:1.5; }
.hw-portal-shell .hw-portal-detail .hw-summary-wrapper small { display:block; margin-top:4px; font-size:12px; line-height:1.5; }
/* Native Auth-Code/transfer-lock links align with the summary value, including their arrow. */
.hw-portal-shell .hw-portal-detail .hw-portal-domain-overview .hw-summary-wrapper > article > div > form > .btn-link { display:inline-flex; align-items:center; justify-content:flex-start; gap:6px; padding-inline:0; border-width:0; text-align:left; }
.hw-portal-shell .hw-portal-detail .hw-portal-domain-overview .hw-summary-wrapper > article > div > form > .btn-link::after { position:static; inset:auto; translate:none; transform:none; flex:0 0 auto; margin:0; }
.hw-portal-shell .hw-portal-detail .hw-stats-card { height:100%; }
.hw-portal-shell .hw-portal-detail .hw-stats-card .card-header { padding:17px 18px 0; border:0; }
.hw-portal-shell .hw-portal-detail .hw-stats-card .card-header h5 { font-size:13px; font-weight:500; color:var(--fg-muted); }
.hw-portal-shell .hw-portal-detail .hw-stats-card .card-body { display:flex; flex-direction:column; gap:16px; padding:14px 18px 18px; }
.hw-portal-shell .hw-portal-detail .hw-stats-card .hw-stats-info { order:-1; display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:6px 12px; margin:0; }
.hw-portal-shell .hw-portal-detail .hw-stats-card .hw-stats-info > span:first-child { color:var(--fg-strong); font-size:18px; font-weight:600; letter-spacing:-.02em; }
.hw-portal-shell .hw-portal-detail .hw-stats-card .hw-stats-info > span:last-child { color:var(--fg-muted); font-size:12px; }
.hw-portal-shell .hw-portal-detail .hw-stats-card .progress { height:5px!important; border-radius:3px; background:var(--portal-canvas); }
.hw-portal-shell .hw-portal-detail .hw-stats-card .progress-bar { border-radius:3px; background:var(--fg-strong); }
.hw-portal-shell .hw-portal-detail .table { --bs-table-bg:transparent; color:var(--fg); font-size:13px; border-color:var(--portal-border); }
.hw-portal-shell .hw-portal-detail .card-table { border-radius:12px; box-shadow:var(--portal-shadow); }
.hw-portal-shell .hw-portal-detail .table > thead > tr > th { padding:14px 20px; color:var(--fg-muted); background:var(--portal-surface); font-size:11px; font-weight:600; letter-spacing:.02em; white-space:normal; }
.hw-portal-shell .hw-portal-detail .table > tbody > tr > td { padding:14px; vertical-align:middle; border-color:var(--portal-border); }
/* Headerless control/form tables keep their compact layout; data lists share the record spacing. */
.hw-portal-shell .hw-portal-detail .table:where(:has(> thead)) > tbody > tr > :is(th,td) { padding:22px 20px; line-height:1.65; }
.hw-portal-shell .hw-portal-detail .table-responsive { max-width:100%; border-radius:12px; }
.hw-portal-shell .hw-portal-detail .card-table > :is(.table-responsive,div[style*="overflow-x"]):first-child { border-radius:inherit; }
.hw-portal-shell .hw-portal-detail :is(.form-control,.form-select) { min-height:40px; border-radius:7px; background-color:var(--portal-surface); color:var(--fg); font-family:var(--font-sans); font-size:14px; }
.hw-portal-shell .hw-portal-detail :is(.form-label,.form-group > label) { margin-bottom:7px; color:var(--fg-strong); font-size:13px; font-weight:500; }
.hw-portal-shell .hw-portal-detail .form-text { font-size:12px; line-height:1.55; }
.hw-portal-shell .hw-portal-detail .alert { border-radius:7px; padding:14px 16px; font-size:13px; line-height:1.6; }
.hw-portal-shell .hw-portal-detail .alert.d-flex { flex-wrap:wrap; gap:12px; }
.hw-portal-shell .hw-portal-detail .badge { border-radius:5px; }
.hw-portal-access,.hw-portal-product-information { margin:0 0 20px; border:1px solid var(--portal-border); border-radius:9px; background:var(--portal-surface); }
.hw-portal-detail--product .hw-portal-detail-workspace > .hw-portal-product-information:not(:first-child) { margin-top:20px; }
.hw-portal-access > summary,.hw-portal-product-information > summary { display:flex; align-items:center; gap:10px; min-height:54px; padding:14px 18px; border-radius:9px; color:var(--fg-strong); font-size:14px; font-weight:500; cursor:pointer; list-style:none; }
.hw-portal-access > summary::-webkit-details-marker,.hw-portal-product-information > summary::-webkit-details-marker { display:none; }
.hw-portal-access > summary > span,.hw-portal-product-information > summary > span { flex:1; }
.hw-portal-access > summary > .fa-angle-down,.hw-portal-product-information > summary > .fa-angle-down { font-size:12px; color:var(--fg-muted); }
.hw-portal-access[open] > summary,.hw-portal-product-information[open] > summary { border-bottom:1px solid var(--portal-border); border-radius:9px 9px 0 0; }
.hw-portal-access[open] > summary > .fa-angle-down,.hw-portal-product-information[open] > summary > .fa-angle-down { transform:rotate(180deg); }
.hw-portal-access-body,.hw-portal-product-information-body { padding:18px; font-size:13px; line-height:1.65; }
.hw-portal-access-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.hw-portal-access-field { display:flex; align-items:center; flex-wrap:wrap; gap:7px; min-width:0; }
.hw-portal-field-label { flex-basis:100%; margin:0; font-size:12px; color:var(--fg-muted); }
.hw-portal-access-field > strong,.hw-portal-access-field > label { margin:0; overflow-wrap:anywhere; font-size:14px; font-weight:500; }
.hw-portal-secret-button { display:inline-grid; place-items:center; width:36px; height:36px; padding:8px; border:1px solid var(--portal-border); border-radius:7px; background:var(--portal-surface); color:var(--fg-strong); cursor:pointer; }
/* Native toggle switches the button's eye class; icons retain their own font. */
.hw-portal-secret-button::before { content:none; }
.hw-portal-secret-button.fa-eye > .fa-eye-slash,.hw-portal-secret-button.fa-eye-slash > .fa-eye { display:none; }
.hw-portal-secret-button:hover { background:var(--portal-canvas); }
.hw-portal-access-body .hw-storage-password { margin-top:20px; }
.hw-portal-product-information-body :is(h1,h2,h3) { font-size:18px; line-height:1.4; }
.hw-portal-product-information-body > :last-child { margin-bottom:0; }
.hw-portal-shell .hw-portal-detail .hw-vps-panel-link { margin-top:20px; padding:18px 20px; }
.hw-portal-shell .hw-portal-detail .hw-vps-panel-link p { font-size:13px; }
.hw-portal-shell .hw-main:has(.hw-portal-detail) .modal-content { border:1px solid var(--portal-border); border-radius:10px; background:var(--portal-surface); color:var(--fg); }
.hw-portal-shell .hw-main:has(.hw-portal-detail) .modal :is(.modal-header,.modal-footer) { border-color:var(--portal-border); }
.hw-portal-shell .hw-main:has(.hw-portal-detail) .modal .modal-title { font-size:18px; font-weight:600; }
.hw-portal-shell :is(.hw-portal-detail-heading,.hw-portal-detail) :is(a,button,summary):focus-visible { outline:2px solid var(--fg-strong); outline-offset:3px; }
@media(max-width:1100px) {
 .hw-portal-shell .hw-portal-detail .hw-portal-domain-overview .hw-summary-wrapper { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .hw-portal-detail-hero { align-items:flex-start; gap:18px; padding:20px; }
 .hw-portal-detail-actions { justify-content:flex-start; }
 .hw-portal-detail-hero > .hw-portal-detail-actions { flex-basis:100%; padding-top:16px; border-top:1px solid var(--portal-border); }
 .hw-portal-detail-menu-items { left:0; right:auto; }
}
/* Match the portal touch breakpoint, including the 701–900px tablet range. */
@media(max-width:900px) {
 .hw-portal-shell .hw-portal-detail-actions .btn,.hw-portal-shell .hw-portal-detail .btn,.hw-portal-shell .hw-main:has(.hw-portal-detail) .modal .btn,.hw-portal-detail-menu > summary { min-height:44px; }
 .hw-portal-detail-back { min-height:44px; }
 .hw-portal-secret-button { width:44px; height:44px; }
}
@media(max-width:700px) {
 .hw-portal-shell .hw-portal-detail .hw-portal-domain-overview .hw-summary-wrapper { grid-template-columns:1fr; }
 .hw-portal-shell .hw-header-section:has(.hw-portal-detail-heading) { padding:12px 0 16px; }
 .hw-portal-detail-back { margin-bottom:8px; }
 .hw-portal-detail-hero { padding:18px 16px; gap:16px; }
 .hw-portal-detail-identity { gap:12px; align-items:flex-start; }
 .hw-portal-detail-icon { flex-basis:40px; width:40px; height:40px; font-size:18px; }
 .hw-portal-detail-titleline h1 { font-size:22px; }
 .hw-portal-detail-meta { font-size:12px; }
 .hw-portal-detail-menu-items { min-width:200px; max-width:calc(100vw - 72px); }
 .hw-portal-detail-menu-items .btn { line-height:1.5; }
 .hw-portal-shell .hw-portal-detail .card-header { padding:15px 16px; }
 .hw-portal-shell .hw-portal-detail .card-body { padding:16px; }
 .hw-portal-shell .hw-portal-detail .hw-summary-wrapper { grid-template-columns:1fr; }
 .hw-portal-shell .hw-portal-detail .hw-summary-wrapper > article { padding:14px 0; }
 .hw-portal-shell .hw-portal-detail .hw-summary-wrapper > article:last-child { border-bottom:0; }
 .hw-portal-shell .hw-portal-detail :is(.form-control,.form-select) { min-height:44px; font-size:16px; }
 .hw-portal-access-fields { grid-template-columns:1fr; }
}

/* The shell retains a single sidebar; detail pages provide its context links. */
.hw-portal-context { min-width:0; }
.hw-portal-context-back { display:flex; align-items:center; gap:9px; min-height:40px; padding:8px 11px; border-radius:7px; color:var(--fg-muted); font-size:12px; font-weight:500; text-decoration:none; }
.hw-portal-context-back:hover { color:var(--fg-strong); background:var(--portal-canvas); text-decoration:none; }
.hw-portal-context-identity { display:flex; flex-direction:column; gap:5px; min-width:0; padding:14px 11px 20px; margin-bottom:12px; border-bottom:1px solid var(--portal-border); }
.hw-portal-context-identity > strong { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; overflow-wrap:anywhere; color:var(--fg-strong); font-size:14px; font-weight:600; line-height:1.45; }
.hw-portal-context-identity > span { color:var(--fg-muted); font-size:11px; line-height:1.45; overflow-wrap:anywhere; }
.hw-portal-context-group + .hw-portal-context-group { margin-top:18px; }
.hw-portal-context-label { margin:0 11px 6px; color:var(--fg-muted); font-size:11px; font-weight:500; line-height:1.5; }
.hw-portal-context-list { display:grid; gap:3px; margin:0; padding:0; list-style:none; }
.hw-portal-context-list > li { margin:0; padding:0; min-width:0; }
.hw-portal-context-link { position:relative; display:flex; align-items:center; gap:10px; min-height:42px; padding:10px 11px; border:1px solid transparent; border-radius:7px; color:var(--fg-muted); font-size:13px; font-weight:450; line-height:1.45; text-decoration:none; }
.hw-portal-context-link > i { flex:0 0 18px; width:18px; font-size:15px; text-align:center; color:inherit; }
.hw-portal-context-link > span { min-width:0; overflow-wrap:anywhere; }
.hw-portal-context-link:hover { color:var(--fg-strong); background:var(--portal-canvas); text-decoration:none; }
.hw-portal-context-link.is-active { color:var(--fg-strong); background:var(--portal-surface); border-color:var(--portal-border); font-weight:600; text-decoration:none; }
.hw-portal-context-link.is-active::before { content:""; position:absolute; top:10px; bottom:10px; left:-1px; width:3px; border-radius:0 2px 2px 0; background:var(--accent); }
.hw-portal-context :is(a,button):focus-visible { outline:2px solid var(--fg-strong); outline-offset:3px; }
@media(max-width:1100px) {
 .hw-portal-context-back,.hw-portal-context-link { min-height:44px; }
}

/* A package benefit is shown only when the existing module offers a free slot. */
.hw-portal-included { margin:0 0 22px; padding:20px; scroll-margin-top:24px; border:1px solid var(--portal-border); border-radius:10px; background:var(--portal-surface); }
.hw-portal-included-heading { display:flex; align-items:flex-start; gap:13px; }
.hw-portal-included-icon { display:grid; place-items:center; flex:0 0 38px; width:38px; height:38px; border-radius:8px; background:var(--accent); color:var(--accent-fg); font-size:18px; }
.hw-portal-included h2 { margin:0 0 6px; color:var(--fg-strong); font-size:17px; font-weight:600; }
.hw-portal-included p { margin:0; color:var(--fg-muted); font-size:13px; line-height:1.6; }
.hw-portal-included-offers { list-style:none; padding:0; margin:16px 0 0; }
.hw-portal-included-offers > li { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; padding:15px 0; border-top:1px solid var(--portal-border); }
.hw-portal-included-offers > li:last-child { padding-bottom:0; }
.hw-portal-included-package { display:grid; gap:5px; min-width:0; flex:1 1 240px; color:var(--fg); font-size:13px; overflow-wrap:anywhere; }
.hw-portal-included-package strong { color:var(--fg-strong); font-size:14px; font-weight:600; }
.hw-portal-included-package strong > span,.hw-portal-included-package small { color:var(--fg-muted); font-size:12px; font-weight:400; }
.hw-portal-shell .hw-portal-included .btn { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:36px; padding:7px 12px; border-radius:7px; font-size:13px; font-weight:500; white-space:normal; text-decoration:none; }
@media(max-width:600px) { .hw-portal-included { padding:16px; } .hw-portal-included-offers > li { align-items:stretch; } .hw-portal-shell .hw-portal-included .btn { min-height:44px; width:100%; } }

/* Keep module table values and actions readable without sideways scrolling. */
@media(max-width:600px) {
 .hw-portal-shell .hw-portal-detail .hw-mobile-table > tbody > tr { gap:16px 14px; padding:18px 16px; }
 .hw-portal-shell .hw-portal-detail .hw-mobile-table > tbody > tr > td { width:auto; padding:0; white-space:normal; }
 .hw-portal-shell .hw-portal-detail .hw-mobile-table :is(code,pre) { white-space:pre-wrap; overflow-wrap:anywhere; }
}

/* Explanatory status messages may be longer than a short state label. */
.hw-portal-shell .hw-portal-detail .hw-summary-wrapper .badge { max-width:100%; white-space:normal; overflow-wrap:anywhere; text-align:left; line-height:1.45; }
