/* QilyLean Interaction Semantics V1.4｜2026-08-29
 * Sitewide rule:
 * 1) true route/module navigation gets explicit hover/active/focus feedback;
 * 2) in-page controls keep lighter feedback;
 * 3) static terms/tags/chips never pretend to be links and keep their original visual state;
 * 4) primary navigation gets a persistent, draggable horizontal rail independent of OS scrollbar settings;
 * 5) Dock geometry is protected here, while Dock V5.4 alone owns its text/DOM;
 * 6) project evidence grades and critical numeric badges keep explicit readable contrast.
 */

:root{
  --qily-action-bg:#0f4b5a;
  --qily-action-bg-hover:#12606f;
  --qily-action-line:#caa15f;
  --qily-action-focus:rgba(202,161,95,.28);
  --qily-nav-rail-track:#dbe8e6;
  --qily-nav-rail-thumb:#0f4b5a;
  --qily-nav-rail-thumb-hover:#178b94;
}

html body :is(a[href],[data-route],[data-href],[data-url])[data-qily-interaction="route"]{
  cursor:pointer!important;
  transition:color .15s ease,background-color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease,filter .15s ease!important;
}
html body :is(a[href],[data-route],[data-href],[data-url])[data-qily-interaction="route"]:focus-visible{
  outline:3px solid var(--qily-action-focus)!important;
  outline-offset:2px!important;
}

html body :is(.module-actions,.actions,.cta-row,.hero-actions,.card-actions,.qily-global-nav,nav) a[href][data-qily-interaction="route"],
html body :is(.btn,.button,.cta,.primary-btn,.secondary-btn,.action-btn,.icon-link,.nav-btn)[data-qily-interaction="route"],
html body a.qily-route-action[data-qily-route-emphasis="true"]{
  box-shadow:0 4px 10px rgba(15,75,90,.08)!important;
}
html body :is(.module-actions,.actions,.cta-row,.hero-actions,.card-actions,.qily-global-nav,nav) a[href][data-qily-interaction="route"]:hover,
html body :is(.btn,.button,.cta,.primary-btn,.secondary-btn,.action-btn,.icon-link,.nav-btn)[data-qily-interaction="route"]:hover,
html body a.qily-route-action[data-qily-route-emphasis="true"]:hover{
  transform:translateY(-1px)!important;
  filter:saturate(1.04)!important;
  box-shadow:0 9px 22px rgba(15,75,90,.20)!important;
}
html body :is(.module-actions,.actions,.cta-row,.hero-actions,.card-actions,.qily-global-nav,nav) a[href][data-qily-interaction="route"]:active,
html body :is(.btn,.button,.cta,.primary-btn,.secondary-btn,.action-btn,.icon-link,.nav-btn)[data-qily-interaction="route"]:active,
html body a.qily-route-action[data-qily-route-emphasis="true"]:active{
  transform:translateY(1px) scale(.985)!important;
}

html body [data-qily-interaction="local"]{
  cursor:pointer!important;
  transition:background-color .12s ease,border-color .12s ease,box-shadow .12s ease!important;
}
html body [data-qily-interaction="local"]:hover{box-shadow:0 4px 10px rgba(15,75,90,.10)!important}
html body [data-qily-interaction="local"]:focus-visible{outline:2px solid var(--qily-action-focus)!important;outline-offset:2px!important}

html body :is(.qily-static-token,[data-qily-interaction="static"]){
  cursor:default!important;
  transition:none!important;
  transform:none!important;
  filter:none!important;
  color:var(--qily-static-color,inherit)!important;
  -webkit-text-fill-color:var(--qily-static-color,inherit)!important;
  background-color:var(--qily-static-bg,transparent)!important;
  background-image:var(--qily-static-bg-image,none)!important;
  border-color:var(--qily-static-border,transparent)!important;
  box-shadow:var(--qily-static-shadow,none)!important;
  text-decoration:none!important;
}
html body :is(.qily-static-token,[data-qily-interaction="static"]):is(:hover,:active,:focus,:focus-visible){
  cursor:default!important;
  transform:none!important;
  filter:none!important;
  color:var(--qily-static-color,inherit)!important;
  -webkit-text-fill-color:var(--qily-static-color,inherit)!important;
  background-color:var(--qily-static-bg,transparent)!important;
  background-image:var(--qily-static-bg-image,none)!important;
  border-color:var(--qily-static-border,transparent)!important;
  box-shadow:var(--qily-static-shadow,none)!important;
  outline:none!important;
}
html body :is(.qily-static-token,[data-qily-interaction="static"])::before,
html body :is(.qily-static-token,[data-qily-interaction="static"])::after{transform:none!important;filter:none!important}

/* Known non-routing vocabulary strips: never flash/raise/change colour on pointer hover. */
html body :is(.brief-action-strip>span,.brief-action-strip>li,.tag-row>span,.tag-row>li,.brief-tags>span,.brief-tags>li,.term-row>span){
  cursor:default!important;
  transition:none!important;
  transform:none!important;
  filter:none!important;
  box-shadow:none;
  text-decoration:none!important;
}
html body :is(.brief-action-strip>span,.brief-action-strip>li,.tag-row>span,.tag-row>li,.brief-tags>span,.brief-tags>li,.term-row>span):is(:hover,:active,:focus,:focus-visible){
  cursor:default!important;
  transition:none!important;
  transform:none!important;
  filter:none!important;
  outline:none!important;
}

/* Persistent primary navigation scroll rail. This is separate from the OS-native scrollbar. */
html body header.qily-site-header,
html body header.qily-global-header{position:relative!important}
html body header.qily-site-header :is(nav.site-nav,nav.qily-global-nav,nav[aria-label="主导航"],nav[aria-label="网站导航"],nav[aria-label="QilyLean核心导视"]),
html body header.qily-global-header :is(nav.site-nav,nav.qily-global-nav,nav[aria-label="主导航"],nav[aria-label="网站导航"],nav[aria-label="QilyLean核心导视"]){
  padding-bottom:18px!important;
  scroll-behavior:smooth!important;
  scroll-padding-inline:12px!important;
}
html body .qily-primary-nav-scroll-rail{
  position:absolute!important;
  z-index:2147481000!important;
  bottom:3px!important;
  height:12px!important;
  min-width:60px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:999px!important;
  background:var(--qily-nav-rail-track)!important;
  box-shadow:inset 0 0 0 1px rgba(15,75,90,.08)!important;
  cursor:pointer!important;
  touch-action:none!important;
  overflow:hidden!important;
  user-select:none!important;
}
html body .qily-primary-nav-scroll-thumb{
  display:block!important;
  position:absolute!important;
  left:0!important;
  top:2px!important;
  height:8px!important;
  min-width:56px!important;
  border-radius:999px!important;
  background:var(--qily-nav-rail-thumb)!important;
  box-shadow:0 1px 4px rgba(15,75,90,.24)!important;
  cursor:ew-resize!important;
  will-change:transform,width!important;
}
html body .qily-primary-nav-scroll-rail:hover .qily-primary-nav-scroll-thumb,
html body .qily-primary-nav-scroll-thumb:active{background:var(--qily-nav-rail-thumb-hover)!important}
html body .qily-primary-nav-scroll-rail[data-qily-nav-overflow="false"]{opacity:.58!important}

/* Dock V5.4 safety contract: no pseudo-text, no legacy shape drift. Runtime owns labels. */
html:not([data-qily-dock="disabled"]) body #floatDock{
  box-sizing:border-box!important;
}
html:not([data-qily-dock="disabled"]) body #floatDock .qily-float-btn{
  box-sizing:border-box!important;
  flex-shrink:0!important;
  border-radius:50%!important;
  overflow:hidden!important;
}
html:not([data-qily-dock="disabled"]) body #floatDock .qily-float-btn::before,
html:not([data-qily-dock="disabled"]) body #floatDock .qily-float-btn::after{
  content:none!important;
  display:none!important;
  visibility:hidden!important;
}
html:not([data-qily-dock="disabled"]) body #floatDock .qily-float-btn>.qily-dock-label{
  text-align:center!important;
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow:hidden!important;
}

/* Project evidence-grade attribution: same semantics on trust, project list and project detail pages. */
html body .qily-project-evidence-grade,
html body .qily-project-list-grade{
  --qily-grade-bg:#eef8f6;
  --qily-grade-line:#9fc9c2;
  --qily-grade-text:#0f4b5a;
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  min-height:38px!important;
  padding:6px 12px!important;
  border:1px solid var(--qily-grade-line)!important;
  border-radius:999px!important;
  color:var(--qily-grade-text)!important;
  -webkit-text-fill-color:var(--qily-grade-text)!important;
  background:var(--qily-grade-bg)!important;
  text-decoration:none!important;
  font-weight:900!important;
  line-height:1.25!important;
  box-shadow:0 5px 14px rgba(15,75,90,.08)!important;
}
html body .qily-project-evidence-grade{margin:10px 0 4px!important}
html body .qily-project-evidence-grade b,
html body .qily-project-list-grade b{
  display:grid!important;place-items:center!important;flex:0 0 28px!important;width:28px!important;height:28px!important;border-radius:50%!important;
  color:#fff!important;-webkit-text-fill-color:#fff!important;background:#0f4b5a!important;font-size:14px!important;
}
html body .qily-project-evidence-grade small{color:#526b69!important;-webkit-text-fill-color:#526b69!important;font-size:12px!important;font-weight:800!important}
html body .qily-project-list-grade{margin:0 0 10px!important;font-size:13px!important}
html body .qily-grade-b{--qily-grade-bg:#eef8f6;--qily-grade-line:#8fc6bb;--qily-grade-text:#0c5c62}
html body .qily-grade-c{--qily-grade-bg:#fff8e9;--qily-grade-line:#d8b66c;--qily-grade-text:#74500f}
html body .qily-grade-d{--qily-grade-bg:#f4f6f6;--qily-grade-line:#c9d5d4;--qily-grade-text:#526b69}
html body .trust-level .trust-evidence-links{display:grid!important;gap:7px!important;margin-top:12px!important;padding-top:11px!important;border-top:1px dashed #c9dad7!important}
html body .trust-level .trust-evidence-links>a{display:block!important;color:#0f4b5a!important;-webkit-text-fill-color:#0f4b5a!important;font-weight:900!important;line-height:1.45!important;text-decoration:underline!important;text-underline-offset:3px!important}
html body .trust-level .trust-evidence-links>span{color:#607574!important;-webkit-text-fill-color:#607574!important;font-size:13px!important;line-height:1.55!important}

/* 2026-08-25 八大浪费序号属于信息层级，不允许被通用静态标签冻结成低对比。 */
html body.daily-single-page main article.post.w8 .overview-card>.tag,
html body.daily-single-page main article.post.w8 .overview-card>.tag[data-qily-interaction="static"],
html body.daily-single-page main article.post.w8 .overview-card>.qily-static-token.tag{
  display:inline-grid!important;
  min-width:34px!important;
  height:34px!important;
  place-items:center!important;
  opacity:1!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:#0f4b5a!important;
  background-image:none!important;
  border:1px solid #0f4b5a!important;
  box-shadow:none!important;
  font-weight:950!important;
  text-shadow:none!important;
}

@media(max-width:900px){
  html body .qily-primary-nav-scroll-rail{bottom:2px!important;height:11px!important}
  html body .qily-primary-nav-scroll-thumb{top:2px!important;height:7px!important}
}
@media(max-width:620px){
  html body .qily-project-evidence-grade{display:flex!important;width:fit-content!important;max-width:100%!important;flex-wrap:wrap!important}
  html body .qily-project-evidence-grade small{width:100%!important;padding-left:36px!important}
}
