/* ============================================================================
   GP THEME  v2  — white / green / black

   WHY v2: in v1 the sidebar stayed black while its text turned black, making
   the menu invisible. Cause: pages_layout.php includes head.php (where this
   file is linked) BEFORE header.php and left-sidebar.php, and those two carry
   inline <style> blocks using !important. Equal specificity + both !important
   means the LATER rule wins, so the inline block beat this file every time.

   Fix: every rule that has to beat an inline block is prefixed `html body`.
   That is specificity 0,0,3 against the inline block's 0,0,1, so this file
   wins regardless of source order.

   Reference for the look: the original product deck — white sidebar, logo
   top-left, plain tables, soft rounded cards, light surfaces throughout.
   ========================================================================== */

:root{
  --t-green:    #2E9E1F;   /* the brand green from the deck               */
  --t-green-dk: #237818;
  --t-green-lt: #EFF8ED;
  --t-green-bd: #C5E4BE;

  --t-text:     #1A1A1A;
  --t-text-2:   #4A4A4A;
  --t-text-3:   #7A7A7A;

  --t-bg:       #FFFFFF;
  --t-bg-2:     #F4F6F4;
  --t-line:     #E2E6E2;

  --t-warn:     #8A6100;
  --t-warn-bg:  #FDF6E6;
  --t-stop:     #A32A1F;
  --t-stop-bg:  #FBEDEC;

  --t-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
            "Helvetica Neue", Arial, sans-serif;
  --t-radius: 6px;
}

/* ============================================================================
   1. FONT AND TEXT SIZE — everywhere, including the inline-styled shells
   ========================================================================== */

html body, html body *,
html body .left-side-bar, html body .header,
html body .gp-nav-link, html body .gp-brand-name {
  font-family: var(--t-font) !important;
}

html body { background: var(--t-bg-2) !important; color: var(--t-text) !important; }

/* ----------------------------------------------------------------------------
   TOKENS ON :root

   Most screens scope their palette to a namespace class, but start_audit.php
   and login.php put the same token names on :root instead. A rule targeting
   only the namespace classes never reaches them, which is why the audit
   screen kept the old dark look. These declarations are !important and the
   view's are not, so these win wherever they land in the cascade.
---------------------------------------------------------------------------- */
html:root, :root{
  --ink:    #1A1A1A !important;
  --line:   #E2E6E2 !important;
  --dim:    #4A4A4A !important;
  --faint:  #7A7A7A !important;
  --green:  #2E9E1F !important;
  --amber:  #8A6100 !important;
  --red:    #A32A1F !important;
  --blue:   #2E9E1F !important;
  --purple: #4A4A4A !important;
}

/* ----------------------------------------------------------------------------
   TEXT SIZE

   The old design ran small — 13px body, 9.5px labels, 11px captions. Scaled
   up across the board for legibility, which is also one of the things that
   made it read as the previous product.
---------------------------------------------------------------------------- */
html body{ font-size: 15px !important; line-height: 1.55 !important; }

html body p, html body td, html body li, html body label,
html body input, html body select, html body textarea,
html body .form-control, html body a{ font-size: 15px !important; }

html body th{ font-size: 14px !important; }
html body h1{ font-size: 24px !important; }
html body h2{ font-size: 19px !important; }
html body h3{ font-size: 17px !important; }

html body .gp-nav-link{ font-size: 15px !important; }
html body .gp-section{ font-size: 12.5px !important; }
html body .gp-brand-name{ font-size: 16px !important; }
html body .gp-hdr-page{ font-size: 17px !important; }

/* anything the old design set below 12px is lifted to a readable floor */
html body [class$="-kl"], html body [class$="-ks"], html body [class$="-sub"],
html body [class$="-meta"], html body [class$="-cl"], html body [class$="-sl"],
html body [class$="-count"], html body .tag, html body [class^="tag-"]{
  font-size: 13px !important;
}
html body [class$="-kv"], html body [class$="-cv"], html body [class$="-sv"]{
  font-size: 26px !important;
}

/* ============================================================================
   2. SIDEBAR — white panel, black text, green active state

   Every rule here is `html body` prefixed. Without that the inline block in
   left-sidebar.php wins and the menu disappears.
   ========================================================================== */

html body .left-side-bar{
  background: var(--t-bg) !important;
  border-right: 1px solid var(--t-line) !important;
}

html body .gp-brand{
  background: var(--t-bg) !important;
  border-bottom: 1px solid var(--t-line) !important;
}
html body .gp-brand-name{ color: var(--t-text) !important; font-weight: 600 !important; }

/* the GP square is styled inline on the element itself */
html body .gp-brand div[style*="DC2626"],
html body .gp-brand div[style*="#DC2626"]{
  background: var(--t-green) !important;
  border-radius: var(--t-radius) !important;
}

html body .gp-brand-close{ background: transparent !important; color: var(--t-text-3) !important; }
html body .gp-brand-close:hover{ background: var(--t-bg-2) !important; color: var(--t-text) !important; }

html body .gp-role-badge{
  background: var(--t-green-lt) !important;
  border: 1px solid var(--t-green-bd) !important;
  color: var(--t-green-dk) !important;
  border-radius: var(--t-radius) !important;
  font-size: 11px !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
html body .gp-role-dot{ background: var(--t-green) !important; }

html body .gp-section{
  color: var(--t-text-3) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

/* THE CRITICAL PAIR — white panel above, dark text here */
html body .gp-nav-link{
  color: var(--t-text) !important;
  font-weight: 500 !important;
  background: transparent !important;
}
html body .gp-nav-link:hover{
  background: var(--t-bg-2) !important;
  color: var(--t-text) !important;
}
html body .gp-nav-icon{ color: var(--t-text-3) !important; }

html body .gp-nav-link.active{
  background: var(--t-green-lt) !important;
  color: var(--t-green-dk) !important;
  font-weight: 600 !important;
}
html body .gp-nav-link.active .gp-nav-icon{ color: var(--t-green-dk) !important; }
html body .gp-nav-link.active::before{ background: var(--t-green) !important; }

html body .gp-submenu .gp-nav-link{ color: var(--t-text-2) !important; }
html body .gp-submenu .gp-nav-link:hover{ background: var(--t-bg-2) !important; color: var(--t-text) !important; }
html body .gp-submenu .gp-nav-link.active{
  background: var(--t-green-lt) !important;
  color: var(--t-green-dk) !important;
}

html body .gp-caret, html body .gp-caret-icon{ color: var(--t-text-3) !important; }

html body .gp-footer{ border-top: 1px solid var(--t-line) !important; background: var(--t-bg) !important; }
html body .gp-footer-av{
  background: var(--t-green-lt) !important;
  color: var(--t-green-dk) !important;
  border-radius: var(--t-radius) !important;
}
html body .gp-footer-name{ color: var(--t-text) !important; }
html body .gp-footer-role{ color: var(--t-text-3) !important; }
html body .gp-logout{ color: var(--t-text-3) !important; }
html body .gp-logout:hover{ color: var(--t-green) !important; }
html body .gp-menu-scroll::-webkit-scrollbar-thumb{ background: var(--t-line) !important; }

/* ============================================================================
   3. HEADER — also inline-styled, also needs the prefix
   ========================================================================== */

html body .header{
  background: var(--t-bg) !important;
  border-bottom: 1px solid var(--t-line) !important;
  box-shadow: none !important;
}
html body .gp-hdr-page{ color: var(--t-text) !important; font-weight: 600 !important; }
html body .gp-hdr-crumb{ color: var(--t-text-3) !important; }
html body .gp-hbg, html body .gp-notif-btn, html body .gp-user-btn{ color: var(--t-text-2) !important; }
html body .gp-hbg:hover, html body .gp-notif-btn:hover{
  color: var(--t-green) !important; background: var(--t-bg-2) !important;
}
html body .gp-notif-badge{ background: var(--t-stop) !important; }
html body .gp-user-av{
  background: var(--t-green-lt) !important;
  color: var(--t-green-dk) !important;
  border-radius: 50% !important;
}
html body .gp-notif-drop, html body .gp-user-drop{
  border: 1px solid var(--t-line) !important;
  border-radius: var(--t-radius) !important;
  box-shadow: 0 4px 16px rgba(0,0,0,.08) !important;
}
html body .gp-notif-item:hover, html body .gp-user-drop-item:hover{ background: var(--t-bg-2) !important; }

/* ============================================================================
   4. TOKEN OVERRIDE — retints the fifteen token-based screens at once
   ========================================================================== */

html body .aa, html body .ad, html body .af, html body .ah, html body .db,
html body .pf, html body .rg, html body .uf, html body .um, html body .va {
  --ink:    var(--t-text)   !important;
  --line:   var(--t-line)   !important;
  --dim:    var(--t-text-2) !important;
  --faint:  var(--t-text-3) !important;
  --green:  var(--t-green)  !important;
  --amber:  var(--t-warn)   !important;
  --red:    var(--t-stop)   !important;
  --blue:   var(--t-green)  !important;
  --purple: var(--t-text-2) !important;
  --bg:     var(--t-bg-2)   !important;
  --white:  var(--t-bg)     !important;
  color: var(--t-text) !important;
}

html body [class$="-top"]{
  background: var(--t-bg) !important;
  border: 1px solid var(--t-line) !important;
  border-radius: var(--t-radius) var(--t-radius) 0 0 !important;
}
html body [class$="-kick"]{
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--t-green) !important;
}
html body [class$="-card"], html body [class$="-kpis"], html body [class$="-kpi"]{
  background: var(--t-bg) !important;
  border-color: var(--t-line) !important;
  border-radius: var(--t-radius) !important;
}
html body [class$="-kv"]{ font-weight: 600 !important; letter-spacing: 0 !important; color: var(--t-text) !important; }
html body [class$="-kl"]{
  font-size: 11.5px !important; font-weight: 600 !important;
  letter-spacing: 0 !important; text-transform: none !important;
  color: var(--t-text-3) !important;
}

/* The dark avatar squares in user lists — black blocks against white */
html body [class$="-av"], html body [class*="-avatar"],
html body .um-av, html body .pf-av, html body .uf-av{
  background: var(--t-green-lt) !important;
  color: var(--t-green-dk) !important;
  border-radius: 50% !important;
  border: 1px solid var(--t-green-bd) !important;
}

/* ============================================================================
   5. TABLES
   ========================================================================== */

html body .ah-t th, html body .aa-t th, html body .rg-t th, html body .um-t th,
html body .ra-t th, html body .va-t th, html body table th{
  background: var(--t-bg-2) !important;
  color: var(--t-text-2) !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  border-bottom: 1px solid var(--t-line) !important;
}
html body table td{ border-bottom: 1px solid var(--t-line) !important; color: var(--t-text) !important; }
html body tbody tr:hover td{ background: var(--t-green-lt) !important; }
html body tr.overdue td{ background: var(--t-bg) !important; }
html body tr.overdue td:first-child{ box-shadow: inset 3px 0 0 var(--t-stop); }

/* ============================================================================
   6. BUTTONS
   ========================================================================== */

html body [class$="-btn"], html body .btn, html body .aa-start,
html body .ah-mini, html body .va-btn, html body .gp-pg button{
  border-radius: var(--t-radius) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

html body .ad-btn, html body .aa-start, html body .si-btn, html body .iv-btn,
html body .va-btn-primary, html body .btn-primary, html body .btn-info,
html body button[type="submit"], html body input[type="submit"],
html body .dsh-go{
  background: var(--t-green) !important;
  border: 1px solid var(--t-green) !important;
  color: #fff !important;
}
html body .ad-btn:hover, html body .aa-start:hover, html body .si-btn:hover,
html body .va-btn-primary:hover, html body .btn-primary:hover,
html body button[type="submit"]:hover, html body .dsh-go:hover{
  background: var(--t-green-dk) !important;
  border-color: var(--t-green-dk) !important;
  color: #fff !important;
}

html body .ghost, html body .va-btn-ghost, html body .btn-secondary{
  background: var(--t-bg) !important;
  border: 1px solid var(--t-line) !important;
  color: var(--t-text) !important;
}
html body .ghost:hover, html body .btn-secondary:hover{
  border-color: var(--t-green) !important;
  color: var(--t-green) !important;
  background: var(--t-green-lt) !important;
}

html body .va-btn-red, html body .btn-danger, html body .ah-mini-del{
  background: var(--t-bg) !important;
  border: 1px solid var(--t-line) !important;
  color: var(--t-stop) !important;
}
html body .va-btn-red:hover, html body .btn-danger:hover, html body .ah-mini-del:hover{
  background: var(--t-stop-bg) !important; border-color: var(--t-stop) !important;
}

html body a{ color: var(--t-green); }
html body a:hover{ color: var(--t-green-dk); }

/* ============================================================================
   7. STATUS CHIPS
   ========================================================================== */

html body .tag, html body [class^="tag-"], html body [class*=" tag-"]{
  border-radius: 20px !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  padding: 3px 10px !important;
  border: 1px solid !important;
}
html body .tag-ok, html body .tag-done{
  background: var(--t-green-lt) !important; border-color: var(--t-green-bd) !important; color: var(--t-green-dk) !important;
}
html body .tag-wait, html body .tag-part, html body .tag-soon{
  background: var(--t-warn-bg) !important; border-color: #E6D9B0 !important; color: var(--t-warn) !important;
}
html body .tag-late, html body .tag-reopen{
  background: var(--t-stop-bg) !important; border-color: #E8C4C0 !important; color: var(--t-stop) !important;
}
html body .tag-open, html body .tag-grey{
  background: var(--t-bg-2) !important; border-color: var(--t-line) !important; color: var(--t-text-2) !important;
}

/* ============================================================================
   8. LOGIN — back to a simple centred card, as in the original

   The current page is a split screen with a dark left panel carrying hero
   copy and metrics. The original was one white card in the middle of the
   page, so the dark half is hidden and the form column takes the full width.
   ========================================================================== */

html body .split{ grid-template-columns: 1fr !important; background: var(--t-bg-2) !important; }
html body .lp{ display: none !important; }          /* the dark hero panel */

html body .rp{
  background: var(--t-bg-2) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 100vh !important;
  padding: 24px !important;
}
html body .rp-logo{ display: flex !important; justify-content: center !important; margin-bottom: 18px !important; }
html body .rp-name{ color: var(--t-text) !important; font-weight: 600 !important; letter-spacing: 0 !important; }
html body .rp-mark, html body .lp-mark{
  background: var(--t-green) !important; border-radius: var(--t-radius) !important;
}

/* the form card */
html body .ff, html body .fw{
  background: var(--t-bg) !important;
  border: 1px solid var(--t-line) !important;
  border-radius: 10px !important;
  box-shadow: 0 2px 10px rgba(0,0,0,.05) !important;
  padding: 30px !important;
  max-width: 400px !important;
  width: 100% !important;
  margin: 0 auto !important;
}
html body .fi{
  background: var(--t-bg) !important;
  border: 1px solid var(--t-line) !important;
  border-radius: var(--t-radius) !important;
  color: var(--t-text) !important;
}
html body .fi:focus{
  border-color: var(--t-green) !important;
  box-shadow: 0 0 0 3px var(--t-green-lt) !important;
  outline: none !important;
}
html body .fsub{
  background: var(--t-green) !important;
  border: 1px solid var(--t-green) !important;
  color: #fff !important;
  border-radius: var(--t-radius) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
html body .fsub:hover{ background: var(--t-green-dk) !important; border-color: var(--t-green-dk) !important; }
html body .flink{ color: var(--t-green) !important; }
html body .al-ok{ background: var(--t-green-lt) !important; border-color: var(--t-green) !important; color: var(--t-green-dk) !important; }
html body .al-err{ background: var(--t-stop-bg) !important; border-color: var(--t-stop) !important; color: var(--t-stop) !important; }
html body .bk{ color: var(--t-text-3) !important; }
html body .bk:hover{ color: var(--t-green) !important; }

/* ============================================================================
   9. FORMS
   ========================================================================== */

html body input[type="text"], html body input[type="email"],
html body input[type="password"], html body input[type="number"],
html body input[type="date"], html body input[type="search"],
html body select, html body textarea,
html body .form-control, html body .custom-select,
html body [class$="-search"], html body [class$="-sel"],
html body [class$="-input"], html body .gp-sel-control{
  border: 1px solid var(--t-line) !important;
  border-radius: var(--t-radius) !important;
  color: var(--t-text) !important;
  background: var(--t-bg) !important;
}
html body input:focus, html body select:focus, html body textarea:focus,
html body .form-control:focus, html body .gp-sel-control:focus{
  border-color: var(--t-green) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px var(--t-green-lt) !important;
}
html body label{ color: var(--t-text-2) !important; font-weight: 500 !important; }

/* ============================================================================
   10. LEGACY STOCK-THEME SCREENS
   ========================================================================== */

html body .card-box, html body .pd-20, html body .card{
  background: var(--t-bg) !important;
  border: 1px solid var(--t-line) !important;
  border-radius: var(--t-radius) !important;
  box-shadow: none !important;
}
html body h1, html body h2, html body h3, html body h4, html body h5{
  color: var(--t-text) !important; font-weight: 600 !important;
}
html body .text-blue, html body .text-primary{ color: var(--t-green) !important; }
html body .bg-blue, html body .bg-primary{ background: var(--t-green) !important; }
html body .breadcrumb{ background: transparent !important; }
html body .dataTables_wrapper .paginate_button.current{
  background: var(--t-green) !important; border-color: var(--t-green) !important; color: #fff !important;
}

/* ============================================================================
   11. SHARED UI LAYER
   ========================================================================== */

html body .gp-toast{ border-radius: var(--t-radius) !important; }
html body .gp-toast-success{ border-left-color: var(--t-green) !important; }
html body .gp-toast-success .gp-toast-ico{ background: var(--t-green) !important; }
html body .gp-toast-error{ border-left-color: var(--t-stop) !important; }
html body .gp-toast-error .gp-toast-ico{ background: var(--t-stop) !important; }
html body .gp-toast-title{ letter-spacing: 0 !important; text-transform: none !important; font-size: 12px !important; }

html body .gp-pager{ border-top: 1px solid var(--t-line) !important; }
html body .gp-pager-per{ letter-spacing: 0 !important; text-transform: none !important; }
html body .gp-pg button.on{ background: var(--t-green) !important; border-color: var(--t-green) !important; color: #fff !important; }
html body .gp-pg button:hover:not(:disabled):not(.gp-gap){ border-color: var(--t-green) !important; color: var(--t-green) !important; }

html body .gp-sel-panel{ border: 1px solid var(--t-line) !important; border-radius: var(--t-radius) !important; }
html body .gp-sel-opt:hover, html body .gp-sel-opt.cur{ background: var(--t-green-lt) !important; }
html body .gp-sel-opt.sel::after{ color: var(--t-green) !important; }
html body .gp-sel-opt mark{ background: var(--t-green-lt) !important; }
html body .gp-sel-chip{ border-radius: 20px !important; background: var(--t-green-lt) !important; border-color: var(--t-green-bd) !important; }

/* ============================================================================
   12. STRICT REMOVAL OF OLD-THEME SIGNATURES

   Colour alone leaves the previous design recognisable. These are the
   remaining structural tells, removed wherever they appear.
   ========================================================================== */

/* Hard 2px near-black rules were used as section dividers throughout. */
html body [style*="border-bottom:2px solid"],
html body [style*="border-top:2px solid"],
html body .sa-header, html body .sa-footer,
html body [class$="-top"], html body [class$="-hd"]{
  border-width: 1px !important;
  border-color: var(--t-line) !important;
}

/* Uppercase micro-labels at wide tracking — the single loudest signature. */
html body [class$="-kick"], html body [class$="-kl"], html body [class$="-cl"],
html body [class$="-sl"], html body [class$="-ks"], html body th,
html body .gp-section, html body .gp-role-badge, html body [class$="-label"]{
  letter-spacing: 0 !important;
  text-transform: none !important;
}

/* Monospace figures. */
html body [style*="JetBrains"], html body [class*="mono"],
html body [style*="monospace"], html body [class$="-count"],
html body [class$="-pg-info"], html body .gp-pager-of{
  font-family: var(--t-font) !important;
}

/* 800/900 display weights with negative tracking. */
html body [style*="font-weight:800"], html body [style*="font-weight:900"],
html body [class$="-kv"], html body [class$="-cv"], html body [class$="-sv"],
html body h1, html body h2{
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

/* Zero-radius everything. */
html body [class$="-card"], html body [class$="-sec"], html body [class$="-box"],
html body [class$="-panel"], html body [class$="-modal"], html body .card-box{
  border-radius: var(--t-radius) !important;
}

/* Any surviving near-black fill becomes a light surface. */
html body [style*="background:#0A0F14"], html body [style*="background: #0A0F14"],
html body [style*="background:#0F2018"]{
  background: var(--t-bg) !important;
  color: var(--t-text) !important;
}

/* Any surviving red fill becomes green, except genuine error states. */
html body [style*="background:#DC2626"]:not([class*="err"]):not([class*="late"]),
html body [style*="background: #DC2626"]:not([class*="err"]):not([class*="late"]){
  background: var(--t-green) !important;
}

/* The audit screen's score ramp and progress bar. */
html body .sa-prog-fill{ background: var(--t-green) !important; }
html body .sa-header, html body .sa-footer{ background: var(--t-bg) !important; }

/* ============================================================================
   13. CLASS-LEVEL SWEEP

   Sections 1-12 raise sizes and strip old-theme signatures with selectors like
   `html body td` or `html body [class$="-kick"]`. Both lose to the page rules
   they are meant to beat: `.aa-t th` is specificity (0,1,1) and a single class
   outranks any number of elements, so !important on both sides still left the
   page winning. The suffix lists also only ever covered the names I had looked
   at - Chromium showed .ah-site-n, .va-fbar-l, .gp-hdr-crumb and ten others
   still rendering at 9-11px after two rounds of extending the list.

   So this section stops enumerating. It sets a blanket floor on anything that
   carries a class, then re-raises the things that are genuinely meant to be
   bigger. Order matters: the blanket comes first and every override after it
   is written at matching or higher specificity, so later-wins applies.

   Verified in Chromium across 12 views, not reasoned about.
   ========================================================================== */

/* ---- 13a. BLANKET FLOOR -------------------------------------------------
   One class-unit of specificity (0,1,2), which beats any single-class page
   rule. Deliberately NOT `[class] [class]`: that would be (0,2,2) and would
   then outrank the KPI and heading overrides below, shrinking the figures. */
html body [class]{ font-size: 14px !important; }

/* Unclassed children of classed elements - `.ah-r-dates b`, `.uf-f label`,
   spans inside badges. These are (0,1,3), still under the overrides below. */
html body [class] b, html body [class] strong, html body [class] span,
html body [class] em, html body [class] i, html body [class] small,
html body [class] label, html body [class] abbr, html body [class] time{
  font-size: 14px !important;
}

/* ---- 13b. BODY COPY ----------------------------------------------------- */
html body [class] p, html body [class] li,
html body [class] input, html body [class] select, html body [class] textarea{
  font-size: 15px !important;
}

/* ---- 13c. TABLES -------------------------------------------------------- */
html body [class] th{ font-size: 14px !important; }
html body [class] td{ font-size: 15px !important; }
html body [class] td b, html body [class] td strong, html body [class] td span{
  font-size: 15px !important;
}
/* The mobile stacked-table pseudo labels. */
html body [class] td[data-l]::before{ font-size: 13px !important; }

/* ---- 13d. HEADINGS ------------------------------------------------------ */
html body [class] h1{ font-size: 24px !important; }
html body [class] h2{ font-size: 19px !important; }
html body [class] h3{ font-size: 17px !important; }
html body [class] h4, html body [class] h5, html body [class] h6{
  font-size: 15px !important;
}

/* ---- 13e. KPI FIGURES --------------------------------------------------- */
/* These sit last among the size rules so they win the later-wins tie against
   the blanket at equal (0,1,2) specificity. */
/* Only the value classes. -sum-n is NOT one: in admin_dashboard.php
   .dsh-sum-v is the figure and .dsh-sum-n is a small note underneath it, so
   matching "-sum-n" here blew every dashboard note up to a 26px grey number.
   Chromium caught it; it falls to the blanket 14px now, which is what a note
   wants. */
html body [class$="-kv"], html body [class$="-cv"], html body [class$="-sv"],
html body [class$="-sum-v"], html body [class$="-kpi-v"]{
  font-size: 26px !important; font-weight: 600 !important;
}

/* ---- 13f. FONT FAMILY --------------------------------------------------- */
/* Section 12 caught monospace by class name and inline style, which missed
   .aa-tag, .va-sub, .sa-prog-txt, .va-area-cnt, .rbadge, `.aa-t .num` and
   more that name 'JetBrains Mono' in a page <style> block. The webfont links
   are stripped from the views too, so neither Inter nor JetBrains Mono is
   fetched - this makes sure nothing falls back to a generic monospace. */
html body, html body [class],
html body [class] [class], html body [class] [class] [class],
html body [class] th, html body [class] td,
html body [class] b, html body [class] strong, html body [class] span,
html body [class] em, html body [class] i, html body [class] small,
html body [class] label, html body [class] input, html body [class] select,
html body [class] textarea, html body [class] button, html body [class] a{
  font-family: var(--t-font, -apple-system, BlinkMacSystemFont, "Segoe UI",
               Roboto, "Helvetica Neue", Arial, sans-serif) !important;
}

/* ---- 13g. UPPERCASE AND TRACKING --------------------------------------- */
/* Uppercase micro-labels at wide tracking were the loudest signature of the
   old design, so nothing keeps them. */
html body [class],
html body [class] [class], html body [class] [class] [class],
html body [class] th, html body [class] td,
html body [class] b, html body [class] strong, html body [class] span,
html body [class] em, html body [class] i, html body [class] small,
html body [class] label, html body [class] button, html body [class] a,
html body [class] h1, html body [class] h2, html body [class] h3,
html body [class] h4, html body [class] h5, html body [class] h6{
  text-transform: none !important;
  letter-spacing: 0 !important;
}

/* ---- 13h. WEIGHT ------------------------------------------------------- */
/* 800/900 weights read as the old product; 600 is the heaviest used now.
   Section 12 already caps the weights set in page <style> blocks and the
   Chromium sweep confirms none survive, so this only has to catch the ones
   written inline on the element. */
html body [class][style*="font-weight:800"], html body [class][style*="font-weight:900"],
html body [class][style*="font-weight: 800"], html body [class][style*="font-weight: 900"]{
  font-weight: 600 !important;
}

/* ---- 13i. OLD INK ------------------------------------------------------ */
/* #0A0F14 was the old near-black. The brief is plain black text, and these
   survived on .gp-user-name and .gp-notif-txt among others. */
html body [class][style*="#0A0F14"], html body [class][style*="#0a0f14"]{
  color: var(--t-text, #1A1A1A) !important;
}

/* ============================================================================
   14. PRINT
   ========================================================================== */

@media print{
  html body .left-side-bar, html body .header,
  html body .gp-toasts, html body .gp-pager{ display: none !important; }
  html body{ background: #fff !important; }
}
