

:root{
  --cursor-idle:url("../cursors/cursor-idle.png") 4 4, auto;
  --cursor-hover:url("../cursors/cursor-hover.png") 6 6, pointer;
  --cursor-arg:url("../cursors/cursor-arg.png") 8 8, pointer;
  --cursor-restricted:url("../cursors/cursor-restricted.png") 8 8, not-allowed;
  --cursor-text:url("../cursors/cursor-text.png") 8 8, text;
}

@media (pointer:fine){

  
  html,body{cursor:var(--cursor-idle);}

  
  :is(
    a,button,[role="button"],summary,label[for],select,option,
    input[type="button"],input[type="submit"],input[type="reset"],
    input[type="checkbox"],input[type="radio"],input[type="range"],
    .nav-link,.file-button,.personnel-card,.profile-access-button,
    .signal-node,.hotspot,.room-hotspot,.query-option,.query-button,
    .terminal-node,.folder-card,.folder-button,.subfile-button,
    .record-card,.record-button,.minimal-page-action,
    .secret-action:not(.locked),[data-file-toggle],[data-corrupt-target]
  ),
  :is(
    a,button,[role="button"],summary,label[for],
    .nav-link,.file-button,.personnel-card,.profile-access-button,
    .signal-node,.hotspot,.room-hotspot,.query-option,.query-button,
    .terminal-node,.folder-card,.folder-button,.subfile-button,
    .record-card,.record-button,.minimal-page-action,
    .secret-action:not(.locked),[data-file-toggle],[data-corrupt-target]
  ) *{
    cursor:var(--cursor-hover)!important;
  }

  
  :is(
    input[type="text"],input[type="search"],input[type="email"],
    input[type="url"],input[type="password"],input[type="number"],
    textarea,[contenteditable="true"]
  ){
    cursor:var(--cursor-text)!important;
  }

  
  :is(
    .arg-cursor,.glyph-button:not(.glyph-static),.overseer-glyph-button,
    .live-glyph,.query-glyph,.corrupt-shell.unlocked,
    .secret-corrupt-shell.ready,.hidden-hotspot,.arg-hotspot,
    .q-aware-target,[data-arg],[data-secret]
  ),
  :is(
    .arg-cursor,.glyph-button:not(.glyph-static),.overseer-glyph-button,
    .live-glyph,.query-glyph,.corrupt-shell.unlocked,
    .secret-corrupt-shell.ready,.hidden-hotspot,.arg-hotspot,
    .q-aware-target,[data-arg],[data-secret]
  ) *{
    cursor:var(--cursor-arg)!important;
  }

  
  :is(
    .restricted,.nav-link.restricted,.locked,.redacted,.sealed,
    .access-denied,.secret-action.locked,[aria-disabled="true"],[disabled]
  ),
  :is(
    .restricted,.nav-link.restricted,.locked,.redacted,.sealed,
    .access-denied,.secret-action.locked,[aria-disabled="true"],[disabled]
  ) *{
    cursor:var(--cursor-restricted)!important;
  }

  
  :is(.glyph-static,.decorative,.deco,.decal),
  :is(.glyph-static,.decorative,.deco,.decal) *{
    cursor:var(--cursor-idle)!important;
  }

  /* Optional Q-aware state */
  body.q-aware :is(.q-linked,.glyph-button:not(.glyph-static),[data-q-linked]),
  body.q-aware :is(.q-linked,.glyph-button:not(.glyph-static),[data-q-linked]) *{
    cursor:var(--cursor-arg)!important;
  }

  
  body.cursor-corrupted :is(
    a,button,[role="button"],.personnel-card,.file-button,.signal-node,.hotspot
  ),
  body.cursor-corrupted :is(
    a,button,[role="button"],.personnel-card,.file-button,.signal-node,.hotspot
  ) *{
    cursor:var(--cursor-arg)!important;
  }

  
  .cursor-idle,.cursor-idle *{cursor:var(--cursor-idle)!important;}
  .cursor-hover,.cursor-hover *{cursor:var(--cursor-hover)!important;}
  .cursor-arg,.cursor-arg *{cursor:var(--cursor-arg)!important;}
  .cursor-restricted,.cursor-restricted *{cursor:var(--cursor-restricted)!important;}
  .cursor-text,.cursor-text *{cursor:var(--cursor-text)!important;}
}
