/* 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 ONLY the glance iframe fill the page */ /* ========================================================= */ /* Full width on Glance tab */ body.tab-glance main { max-width: none !important; margin: 0 !important; padding-left: 12px !important; padding-right: 12px !important; } /* Single-column layout on Glance tab */ body.tab-glance .service-grid, body.tab-glance .services { grid-template-columns: 1fr !important; } /* Adjust this number if you want more/less height */ body.tab-glance { --glance-vh: calc(100vh - 170px); } /* Make the card containing the Glance iframe tall and clean */ body.tab-glance .service-card:has(iframe[name="glance"]), body.tab-glance .service-card:has(iframe[src*="home.netgrimoire.com"]) { grid-column: 1 / -1 !important; height: var(--glance-vh) !important; min-height: var(--glance-vh) !important; overflow: hidden !important; padding: 0 !important; border-radius: 12px !important; position: relative !important; /* required for absolute iframe fill */ } /* Some Homepage themes add an inner wrapper; make it fill the card */ body.tab-glance .service-card:has(iframe[name="glance"]) .service-card-content, body.tab-glance .service-card:has(iframe[src*="home.netgrimoire.com"]) .service-card-content, body.tab-glance .service-card:has(iframe[name="glance"]) .widget, body.tab-glance .service-card:has(iframe[src*="home.netgrimoire.com"]) .widget { height: 100% !important; min-height: 100% !important; padding: 0 !important; background: transparent !important; /* don’t paint over the iframe */ } /* Fill the entire card with the iframe */ body.tab-glance iframe[name="glance"], body.tab-glance iframe[src*="home.netgrimoire.com"] { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; border: 0 !important; display: block !important; background: transparent !important; } /* Fallback if :has() isn’t supported */ @supports not selector(.service-card:has(iframe)) { body.tab-glance iframe[name="glance"], body.tab-glance iframe[src*="home.netgrimoire.com"] { width: 100% !important; height: var(--glance-vh) !important; } }