diff --git a/assets/css/base.css b/assets/css/base.css index f13aa12..8fc27bc 100644 --- a/assets/css/base.css +++ b/assets/css/base.css @@ -359,6 +359,10 @@ hr { .lt-main { padding-top: calc(var(--header-height) + var(--space-lg)); flex: 1; + /* When body is a flex column, margin:0 auto from .lt-container would prevent + stretch. Force full width so max-width+auto-margin centering still works. */ + width: 100%; + min-width: 0; /* prevent flex overflow on very small viewports */ } .lt-layout { @@ -1211,6 +1215,7 @@ select option:checked { .lt-badge-green { color: var(--accent-green); } .lt-badge-amber { color: var(--accent-amber); } .lt-badge-red { color: var(--accent-red); } +.lt-badge-sm { font-size: 0.52rem; padding: 0.05rem 0.3rem; letter-spacing: 0.08em; } /* Status + priority badge variants (dark-mode base) */ .lt-badge-open { color: var(--accent-green); background: rgba(0,255,136,0.08); border-color: rgba(0,255,136,0.35); text-shadow: var(--glow-green); } @@ -3192,6 +3197,11 @@ input[type="range"].lt-range::-moz-range-thumb { .lt-kv-val--green { color: var(--accent-green); } .lt-kv-val--red { color: var(--accent-red); } +/* v1.2 aliases: lt-kv-row wraps label+value as a transparent grid wrapper */ +.lt-kv-row { display: contents; } +.lt-kv-label { padding: var(--space-xs) var(--space-md) var(--space-xs) 0; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.05em; font-size: 0.7rem; white-space: nowrap; border-right: 1px solid var(--border-dim); } +.lt-kv-value { padding: var(--space-xs) 0 var(--space-xs) var(--space-md); color: var(--text-primary); } + /* ---------------------------------------------------------------- 43. HERO / BANNER SECTION diff --git a/views/TicketView.php b/views/TicketView.php index 841094d..9dab107 100644 --- a/views/TicketView.php +++ b/views/TicketView.php @@ -71,12 +71,12 @@ $visUserModel = new UserModel($conn); $allAvailableGroups = $visUserModel->getAllGroups(); // JSON-encode ticket fields for the inline script -$json_ticket_id = json_encode($ticket['ticket_id']); -$json_title = json_encode($ticket['title']); -$json_status = json_encode($ticket['status']); -$json_priority = json_encode($ticket['priority']); -$json_category = json_encode($ticket['category']); -$json_type = json_encode($ticket['type']); +$json_ticket_id = json_encode($ticket['ticket_id'], JSON_HEX_TAG); +$json_title = json_encode($ticket['title'], JSON_HEX_TAG); +$json_status = json_encode($ticket['status'], JSON_HEX_TAG); +$json_priority = json_encode($ticket['priority'], JSON_HEX_TAG); +$json_category = json_encode($ticket['category'], JSON_HEX_TAG); +$json_type = json_encode($ticket['type'], JSON_HEX_TAG); $pageInlineScript = << @@ -62,39 +62,30 @@ $_lt_navActive = $activeNav ?? 'dashboard';

   
 
-  
-  
+  
+