154 lines
4.3 KiB
CSS
Executable file
154 lines
4.3 KiB
CSS
Executable file
/* custom.css (drop-in replacement) */
|
||
|
||
/* ----------------------------- */
|
||
/* Base background behavior */
|
||
/* ----------------------------- */
|
||
body {
|
||
background-size: cover !important;
|
||
background-position: center center !important;
|
||
background-attachment: fixed !important;
|
||
}
|
||
|
||
/* ----------------------------- */
|
||
/* Per-tab backgrounds */
|
||
/* ----------------------------- */
|
||
body.tab-glance {
|
||
background-image: url("/images/bg-glance.jpg") !important;
|
||
}
|
||
|
||
body.tab-pncharris {
|
||
background-image: url("/images/pncharris-bg.png") !important;
|
||
}
|
||
|
||
body.tab-netgrimoire {
|
||
background-image: url("/images/Netgrimoire-bg.png") !important;
|
||
}
|
||
|
||
body.tab-wasted-bandwidth {
|
||
background-image: url("/images/Wasted-bandwidth-bg.png") !important;
|
||
}
|
||
|
||
body.tab-nucking-futz {
|
||
background-image: url("/images/Nucking-futz-bg.png") !important;
|
||
}
|
||
|
||
/* ----------------------------- */
|
||
/* Readability / tone-down layer */
|
||
/* ----------------------------- */
|
||
#page-wrapper {
|
||
background-color: rgba(0, 0, 0, 0.40);
|
||
}
|
||
|
||
.service-card,
|
||
.widget {
|
||
background: rgba(20, 20, 20, 0.70) !important;
|
||
backdrop-filter: blur(2px);
|
||
border-radius: 10px;
|
||
}
|
||
|
||
/* ----------------------------- */
|
||
/* PNCHarris: narrow centered column */
|
||
/* ----------------------------- */
|
||
body.tab-pncharris main {
|
||
max-width: 900px;
|
||
margin: 0 auto !important;
|
||
padding-left: 16px;
|
||
padding-right: 16px;
|
||
}
|
||
|
||
body.tab-pncharris section,
|
||
body.tab-pncharris .group {
|
||
max-width: 900px;
|
||
margin-left: auto !important;
|
||
margin-right: auto !important;
|
||
}
|
||
|
||
body.tab-pncharris .service-card,
|
||
body.tab-pncharris .widget {
|
||
width: auto !important;
|
||
max-width: 100% !important;
|
||
}
|
||
|
||
/* ========================================================= */
|
||
/* GLANCE TAB: make the Glance iframe fill most of the page */
|
||
/* ========================================================= */
|
||
|
||
/* Give the tab full width */
|
||
body.tab-glance main {
|
||
max-width: none !important;
|
||
margin: 0 !important;
|
||
padding-left: 12px !important;
|
||
padding-right: 12px !important;
|
||
}
|
||
|
||
/* Force single column layout on Glance tab */
|
||
body.tab-glance .service-grid,
|
||
body.tab-glance .services {
|
||
grid-template-columns: 1fr !important;
|
||
}
|
||
|
||
/* Helper: compute "available" height under the header/nav.
|
||
If your header is taller/shorter, tweak 170px to 140–220px. */
|
||
body.tab-glance {
|
||
--glance-vh: calc(100vh - 170px);
|
||
}
|
||
|
||
/* Expand ANY card on the Glance tab that contains our Glance iframe */
|
||
body.tab-glance .service-card:has(iframe[name="glance"]),
|
||
body.tab-glance .service-card:has(iframe[src*="home.netgrimoire.com"]),
|
||
body.tab-glance .widget:has(iframe[name="glance"]),
|
||
body.tab-glance .widget:has(iframe[src*="home.netgrimoire.com"]) {
|
||
grid-column: 1 / -1 !important;
|
||
max-width: 100% !important;
|
||
|
||
/* The important part: make the container tall */
|
||
height: var(--glance-vh) !important;
|
||
min-height: var(--glance-vh) !important;
|
||
|
||
/* Remove padding that can reduce the iframe size */
|
||
padding: 0 !important;
|
||
overflow: hidden !important;
|
||
|
||
border-radius: 12px !important;
|
||
}
|
||
|
||
/* Some Homepage themes wrap widget contents; force them tall too */
|
||
body.tab-glance .service-card:has(iframe[src*="home.netgrimoire.com"]) > *,
|
||
body.tab-glance .service-card:has(iframe[name="glance"]) > *,
|
||
body.tab-glance .widget:has(iframe[src*="home.netgrimoire.com"]) > *,
|
||
body.tab-glance .widget:has(iframe[name="glance"]) > * {
|
||
height: 100% !important;
|
||
min-height: 100% !important;
|
||
}
|
||
|
||
/* Make the iframe itself fill its container */
|
||
body.tab-glance iframe[name="glance"],
|
||
body.tab-glance iframe[src*="home.netgrimoire.com"] {
|
||
width: 100% !important;
|
||
height: 100% !important;
|
||
min-height: var(--glance-vh) !important;
|
||
border: 0 !important;
|
||
display: block !important;
|
||
}
|
||
|
||
/* Fallback for builds/browsers without :has() support:
|
||
Still target by iframe src and force height directly. */
|
||
@supports not selector(.service-card:has(iframe)) {
|
||
body.tab-glance iframe[src*="home.netgrimoire.com"],
|
||
body.tab-glance iframe[name="glance"] {
|
||
width: 100% !important;
|
||
height: var(--glance-vh) !important;
|
||
min-height: var(--glance-vh) !important;
|
||
border: 0 !important;
|
||
display: block !important;
|
||
}
|
||
|
||
/* Also loosen common wrapper constraints */
|
||
body.tab-glance .service-card,
|
||
body.tab-glance .widget {
|
||
height: var(--glance-vh) !important;
|
||
min-height: var(--glance-vh) !important;
|
||
overflow: hidden !important;
|
||
padding: 0 !important;
|
||
}
|
||
}
|