/* Apple90 V10 — contrast system and sidebar refinement
   This layer intentionally follows all previous theme stylesheets. */
:root, html[data-theme="light"] {
  --a90-text-strong:#17243a;
  --a90-text-body:#34445c;
  --a90-text-muted:#64748b;
  --a90-text-faint:#8290a4;
  --a90-link:#315bd6;
  --a90-sidebar-text:#26364d;
  --a90-sidebar-muted:#66768c;
  --a90-sidebar-icon:#586b83;
  --a90-sidebar-active-text:#ffffff;
  --a90-sidebar-active-icon:#ffffff;
  --a90-focus:rgba(49,91,214,.24);
}
html[data-theme="dark"] {
  --a90-text-strong:#f1f6f7;
  --a90-text-body:#d1dddf;
  --a90-text-muted:#a5b7bb;
  --a90-text-faint:#82999f;
  --a90-link:#8bb8ff;
  --a90-sidebar-text:#dce8e8;
  --a90-sidebar-muted:#9aafb3;
  --a90-sidebar-icon:#a9bec2;
  --a90-sidebar-active-text:#f4fffb;
  --a90-sidebar-active-icon:#f4fffb;
  --a90-focus:rgba(52,211,153,.24);
}
html[data-theme="mint"] {
  --a90-text-strong:#17382d;
  --a90-text-body:#315747;
  --a90-text-muted:#587466;
  --a90-text-faint:#718a7d;
  --a90-link:#176b4b;
  --a90-sidebar-text:#244b3b;
  --a90-sidebar-muted:#617c6d;
  --a90-sidebar-icon:#4f725f;
  --a90-sidebar-active-text:#ffffff;
  --a90-sidebar-active-icon:#ffffff;
  --a90-focus:rgba(23,107,75,.22);
}

/* Predictable text hierarchy across pages, forms, tables and panels. */
html[data-theme="light"] body,
html[data-theme="mint"] body { color:var(--a90-text-body); }
html[data-theme="dark"] body { color:var(--a90-text-body); }

html[data-theme="light"] :is(h1,h2,h3,h4,h5,h6,.font-bold,.font-semibold),
html[data-theme="mint"] :is(h1,h2,h3,h4,h5,h6,.font-bold,.font-semibold) {
  color:var(--a90-text-strong);
}
html[data-theme="dark"] :is(h1,h2,h3,h4,h5,h6,.font-bold,.font-semibold) {
  color:var(--a90-text-strong);
}
html[data-theme="light"] :is(p,label,dt,dd,figcaption),
html[data-theme="mint"] :is(p,label,dt,dd,figcaption) { color:var(--a90-text-body); }
html[data-theme="dark"] :is(p,label,dt,dd,figcaption) { color:var(--a90-text-body); }

html[data-theme="light"] :is(.text-gray-900,.text-gray-800,.text-slate-900,.text-slate-800),
html[data-theme="mint"] :is(.text-gray-900,.text-gray-800,.text-slate-900,.text-slate-800) {
  color:var(--a90-text-strong)!important;
}
html[data-theme="light"] :is(.text-gray-700,.text-gray-600,.text-slate-700,.text-slate-600),
html[data-theme="mint"] :is(.text-gray-700,.text-gray-600,.text-slate-700,.text-slate-600) {
  color:var(--a90-text-body)!important;
}
html[data-theme="light"] :is(.text-gray-500,.text-gray-400,.text-slate-500,.text-slate-400),
html[data-theme="mint"] :is(.text-gray-500,.text-gray-400,.text-slate-500,.text-slate-400) {
  color:var(--a90-text-muted)!important;
}
html[data-theme="dark"] :is(.text-gray-900,.text-gray-800,.text-slate-900,.text-slate-800) {
  color:var(--a90-text-strong)!important;
}
html[data-theme="dark"] :is(.text-gray-700,.text-gray-600,.text-slate-700,.text-slate-600) {
  color:var(--a90-text-body)!important;
}
html[data-theme="dark"] :is(.text-gray-500,.text-gray-400,.text-slate-500,.text-slate-400) {
  color:var(--a90-text-muted)!important;
}
html[data-theme="light"] a:not(.nav-link):not(.sidebar-menu-item),
html[data-theme="mint"] a:not(.nav-link):not(.sidebar-menu-item) { color:var(--a90-link); }
html[data-theme="dark"] a:not(.nav-link):not(.sidebar-menu-item) { color:var(--a90-link); }

html[data-theme="light"] input::placeholder,
html[data-theme="light"] textarea::placeholder,
html[data-theme="light"] select,
html[data-theme="mint"] input::placeholder,
html[data-theme="mint"] textarea::placeholder,
html[data-theme="mint"] select { color:var(--a90-text-muted)!important;opacity:1; }
html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder { color:var(--a90-text-muted)!important;opacity:1; }

/* Sidebar text is explicitly colored at the text node, not merely inherited.
   This fixes Tailwind text-white utilities leaking into light/mint navigation. */
#userSidebar .nav-link,
#adminSidebar .sidebar-menu-item { color:var(--a90-sidebar-text)!important; }
#userSidebar .nav-link span,
#userSidebar .nav-link .nav-label,
#adminSidebar .sidebar-menu-item span,
#adminSidebar .sidebar-menu-item .menu-label,
#adminSidebar .sidebar-menu-item .sidebar-label {
  color:var(--a90-sidebar-text)!important;
  -webkit-text-fill-color:var(--a90-sidebar-text)!important;
  font-weight:650!important;
}
#userSidebar .nav-link>i:first-child,
#adminSidebar .sidebar-menu-item>i {
  color:var(--a90-sidebar-icon)!important;
}
#userSidebar .user-sidebar-brand span,
#adminSidebar .admin-sidebar-brand h2,
#adminSidebar .admin-sidebar-brand p {
  color:var(--a90-text-strong)!important;
  -webkit-text-fill-color:var(--a90-text-strong)!important;
  background:none!important;
}
#userSidebar :is(.user-profile-card,.guest-profile-card) :is(span,p,strong,small),
#adminSidebar :is(.admin-sidebar-brand,.sidebar-user-info) :is(span,p,strong,small) {
  color:var(--a90-text-body)!important;
  -webkit-text-fill-color:var(--a90-text-body)!important;
}
#userSidebar .nav-link.active,
#userSidebar .nav-link[aria-current="page"],
#adminSidebar .sidebar-menu-item.active,
#adminSidebar .sidebar-menu-item[aria-current="page"] {
  color:var(--a90-sidebar-active-text)!important;
}
#userSidebar .nav-link.active span,
#userSidebar .nav-link[aria-current="page"] span,
#adminSidebar .sidebar-menu-item.active span,
#adminSidebar .sidebar-menu-item[aria-current="page"] span {
  color:var(--a90-sidebar-active-text)!important;
  -webkit-text-fill-color:var(--a90-sidebar-active-text)!important;
}
#userSidebar .nav-link.active>i:first-child,
#userSidebar .nav-link[aria-current="page"]>i:first-child,
#adminSidebar .sidebar-menu-item.active>i,
#adminSidebar .sidebar-menu-item[aria-current="page"]>i {
  color:var(--a90-sidebar-active-icon)!important;
}
#userSidebar .nav-link.disabled-link { opacity:.72; }
#userSidebar .nav-link.disabled-link span { color:var(--a90-sidebar-muted)!important; }
#userSidebar nav li:has(>a[href="logout.php"]) .nav-link,
#userSidebar nav li:has(>a[href="logout.php"]) .nav-link span { color:#c24141!important;-webkit-text-fill-color:#c24141!important; }

/* More deliberate navigation rhythm: section spacing, icon tiles, and subtle focus. */
#userSidebar nav ul { gap:7px!important; }
#userSidebar .nav-link,
#adminSidebar .sidebar-menu-item {
  position:relative!important;
  min-height:58px!important;
  border-radius:15px!important;
  letter-spacing:-.12px;
  transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease!important;
}
#userSidebar .nav-link>i:first-child,
#adminSidebar .sidebar-menu-item>i {
  border-radius:13px!important;
  transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease!important;
}
#userSidebar .nav-link:focus-visible,
#adminSidebar .sidebar-menu-item:focus-visible,
#userSidebar .sidebar-collapse-btn:focus-visible,
#adminSidebar .sidebar-collapse-btn:focus-visible {
  outline:3px solid var(--a90-focus)!important;
  outline-offset:2px!important;
}
html[data-theme="light"] #userSidebar .nav-link:hover,
html[data-theme="light"] #adminSidebar .sidebar-menu-item:hover,
html[data-theme="mint"] #userSidebar .nav-link:hover,
html[data-theme="mint"] #adminSidebar .sidebar-menu-item:hover {
  color:var(--a90-text-strong)!important;
}
html[data-theme="dark"] #userSidebar .nav-link:hover,
html[data-theme="dark"] #adminSidebar .sidebar-menu-item:hover {
  color:var(--a90-text-strong)!important;
}
@media (prefers-reduced-motion:reduce) {
  #userSidebar *,#adminSidebar * { transition:none!important; }
}

/* White utility text must not remain white on ordinary light surfaces.
   Keep white labels only on controls/active navigation and explicitly tinted chips. */
html[data-theme="light"] :is(h1,h2,h3,h4,h5,h6,p,span,label,small,strong,em,td,th,li).text-white:not(button):not(button *):not(.btn):not(.nav-link.active):not(.sidebar-menu-item.active):not([class*="bg-"]):not([class*="gradient"]),
html[data-theme="mint"] :is(h1,h2,h3,h4,h5,h6,p,span,label,small,strong,em,td,th,li).text-white:not(button):not(button *):not(.btn):not(.nav-link.active):not(.sidebar-menu-item.active):not([class*="bg-"]):not([class*="gradient"]) {
  color:var(--a90-text-strong)!important;
  -webkit-text-fill-color:var(--a90-text-strong)!important;
}
html[data-theme="light"] :is(.text-white\/50,.text-white\/60,.text-white\/70,.text-white\/80),
html[data-theme="mint"] :is(.text-white\/50,.text-white\/60,.text-white\/70,.text-white\/80) {
  color:var(--a90-text-muted)!important;
}
