/* visibility.css - enforce readable typography and contrast */
:root{ --vis-black:#000; --vis-white:#fff }
html,body{background:var(--vis-white) !important;color:var(--vis-black) !important;font-size:16px;line-height:1.6;font-family: 'Inter', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif !important}

/* Ensure core text elements are visible */
h1,h2,h3,h4,h5,h6{color:var(--vis-black) !important;font-weight:700;margin:0 0 .5rem}
p,li,span,label,small,strong,em,td,th,caption{color:var(--vis-black) !important}

/* Links: visible and accessible */
a, a:visited { color:var(--vis-black) !important; text-decoration:none !important }
a:hover, a:focus { text-decoration:underline !important }

/* Inputs & Buttons: high contrast */
input,textarea,select,button{color:var(--vis-black) !important;background:var(--vis-white) !important;border:1px solid #ccc !important}
button, .btn{cursor:pointer}

/* Elements on dark backgrounds should show white text */
*[style*="background:#"], *[style*="background: #"]{
  /* only force white on dark colors - simple heuristic */
  color: #fff !important;
}
.header, .sidebar, .nav-menu, .top-bar, .card-header{color:#fff !important}

/* Avoid invisible text: if color matches background, force contrast */
*[style*="color:#fff"][style*="background:#fff"], *[style*="color:#ffffff"][style*="background:#ffffff"]{
  color:var(--vis-black) !important;
}

/* Font smoothing */
*{ -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale }

/* Utility for tiny text increased size */
.small{font-size:0.95rem}

/* End visibility.css */
