/* Fair E Web Host Billing — v14.2.1 interface consistency layer
   Additive overrides, loaded last. No billing/payment/provider behaviour. */
:root {
  --fwh142-ink:#123144;
  --fwh142-muted:#5a7180;
  --fwh142-line:#dce7ea;
  --fwh142-surface:#ffffff;
  --fwh142-page:#f4f8f9;
  --fwh142-green:#12773e;
  --fwh142-radius:14px;
  --fwh142-shadow:0 5px 22px rgba(15,52,67,.045);
}
body.fwh-shell {
  background:var(--fwh142-page) !important;
  font-size:14px;
  -webkit-font-smoothing:antialiased;
}
body.fwh-shell .fwh-main, body.fwh-shell .fwh-content, body.fwh-shell .fwh-stack,
body.fwh-shell .fwh-page-head, body.fwh-shell .fwh-panel,
body.fwh-shell .fwh-dashboard-grid { min-width:0; }
body.fwh-shell .fwh-content {
  width:100%; max-width:1540px; padding:26px clamp(16px,2.15vw,34px) 32px;
}
body.fwh-shell .fwh-topbar-inner {
  display:flex; gap:clamp(8px,1vw,15px); min-width:0;
  padding-inline:clamp(12px,1.4vw,22px);
}
body.fwh-shell .fwh-topbar-inner > * { min-width:0; }
body.fwh-shell .fwh-brand-link {
  width:auto; min-width:0; flex:0 0 clamp(205px,15vw,245px); gap:8px;
}
body.fwh-shell .fwh-brand-link img { width:clamp(112px,9.5vw,142px); max-height:39px; object-fit:contain; }
body.fwh-shell .fwh-brand-context { white-space:nowrap; font-size:10px; padding-left:8px; }
body.fwh-shell .fwh-global-tabs { flex:0 1 auto; gap:1px; }
body.fwh-shell .fwh-global-tabs > a, body.fwh-shell .fwh-global-tab {
  padding-inline:clamp(7px,.7vw,12px); font-size:.81rem; white-space:nowrap;
}
body.fwh-shell .fwh-topbar-spacer { flex:1 1 0; min-width:0; }
body.fwh-shell .fwh-topbar-actions { flex:0 0 auto; gap:4px; }
body.fwh-shell .fwh-topbar-actions > .dropdown { flex-shrink:0; }
body.fwh-shell .fwh-search-wrap { flex:0 1 265px; min-width:170px; max-width:265px; }
body.fwh-shell .fwh-search-input { min-width:0; max-width:100%; }
body.fwh-shell .fwh-user-button { max-width:200px; }
body.fwh-shell .fwh-user-copy { min-width:0; }
body.fwh-shell .fwh-user-copy strong { max-width:122px; text-overflow:ellipsis; overflow:hidden; white-space:nowrap; }
body.fwh-shell .fwh-sidebar { padding:12px 10px 18px; scrollbar-width:thin; scrollbar-color:rgba(208,238,229,.3) transparent; }
body.fwh-shell .fwh-sidebar::-webkit-scrollbar { display:block; width:5px; }
body.fwh-shell .fwh-sidebar::-webkit-scrollbar-thumb { background:rgba(208,238,229,.26); border-radius:8px; }
body.fwh-shell .fwh-sidebar-section {
  margin:16px 11px 6px; font-size:.64rem; line-height:1.3; letter-spacing:.10em;
}
body.fwh-shell .fwh-side-link {
  min-height:37px; margin:1px 0; padding:7px 11px;
  border-radius:9px; font-size:.825rem; line-height:1.35;
}
body.fwh-shell .fwh-side-link i { flex:0 0 18px; width:18px; font-size:13px; }
body.fwh-shell .fwh-side-link span { overflow-wrap:anywhere; }
body.fwh-shell .fwh-sidebar-footer { padding-top:10px; }
body.fwh-shell .fwh-page-head {
  display:flex; align-items:flex-end; justify-content:space-between;
  flex-wrap:wrap; gap:16px; margin-bottom:20px;
}
body.fwh-shell .fwh-page-head > :first-child { min-width:0; flex:1 1 290px; }
body.fwh-shell .fwh-page-head > .d-flex { flex-wrap:wrap; }
body.fwh-shell .fwh-page-title {
  max-width:100%; font-size:clamp(1.45rem,1.65vw + .6rem,1.95rem) !important;
  line-height:1.18 !important; overflow-wrap:anywhere; letter-spacing:-.027em !important;
}
body.fwh-shell .fwh-page-subtitle { max-width:70ch; line-height:1.5; }
body.fwh-shell .fwh-breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
body.fwh-shell .fwh-breadcrumb i { font-size:9px !important; }
body.fwh-shell .fwh12-dashboard-links { gap:10px; margin-bottom:18px; }
body.fwh-shell .fwh12-dashboard-links > a { padding:14px 13px; border-radius:12px; min-height:78px; }
body.fwh-shell .fwh12-dashboard-links strong { font-size:.82rem; }
body.fwh-shell .fwh-kpi-grid { gap:12px; margin-bottom:20px; }
body.fwh-shell .fwh-kpi { padding:18px; min-height:126px; border-radius:var(--fwh142-radius); box-shadow:var(--fwh142-shadow); }
body.fwh-shell .fwh-kpi-label { font-size:.70rem; line-height:1.35; letter-spacing:.03em; }
body.fwh-shell .fwh-kpi-value { font-size:clamp(1.48rem,2vw,1.9rem); line-height:1.25; margin-top:10px; }
body.fwh-shell .fwh-kpi-meta { font-size:.78rem; line-height:1.4; }
body.fwh-shell .fwh-dashboard-grid { gap:18px; }
body.fwh-shell .fwh-panel, body.fwh-shell .card,
body.fwh-shell .fwh-site-card { box-shadow:var(--fwh142-shadow); }
body.fwh-shell .fwh-panel-head h2 { font-size:.93rem !important; line-height:1.4; }
body.fwh-shell .table-responsive { max-width:100%; }
body.fwh-shell .table-responsive:focus-visible {
  outline:2px solid #18864c; outline-offset:-2px;
}
body.fwh-shell .table thead th { font-size:.70rem; line-height:1.35; }
body.fwh-shell .table tbody td { line-height:1.5; }
body.fwh-shell .fwh-footer-row { flex-wrap:wrap; gap:10px; }
body.fwh-shell :is(a, button, input, select, textarea):focus-visible {
  outline:2px solid #147d44; outline-offset:3px;
}
body.fwh-shell .fwh-topbar .dropdown-menu { z-index:1055; }

/* Dense top bars collapse optional controls before displacing core navigation. */
@media (max-width:1690px) and (min-width:1181px) {
  body.fwh-shell .fwh12-quicklinks { display:none !important; }
}
@media (max-width:1520px) and (min-width:1181px) {
  body.fwh-shell .fwh-search-wrap { display:none !important; }
  body.fwh-shell .fwh-user-copy { display:none; }
  body.fwh-shell .fwh-brand-link { flex-basis:210px; }
}
@media (max-width:1300px) and (min-width:1181px) {
  body.fwh-shell .fwh-brand-link { flex-basis:166px; }
  body.fwh-shell .fwh-brand-context { display:none; }
  body.fwh-shell .fwh-global-tabs > a, body.fwh-shell .fwh-global-tab { padding-inline:7px; font-size:.78rem; }
}
/* Both client and administrator shells switch to an off-canvas navigation at 1180px. */
@media (max-width:1180px) {
  body.fwh-shell .fwh-topbar-inner { gap:10px; }
  body.fwh-shell .fwh-menu-button { display:inline-flex !important; flex-shrink:0; }
  body.fwh-shell .fwh-global-tabs, body.fwh-shell .fwh12-quicklinks,
  body.fwh-shell .fwh-search-wrap { display:none !important; }
  body.fwh-shell .fwh-brand-link { flex:0 1 auto; min-width:0; width:auto; }
  body.fwh-shell .fwh-brand-context { display:none; }
  body.fwh-shell .fwh-main { margin-left:0 !important; }
  body.fwh-shell .fwh-sidebar { transform:translateX(-105%); box-shadow:20px 0 45px rgba(12,42,57,.18); }
  body.fwh-nav-open .fwh-sidebar { transform:translateX(0); }
  body.fwh-nav-open .fwh-mobile-backdrop { opacity:1; visibility:visible; }
}
@media (max-width:1050px) {
  body.fwh-shell .fwh-dashboard-grid { grid-template-columns:minmax(0,1fr); }
  body.fwh-shell .fwh-kpi-grid, body.fwh-shell.fwh-admin .fwh-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.fwh-shell .fwh12-dashboard-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:650px) {
  body.fwh-shell .fwh-content { padding:19px 12px 28px; }
  body.fwh-shell .fwh-topbar-inner { padding-inline:8px; gap:4px; }
  body.fwh-shell .fwh-brand-link img { width:clamp(104px,27vw,132px); }
  body.fwh-shell .fwh-topbar-actions { gap:0; margin-left:auto; }
  body.fwh-shell .fwh-topbar-actions .fwh-icon-button { width:36px; }
  body.fwh-shell .fwh-user-button { padding-inline:3px; }
  body.fwh-shell .fwh-user-copy { display:none; }
  body.fwh-shell .fwh-page-head { align-items:stretch; gap:12px; }
  body.fwh-shell .fwh-page-head > .d-flex { width:100%; }
  body.fwh-shell .fwh-page-head > .d-flex > .btn { flex:1 1 auto; }
  body.fwh-shell .fwh-kpi { padding:13px; min-height:116px; }
  body.fwh-shell .fwh-kpi-value { font-size:1.4rem; }
  body.fwh-shell .fwh-kpi-meta { font-size:.72rem; }
  body.fwh-shell .fwh12-dashboard-links { gap:9px; }
  body.fwh-shell .fwh12-dashboard-links > a { min-height:70px; padding:11px; }
  body.fwh-shell .fwh12-dashboard-links .fwh12-action-icon { flex-basis:34px; width:34px; height:34px; }
  body.fwh-shell .fwh12-dashboard-links > a > i:last-child { display:none; }
}
@media (max-width:420px) {
  body.fwh-shell .fwh12-dashboard-links { grid-template-columns:1fr; }
  body.fwh-shell .fwh-kpi-grid, body.fwh-shell.fwh-admin .fwh-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.fwh-shell .fwh-kpi-label { font-size:.66rem; }
}

/* Live resource monitoring — scoped to its own view. */
.fwh142-monitor { min-width:0; display:grid; gap:22px; padding-bottom:8px; }
.fwh142-page-head { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:20px; }
.fwh142-page-heading { flex:1 1 340px; min-width:0; }
.fwh142-page-heading .fwh-breadcrumb { margin-bottom:8px; }
.fwh142-page-heading h1 { font-size:clamp(1.55rem,1.5vw + .7rem,2rem); font-weight:800; color:var(--fwh142-ink); letter-spacing:-.032em; line-height:1.18; margin:0 0 8px; }
.fwh142-page-heading p { font-size:.89rem; color:var(--fwh142-muted); margin:0; max-width:70ch; }
.fwh142-monitor-check { display:grid; justify-items:start; gap:6px; }
.fwh142-monitor-check-status { display:inline-flex; gap:8px; align-items:center; font-size:.79rem; line-height:1.4; font-weight:750; padding:8px 11px; border-radius:9px; }
.fwh142-monitor-check-status.is-stale { background:#fff1d5; border:1px solid #ead39d; color:#794900; }
.fwh142-monitor-check-status.is-current { background:#e8f7ed; border:1px solid #b5dfc2; color:#135d2b; }
.fwh142-monitor-check-time { font-size:.75rem; color:var(--fwh142-muted); }
.fwh142-monitor-check-time time { color:var(--fwh142-ink); font-weight:700; }
.fwh142-ops-notice { display:flex; gap:14px; align-items:flex-start; background:#fffaee; border:1px solid #f0deaf; border-radius:12px; padding:14px 17px; color:#6b4a12; }
.fwh142-ops-notice > i { margin-top:3px; font-size:1.05rem; }
.fwh142-ops-notice strong { display:block; font-size:.84rem; color:#65420b; }
.fwh142-ops-notice p { margin:3px 0 0; color:#765927; font-size:.80rem; line-height:1.5; }
.fwh142-section-label { display:flex; flex-wrap:wrap; align-items:baseline; gap:10px; margin-bottom:11px; }
.fwh142-section-label h2 { font-size:.96rem; margin:0; font-weight:800; color:var(--fwh142-ink); }
.fwh142-section-label span { font-size:.76rem; color:var(--fwh142-muted); }
.fwh142-health-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.fwh142-health-stat { background:#fff; min-width:0; padding:17px 18px 15px; border:1px solid var(--fwh142-line); border-radius:14px; box-shadow:var(--fwh142-shadow); border-top:3px solid #3ca86c; }
.fwh142-health-stat.fwh142-health-warning { border-top-color:#e1a43f; }
.fwh142-health-stat.fwh142-health-critical { border-top-color:#d45f63; }
.fwh142-health-stat.fwh142-health-unknown { border-top-color:#8c9dad; }
.fwh142-health-top { display:flex; justify-content:space-between; gap:8px; align-items:center; color:#506a77; font-size:.77rem; font-weight:750; }
.fwh142-health-top i { font-size:.95rem; color:#299254; }
.fwh142-health-warning .fwh142-health-top i { color:#a16b10; }
.fwh142-health-critical .fwh142-health-top i { color:#be414a; }
.fwh142-health-unknown .fwh142-health-top i { color:#697e8c; }
.fwh142-health-stat > strong { display:block; color:var(--fwh142-ink); font-size:clamp(1.7rem,2.5vw,2.2rem); font-weight:800; letter-spacing:-.04em; line-height:1.2; margin:8px 0; font-variant-numeric:tabular-nums; }
.fwh142-health-description { display:block; min-height:2.6em; font-size:.73rem; line-height:1.35; color:var(--fwh142-muted); }
.fwh142-data-panel { overflow:hidden; border-radius:14px; border:1px solid var(--fwh142-line); background:var(--fwh142-surface); box-shadow:var(--fwh142-shadow); }
.fwh142-panel-heading { padding:18px 19px; display:flex; align-items:center; justify-content:space-between; gap:12px; border-bottom:1px solid var(--fwh142-line); }
.fwh142-panel-heading h2 { display:flex; align-items:center; gap:9px; margin:0 0 4px; font-size:.99rem; font-weight:800; color:var(--fwh142-ink); }
.fwh142-panel-heading h2 i { color:var(--fwh142-green); }
.fwh142-panel-heading p { margin:0; color:var(--fwh142-muted); font-size:.79rem; }
.fwh142-record-count { color:#527080; white-space:nowrap; font-size:.75rem; font-weight:750; background:#f1f6f7; padding:6px 9px; border-radius:8px; }
.fwh142-table-region { overflow-x:auto; border-radius:0 !important; }
.fwh142-table { margin:0; min-width:660px; width:100%; }
.fwh142-table > thead > tr > th { background:#f4f8f9 !important; color:#55707e !important; font-size:.70rem !important; font-weight:800; letter-spacing:.055em; text-transform:uppercase; border-color:#e2ebed; padding:12px 17px !important; }
.fwh142-table > tbody > tr > td { padding:15px 17px !important; vertical-align:middle; color:#233f4d; border-color:#edf2f4; font-size:.84rem; }
.fwh142-table tbody tr:last-child td { border-bottom:0; }
.fwh142-table tbody tr:hover { background:#f9fcfc; }
.fwh142-table td strong { display:block; font-weight:750; color:#17394b; overflow-wrap:anywhere; }
.fwh142-cell-subtext { display:block; color:#657d88; font-size:.76rem; line-height:1.4; margin-top:3px; overflow-wrap:anywhere; }
.fwh142-muted { color:#617985; font-size:.79rem; }
.fwh142-numeric { font-variant-numeric:tabular-nums; }
.fwh142-table-status { display:inline-block; border:1px solid #e0e8eb; background:#f6f8f9; color:#485f6e; font-size:.76rem; padding:5px 9px; border-radius:7px; }
.fwh142-capacity { min-width:170px; display:flex; align-items:center; gap:11px; }
.fwh142-capacity > strong { font-size:.77rem; min-width:42px; text-align:right; font-variant-numeric:tabular-nums; }
.fwh142-capacity-track { flex:1; height:7px; background:#e7eff1; border-radius:100px; overflow:hidden; }
.fwh142-capacity-track > span { display:block; height:100%; background:#32a263; border-radius:inherit; }
.fwh142-capacity-track > span.is-warning { background:#dca137; }
.fwh142-capacity-track > span.is-critical { background:#d45f63; }
.fwh142-health-chip { display:inline-flex; white-space:nowrap; align-items:center; gap:6px; border:1px solid #cbe6d1; background:#ecf9ef; color:#15602e; border-radius:8px; padding:5px 8px; font-size:.75rem; font-weight:750; }
.fwh142-health-chip.is-warning { color:#765006; border-color:#f1daa8; background:#fff6e5; }
.fwh142-health-chip.is-critical { color:#a32836; border-color:#f1c9cf; background:#fff0f1; }
.fwh142-health-chip.is-unknown { color:#4c6575; border-color:#dce5e8; background:#f2f6f7; }
.fwh142-measurement { display:block; font-weight:750; white-space:nowrap; font-variant-numeric:tabular-nums; }
.fwh142-measurement > span { color:#607783; font-weight:500; }
.fwh142-monitor-tools { display:flex; align-items:end; flex-wrap:wrap; padding:14px 19px; gap:12px; border-bottom:1px solid var(--fwh142-line); }
.fwh142-filter-field { display:grid; gap:5px; min-width:0; flex:1 1 240px; font-size:.73rem; font-weight:750; color:#476270; }
.fwh142-filter-field.fwh142-filter-status { flex:0 1 190px; }
.fwh142-filter-field :is(input,select) { width:100%; min-height:39px; font-size:.81rem; font-weight:500; color:#1e4050; border-radius:9px; border:1px solid #cedee2; background:#fff; padding:8px 11px; }
.fwh142-input-icon { position:relative; }
.fwh142-input-icon i { position:absolute; left:12px; top:50%; transform:translateY(-50%); color:#8097a1; }
.fwh142-input-icon input { padding-left:36px !important; }
.fwh142-filter-results { margin-left:auto; padding-bottom:8px; white-space:nowrap; font-size:.74rem; color:#607a85; }
.fwh142-empty-table { padding:35px 18px !important; text-align:center; }
.fwh142-empty-table > i { display:block; color:#91a8b2; font-size:1.5rem; margin-bottom:10px; }
.fwh142-empty-table > strong { display:block; color:#284958; font-size:.88rem; }
.fwh142-empty-table > span { display:block; color:#738b95; font-size:.79rem; margin-top:3px; }
.fwh142-monitor [hidden] { display:none !important; }
@media (max-width:1050px) {
  .fwh142-health-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
  .fwh142-monitor { gap:17px; }
  .fwh142-page-head { gap:12px; }
  .fwh142-health-grid { gap:9px; }
  .fwh142-health-stat { padding:13px 12px; }
  .fwh142-health-top { font-size:.70rem; }
  .fwh142-panel-heading { align-items:flex-start; flex-wrap:wrap; padding:14px; }
  .fwh142-monitor-tools { padding:12px 14px; gap:10px; }
  .fwh142-filter-field.fwh142-filter-status { flex:1 1 100%; }
  .fwh142-filter-results { margin-left:0; padding-bottom:0; }
}
@media (prefers-reduced-motion:reduce) {
  body.fwh-shell .fwh-sidebar, body.fwh-shell .fwh12-dashboard-links > a { transition:none !important; }
}
