/* 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 */ /* ----------------------------- */ /* Let more background show through */ #page-wrapper { background-color: rgba(0, 0, 0, 0.40); } /* Make service cards and widgets pop (slightly transparent) */ .service-card, .widget { background: rgba(20, 20, 20, 0.70) !important; backdrop-filter: blur(2px); border-radius: 10px; } /* ----------------------------- */ /* PNCHarris: narrow centered column */ /* ----------------------------- */ /* Constrain the real content container */ body.tab-pncharris main { max-width: 900px; margin: 0 auto !important; padding-left: 16px; padding-right: 16px; } /* Constrain sections/groups too */ body.tab-pncharris section, body.tab-pncharris .group { max-width: 900px; margin-left: auto !important; margin-right: auto !important; } /* Relax stretching on PNCHarris */ 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 */ /* Targets ONLY iframe widget with name="glance" */ /* ----------------------------- */ /* Use full width on Glance tab */ body.tab-glance main { max-width: none !important; margin: 0 !important; padding-left: 12px !important; padding-right: 12px !important; } /* Force a single wide column on Glance tab */ body.tab-glance .service-grid, body.tab-glance .services { grid-template-columns: 1fr !important; } /* Prefer modern selector to expand only the card containing the glance iframe */ body.tab-glance .service-card:has(iframe[name="glance"]) { grid-column: 1 / -1 !important; max-width: 100% !important; height: calc(100vh - 160px) !important; /* adjust (140-200px) if needed */ overflow: hidden !important; padding: 0 !important; border-radius: 12px !important; } /* Make the glance iframe fill its container */ body.tab-glance iframe[name="glance"] { width: 100% !important; height: 100% !important; border: 0 !important; display: block !important; } /* Fallback for older browsers/builds that don't support :has() (Still only targets iframe[name="glance"]) */ @supports not selector(.service-card:has(iframe)) { body.tab-glance iframe[name="glance"] { height: calc(100vh - 160px) !important; /* adjust (140-200px) if needed */ } }