From 3bb4792635b25d30e2eeb81d38be9b40736488dc Mon Sep 17 00:00:00 2001 From: Jared Vititoe Date: Sat, 28 Mar 2026 13:30:00 -0400 Subject: [PATCH] Fix header overlap, is-hidden missing globally, and CreateTicketView CSS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - base.css: add .lt-main.lt-container combined selector (specificity 0,2,0) to prevent responsive .lt-container padding shorthand from overriding the fixed-header clearance padding-top — affected all viewports < 1280px - base.css: add .is-hidden { display: none !important } globally; it was only defined in ticket.css so dashboard ticketPreview popup rendered as a green box at 0,0 on page load instead of being hidden - CreateTicketView.php: add dashboard.css to pageStyles so create-ticket- meta-grid, lt-form-hint, visibility-groups-list, duplicate-list classes are available (they were undefined when only ticket.css was loaded) Co-Authored-By: Claude Sonnet 4.6 --- assets/css/base.css | 13 +++++++++++++ views/CreateTicketView.php | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/assets/css/base.css b/assets/css/base.css index c2385a4..b3468ac 100644 --- a/assets/css/base.css +++ b/assets/css/base.css @@ -366,6 +366,13 @@ hr { width: 100%; min-width: 0; /* prevent flex overflow on very small viewports */ } +/* When both lt-main and lt-container are on the same element, the lt-container + shorthand `padding` overrides the lt-main `padding-top` in responsive breakpoints + (same cascade specificity, later rule wins). The combined selector has higher + specificity (0,2,0 vs 0,1,0) and always wins regardless of source order. */ +.lt-main.lt-container { + padding-top: calc(var(--header-height) + var(--space-lg)); +} .lt-layout { display: flex; @@ -2076,6 +2083,7 @@ select option:checked { .lt-main { padding-top: calc(50px + var(--space-md)); } .lt-container { padding: var(--space-md); } + .lt-main.lt-container { padding-top: calc(var(--header-height) + var(--space-md)); } .lt-header { padding: 0 var(--space-md); } .lt-brand-subtitle { display: none; } @@ -2176,6 +2184,7 @@ select option:checked { .lt-main { padding-top: calc(46px + var(--space-sm)); } .lt-container { padding: var(--space-sm); } + .lt-main.lt-container { padding-top: calc(var(--header-height) + var(--space-sm)); } .lt-stats-grid { grid-template-columns: 1fr 1fr; gap: var(--space-xs); } .lt-stat-card { padding: var(--space-xs) var(--space-sm); } .lt-stat-value { font-size: 1.4rem; } @@ -2272,6 +2281,7 @@ select option:checked { .lt-stats-grid { grid-template-columns: repeat(6, 1fr); } .lt-grid-4 { grid-template-columns: repeat(4, 1fr); } .lt-container { padding: var(--space-xl) var(--space-2xl); } + .lt-main.lt-container { padding-top: calc(var(--header-height) + var(--space-xl)); } } @@ -2383,6 +2393,9 @@ select option:checked { border: 0; } +/* Global visibility utility — used by JS and all views */ +.is-hidden { display: none !important; } + /* Cursor blink */ .lt-cursor::after { content: '█'; diff --git a/views/CreateTicketView.php b/views/CreateTicketView.php index e5f1eec..fe9e45b 100644 --- a/views/CreateTicketView.php +++ b/views/CreateTicketView.php @@ -10,7 +10,7 @@ require_once __DIR__ . '/../middleware/CsrfMiddleware.php'; $nonce = SecurityHeadersMiddleware::getNonce(); $pageTitle = 'New Ticket'; $activeNav = 'dashboard'; -$pageStyles = ['/assets/css/ticket.css?v=20260327']; +$pageStyles = ['/assets/css/dashboard.css?v=20260327', '/assets/css/ticket.css?v=20260327']; $pageScripts = [ '/assets/js/keyboard-shortcuts.js?v=20260327', ];