/* UI floors for both designs (9.5 plan, Phase 1, 30 Oct 2026), loaded after every other stylesheet:
   a tap area of at least 44 px (24 px for a link inside a sentence or a footer list), no text under 12 px,
   and a visible focus mark. e2e/tools/check_ui_score.py measures them on every ship.
   Standalone text links grow their tap area with padding that a negative margin takes back, so nothing moves. */

/* 1.2 tap areas: controls */
html body :is(.nav > a, .top-act > a, .theme-btn, .fchip, .proto-filter-reset, .rx-search button, .rx-search input,
  .filter-select select, .proto-sort select, .filters > summary, .proto-feed-tabs > a, .pager .btn, .proto-text-action,
  .myelig-cta, .proto-checklist > label, .imap-rg, .info-nav > a, .sr-pills > a) { min-height: 44px !important; }
html body .sr-pills > a { display: inline-flex !important; align-items: center !important; }
html body :is(.bm, .proto-copy, .proto-pages > a) { min-width: 44px !important; min-height: 44px !important; }
html body :is(.sec-link, .proto-feed-tabs > a, .info-nav > a) { display: inline-flex !important; align-items: center !important; }
html body .sec-link { min-height: 44px !important; }

/* 1.2 tap areas: text links and toggles that sit alone (the layout keeps its spacing) */
html body :is(.support-tip > a, .support-card > a, .support-rail > a, .proto-help > a, .modern-detail-kicker > a,
  .proto-detail-meta > a, .proto-related li > a) { display: inline-block !important; padding-block: max(0px, calc((44px - 1lh) / 2)) !important; margin-block: min(0px, calc((1lh - 44px) / 2)) !important; }
html body :is(.proto-personal-check, .proto-source-details, .report > details, .filter-more-types, .proto-related) > summary { padding-block: max(0px, calc((44px - 1lh) / 2)) !important; margin-block: min(0px, calc((1lh - 44px) / 2)) !important; }

/* 1.2 links inside a sentence: 24 px; padding on an inline link does not move the line */
html body :is(.st-credit, .se-found) a { padding-block: 4px !important; }

/* 1.2 a fact box that says "View notice" opens the notice wherever it is tapped; every box keeps its size */
html body :is(.modern-detail-essentials, .detail-facts, .proto-info) > div { position: relative !important; }
html body .proto-info > div { min-height: 44px !important; } /* every row the same, so the one with the link is not taller */
html body :is(.modern-detail-essentials, .detail-facts, .proto-info) > div a.detail-notice-reference::after { content: "" !important; position: absolute !important; inset: 0 !important; border-radius: inherit !important; }

/* 1.3 no text under 12 px */
html body :is(.tabbar a span, .colour-eyebrow, .proto-badge, .ct-pill, .application-eyebrow, .proto-closing-top > b,
  .proto-detail-board, .proto-section-label, .proto-section-label span, .proto-tools-kicker, .proto-hero-hint,
  .rx-kicker, .sec-link, .proto-detail-mark, .stp-now, .proto-small-label, .home-planner b, .imap-lb, .imap-chip,
  .proto-agenda-date small) { font-size: 12px !important; }
html body .proto-agenda-date { width: auto !important; min-width: 36px !important; } /* a saved exam's day and month; 12 px "NOV" needs the room */
/* a job card's board monogram: the whole short name in one row at 12 px ("BPSC", "NCERT"); every card's badge column
   is the same 52 px (--board-col, read by each card grid), so titles still line up and nothing runs into them */
html body .proto-job { --board-col: 52px; }
html body .proto-board { width: 52px !important; font-size: 12px !important; letter-spacing: 0 !important; white-space: nowrap !important; padding-inline: 2px !important; box-sizing: border-box !important; }

/* 1.3 small labels and notes reach 4.5:1 against their card (they measured 2.8 to 4.3) */
html[data-theme="light"] body .proto-section-label { color: #87631f !important; }
html[data-theme="light"] body :is(.proto-section-label span, .proto-small-label) { color: #56677d !important; }
html[data-theme="dark"] body .sec-link { color: #d5b66c !important; }

/* 1.4 every control reached with Tab shows where it is */
html body :is(a, button, summary, select, input, textarea, [tabindex]:not([tabindex="-1"])):not(:is(.rx-search, .search-field, .top-search) input):focus-visible { outline: 2px solid var(--focus-ring, #2563eb) !important; outline-offset: 2px !important; }
